use crate::models;
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct Authentication {
#[serde(rename = "AuthenticationType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub authentication_type: Option<models::external_account_provider::v1_6_0::AuthenticationTypes>,
#[serde(rename = "EncryptionKey")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encryption_key: Option<String>,
#[serde(rename = "EncryptionKeySet")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encryption_key_set: Option<bool>,
#[serde(rename = "KerberosKeytab")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kerberos_keytab: Option<String>,
#[serde(rename = "Oem")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub oem: Option<models::resource::Oem>,
#[serde(rename = "Password")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password: Option<String>,
#[serde(rename = "Token")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub token: Option<String>,
#[serde(rename = "Username")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
}
impl crate::Metadata<'static> for Authentication {
const JSON_SCHEMA: &'static str = "ExternalAccountProvider.v1_6_0.json";
}