// 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 DataIntegrationCustomProvider {
/// A descriptive name for the custom provider.
pub name: String,
/// The provider's OAuth authorization endpoint.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub authorization_url: Option<String>,
/// The provider's OAuth token endpoint.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub token_url: Option<String>,
/// The endpoint used to refresh tokens, if different from the token endpoint.
#[serde(skip_serializing_if = "Option::is_none", default)]
pub refresh_token_url: Option<String>,
/// Whether PKCE is used during the authorization code flow.
pub pkce_enabled: bool,
/// The separator used to join requested scopes.
pub request_scope_separator: String,
/// Whether at least one scope must be selected when connecting an account.
pub scopes_required: bool,
/// Whether a client secret is required for this provider.
pub client_secret_required: bool,
/// Additional static query parameters appended to the authorization request.
pub additional_authorization_parameters: std::collections::HashMap<String, String>,
/// The Content-Type used when exchanging the token request.
pub token_body_content_type: String,
/// How client credentials are sent when exchanging authorization codes and refreshing tokens.
pub authenticate_via: DataIntegrationCustomProviderAuthenticateVia,
}