Skip to main content

authentik_client/models/
kerberos_source.rs

1/*
2 * authentik
3 *
4 * Making authentication simple.
5 *
6 * The version of the OpenAPI document: 2026.2.1
7 * Contact: hello@goauthentik.io
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// KerberosSource : Kerberos Source Serializer
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct KerberosSource {
17    #[serde(rename = "pk")]
18    pub pk: uuid::Uuid,
19    /// Source's display Name.
20    #[serde(rename = "name")]
21    pub name: String,
22    /// Internal source name, used in URLs.
23    #[serde(rename = "slug")]
24    pub slug: String,
25    #[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
26    pub enabled: Option<bool>,
27    /// When enabled, this source will be displayed as a prominent button on the login page, instead of a small icon.
28    #[serde(rename = "promoted", skip_serializing_if = "Option::is_none")]
29    pub promoted: Option<bool>,
30    /// Flow to use when authenticating existing users.
31    #[serde(
32        rename = "authentication_flow",
33        default,
34        with = "::serde_with::rust::double_option",
35        skip_serializing_if = "Option::is_none"
36    )]
37    pub authentication_flow: Option<Option<uuid::Uuid>>,
38    /// Flow to use when enrolling new users.
39    #[serde(
40        rename = "enrollment_flow",
41        default,
42        with = "::serde_with::rust::double_option",
43        skip_serializing_if = "Option::is_none"
44    )]
45    pub enrollment_flow: Option<Option<uuid::Uuid>>,
46    #[serde(rename = "user_property_mappings", skip_serializing_if = "Option::is_none")]
47    pub user_property_mappings: Option<Vec<uuid::Uuid>>,
48    #[serde(rename = "group_property_mappings", skip_serializing_if = "Option::is_none")]
49    pub group_property_mappings: Option<Vec<uuid::Uuid>>,
50    /// Get object component so that we know how to edit the object
51    #[serde(rename = "component")]
52    pub component: String,
53    /// Return object's verbose_name
54    #[serde(rename = "verbose_name")]
55    pub verbose_name: String,
56    /// Return object's plural verbose_name
57    #[serde(rename = "verbose_name_plural")]
58    pub verbose_name_plural: String,
59    /// Return internal model name
60    #[serde(rename = "meta_model_name")]
61    pub meta_model_name: String,
62    #[serde(rename = "policy_engine_mode", skip_serializing_if = "Option::is_none")]
63    pub policy_engine_mode: Option<models::PolicyEngineMode>,
64    /// How the source determines if an existing user should be authenticated or a new user enrolled.
65    #[serde(rename = "user_matching_mode", skip_serializing_if = "Option::is_none")]
66    pub user_matching_mode: Option<models::UserMatchingModeEnum>,
67    /// Objects that are managed by authentik. These objects are created and updated automatically. This flag only indicates that an object can be overwritten by migrations. You can still modify the objects via the API, but expect changes to be overwritten in a later update.
68    #[serde(rename = "managed", deserialize_with = "Option::deserialize")]
69    pub managed: Option<String>,
70    #[serde(rename = "user_path_template", skip_serializing_if = "Option::is_none")]
71    pub user_path_template: Option<String>,
72    #[serde(rename = "icon", skip_serializing_if = "Option::is_none")]
73    pub icon: Option<String>,
74    #[serde(rename = "icon_url")]
75    pub icon_url: String,
76    #[serde(rename = "icon_themed_urls", deserialize_with = "Option::deserialize")]
77    pub icon_themed_urls: Option<models::ThemedUrls>,
78    /// How the source determines if an existing group should be used or a new group created.
79    #[serde(rename = "group_matching_mode", skip_serializing_if = "Option::is_none")]
80    pub group_matching_mode: Option<models::GroupMatchingModeEnum>,
81    /// Kerberos realm
82    #[serde(rename = "realm")]
83    pub realm: String,
84    /// Custom krb5.conf to use. Uses the system one by default
85    #[serde(rename = "krb5_conf", skip_serializing_if = "Option::is_none")]
86    pub krb5_conf: Option<String>,
87    /// KAdmin server type
88    #[serde(rename = "kadmin_type", skip_serializing_if = "Option::is_none")]
89    pub kadmin_type: Option<models::KadminTypeEnum>,
90    /// Sync users from Kerberos into authentik
91    #[serde(rename = "sync_users", skip_serializing_if = "Option::is_none")]
92    pub sync_users: Option<bool>,
93    /// When a user changes their password, sync it back to Kerberos
94    #[serde(rename = "sync_users_password", skip_serializing_if = "Option::is_none")]
95    pub sync_users_password: Option<bool>,
96    /// Principal to authenticate to kadmin for sync.
97    #[serde(rename = "sync_principal", skip_serializing_if = "Option::is_none")]
98    pub sync_principal: Option<String>,
99    /// Credentials cache to authenticate to kadmin for sync. Must be in the form TYPE:residual
100    #[serde(rename = "sync_ccache", skip_serializing_if = "Option::is_none")]
101    pub sync_ccache: Option<String>,
102    /// Get cached source connectivity
103    #[serde(rename = "connectivity", deserialize_with = "Option::deserialize")]
104    pub connectivity: Option<std::collections::HashMap<String, String>>,
105    /// Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname
106    #[serde(rename = "spnego_server_name", skip_serializing_if = "Option::is_none")]
107    pub spnego_server_name: Option<String>,
108    /// Credential cache to use for SPNEGO in form type:residual
109    #[serde(rename = "spnego_ccache", skip_serializing_if = "Option::is_none")]
110    pub spnego_ccache: Option<String>,
111    /// If enabled, the authentik-stored password will be updated upon login with the Kerberos password backend
112    #[serde(
113        rename = "password_login_update_internal_password",
114        skip_serializing_if = "Option::is_none"
115    )]
116    pub password_login_update_internal_password: Option<bool>,
117    /// When to trigger sync for outgoing providers
118    #[serde(rename = "sync_outgoing_trigger_mode", skip_serializing_if = "Option::is_none")]
119    pub sync_outgoing_trigger_mode: Option<models::SyncOutgoingTriggerModeEnum>,
120}
121
122impl KerberosSource {
123    /// Kerberos Source Serializer
124    pub fn new(
125        pk: uuid::Uuid,
126        name: String,
127        slug: String,
128        component: String,
129        verbose_name: String,
130        verbose_name_plural: String,
131        meta_model_name: String,
132        managed: Option<String>,
133        icon_url: String,
134        icon_themed_urls: Option<models::ThemedUrls>,
135        realm: String,
136        connectivity: Option<std::collections::HashMap<String, String>>,
137    ) -> KerberosSource {
138        KerberosSource {
139            pk,
140            name,
141            slug,
142            enabled: None,
143            promoted: None,
144            authentication_flow: None,
145            enrollment_flow: None,
146            user_property_mappings: None,
147            group_property_mappings: None,
148            component,
149            verbose_name,
150            verbose_name_plural,
151            meta_model_name,
152            policy_engine_mode: None,
153            user_matching_mode: None,
154            managed,
155            user_path_template: None,
156            icon: None,
157            icon_url,
158            icon_themed_urls,
159            group_matching_mode: None,
160            realm,
161            krb5_conf: None,
162            kadmin_type: None,
163            sync_users: None,
164            sync_users_password: None,
165            sync_principal: None,
166            sync_ccache: None,
167            connectivity,
168            spnego_server_name: None,
169            spnego_ccache: None,
170            password_login_update_internal_password: None,
171            sync_outgoing_trigger_mode: None,
172        }
173    }
174}