// This file is auto-generated by oagen. Do not edit.
#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateDataIntegration {
/// The provider to create a Data Integration for. For a built-in provider use its slug (e.g. `github`, `slack`). For a custom provider, this is the new provider slug and `custom_provider` must be supplied. A custom provider slug cannot shadow an existing global provider slug.
pub provider: String,
/// An optional description of the Data Integration.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub description: Option<String>,
/// Whether the Data Integration is enabled. Defaults to `false`.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub enabled: Option<bool>,
/// The OAuth scopes to request for the Data Integration. Defaults to the provider's configured scopes when omitted.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub scopes: Option<Vec<String>>,
/// The credentials to configure for the Data Integration. Required for both built-in and custom providers.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub credentials: Option<DataIntegrationCredentialsDto>,
/// The OAuth definition for a custom provider. Supply this to define a custom provider; omit it to create an integration for a built-in provider.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub custom_provider: Option<CustomProviderDefinition>,
}