use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "provider_model")]
pub enum ModelRequest {
#[serde(rename = "authentik_providers_google_workspace.googleworkspaceprovider")]
AuthentikProvidersGoogleWorkspaceGoogleworkspaceprovider(models::GoogleWorkspaceProviderRequest),
#[serde(rename = "authentik_providers_ldap.ldapprovider")]
AuthentikProvidersLdapLdapprovider(models::LdapProviderRequest),
#[serde(rename = "authentik_providers_microsoft_entra.microsoftentraprovider")]
AuthentikProvidersMicrosoftEntraMicrosoftentraprovider(models::MicrosoftEntraProviderRequest),
#[serde(rename = "authentik_providers_oauth2.oauth2provider")]
AuthentikProvidersOauth2Oauth2provider(models::OAuth2ProviderRequest),
#[serde(rename = "authentik_providers_proxy.proxyprovider")]
AuthentikProvidersProxyProxyprovider(models::ProxyProviderRequest),
#[serde(rename = "authentik_providers_rac.racprovider")]
AuthentikProvidersRacRacprovider(models::RacProviderRequest),
#[serde(rename = "authentik_providers_radius.radiusprovider")]
AuthentikProvidersRadiusRadiusprovider(models::RadiusProviderRequest),
#[serde(rename = "authentik_providers_saml.samlprovider")]
AuthentikProvidersSamlSamlprovider(models::SamlProviderRequest),
#[serde(rename = "authentik_providers_scim.scimprovider")]
AuthentikProvidersScimScimprovider(models::ScimProviderRequest),
#[serde(rename = "authentik_providers_ssf.ssfprovider")]
AuthentikProvidersSsfSsfprovider(models::SsfProviderRequest),
#[serde(rename = "authentik_providers_ws_federation.wsfederationprovider")]
AuthentikProvidersWsFederationWsfederationprovider(models::WsFederationProviderRequest),
}
impl Default for ModelRequest {
fn default() -> Self {
Self::AuthentikProvidersGoogleWorkspaceGoogleworkspaceprovider(Default::default())
}
}