redfish-codegen 0.3.1

An unopinionated translation of the Redfish specification into Rust.
Documentation
// Generated by redfish-codegen. Do not modify.

use crate::models;

/// The external account provider services that can provide accounts for this manager to use for authentication.
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct ExternalAccountProvider {
    #[serde(rename = "AccountProviderType")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub account_provider_type: Option<models::account_service::v1_12_0::AccountProviderTypes>,
    #[serde(rename = "Authentication")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub authentication: Option<models::account_service::v1_12_0::Authentication>,
    #[serde(rename = "Certificates")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub certificates: Option<models::odata_v4::IdRef>,
    #[serde(rename = "LDAPService")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ldap_service: Option<models::account_service::v1_12_0::LDAPService>,
    #[serde(rename = "OAuth2Service")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub o_auth_2s: Option<models::account_service::v1_12_0::OAuth2S>,
    /// Indicates if the Password property is set.
    #[serde(rename = "PasswordSet")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub password_set: Option<bool>,
    /// The authentication priority for the external account provider.
    #[serde(rename = "Priority")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub priority: Option<i64>,
    /// The mapping rules to convert the external account providers account information to the local Redfish role.
    #[serde(rename = "RemoteRoleMapping")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub remote_role_mapping: Option<Vec<models::account_service::v1_12_0::RoleMapping>>,
    /// The addresses of the user account providers to which this external account provider links.  The format of this field depends on the type of external account provider.
    #[serde(rename = "ServiceAddresses")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub service_addresses: Option<Vec<String>>,
    /// An indication of whether this service is enabled.
    #[serde(rename = "ServiceEnabled")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub service_enabled: Option<bool>,
    #[serde(rename = "TACACSplusService")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub tacac_splus_service: Option<models::account_service::v1_12_0::TACACSplusService>,
}

impl crate::Metadata<'static> for ExternalAccountProvider {
    const JSON_SCHEMA: &'static str = "AccountService.v1_12_0.json";
}