use serde::{Deserialize, Serialize}; /*
                                      * Google Identity Toolkit API
                                      *
                                      * Help the third party sites to implement federated login.
                                      *
                                      * The version of the OpenAPI document: v3
                                      *
                                      * Generated by: https://openapi-generator.tech
                                      */

use crate::google_rest_apis::identitytoolkit_v3::models;

/// IdentitytoolkitRelyingpartyGetProjectConfigResponse : Response of getting the project configuration.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct IdentitytoolkitRelyingpartyGetProjectConfigResponse {
    /// Whether to allow password user sign in or sign up.
    #[serde(rename = "allowPasswordUser", skip_serializing_if = "Option::is_none")]
    pub allow_password_user: Option<bool>,
    /// Browser API key, needed when making http request to Apiary.
    #[serde(rename = "apiKey", skip_serializing_if = "Option::is_none")]
    pub api_key: Option<String>,
    /// Authorized domains.
    #[serde(rename = "authorizedDomains", skip_serializing_if = "Option::is_none")]
    pub authorized_domains: Option<Vec<String>>,
    #[serde(
        rename = "changeEmailTemplate",
        skip_serializing_if = "Option::is_none"
    )]
    pub change_email_template: Option<Box<models::EmailTemplate>>,
    #[serde(rename = "dynamicLinksDomain", skip_serializing_if = "Option::is_none")]
    pub dynamic_links_domain: Option<String>,
    /// Whether anonymous user is enabled.
    #[serde(
        rename = "enableAnonymousUser",
        skip_serializing_if = "Option::is_none"
    )]
    pub enable_anonymous_user: Option<bool>,
    /// OAuth2 provider configuration.
    #[serde(rename = "idpConfig", skip_serializing_if = "Option::is_none")]
    pub idp_config: Option<Vec<models::IdpConfig>>,
    #[serde(
        rename = "legacyResetPasswordTemplate",
        skip_serializing_if = "Option::is_none"
    )]
    pub legacy_reset_password_template: Option<Box<models::EmailTemplate>>,
    /// Project ID of the relying party.
    #[serde(rename = "projectId", skip_serializing_if = "Option::is_none")]
    pub project_id: Option<String>,
    #[serde(
        rename = "resetPasswordTemplate",
        skip_serializing_if = "Option::is_none"
    )]
    pub reset_password_template: Option<Box<models::EmailTemplate>>,
    /// Whether to use email sending provided by Firebear.
    #[serde(rename = "useEmailSending", skip_serializing_if = "Option::is_none")]
    pub use_email_sending: Option<bool>,
    #[serde(
        rename = "verifyEmailTemplate",
        skip_serializing_if = "Option::is_none"
    )]
    pub verify_email_template: Option<Box<models::EmailTemplate>>,
}

impl IdentitytoolkitRelyingpartyGetProjectConfigResponse {
    /// Response of getting the project configuration.
    pub fn new() -> IdentitytoolkitRelyingpartyGetProjectConfigResponse {
        IdentitytoolkitRelyingpartyGetProjectConfigResponse {
            allow_password_user: None,
            api_key: None,
            authorized_domains: None,
            change_email_template: None,
            dynamic_links_domain: None,
            enable_anonymous_user: None,
            idp_config: None,
            legacy_reset_password_template: None,
            project_id: None,
            reset_password_template: None,
            use_email_sending: None,
            verify_email_template: None,
        }
    }
}
