1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct OAuth2Provider {
17 #[serde(rename = "pk")]
18 pub pk: i32,
19 #[serde(rename = "name")]
20 pub name: String,
21 #[serde(
23 rename = "authentication_flow",
24 default,
25 with = "::serde_with::rust::double_option",
26 skip_serializing_if = "Option::is_none"
27 )]
28 pub authentication_flow: Option<Option<uuid::Uuid>>,
29 #[serde(rename = "authorization_flow")]
31 pub authorization_flow: uuid::Uuid,
32 #[serde(rename = "invalidation_flow")]
34 pub invalidation_flow: uuid::Uuid,
35 #[serde(rename = "property_mappings", skip_serializing_if = "Option::is_none")]
36 pub property_mappings: Option<Vec<uuid::Uuid>>,
37 #[serde(rename = "component")]
39 pub component: String,
40 #[serde(rename = "assigned_application_slug", deserialize_with = "Option::deserialize")]
42 pub assigned_application_slug: Option<String>,
43 #[serde(rename = "assigned_application_name", deserialize_with = "Option::deserialize")]
45 pub assigned_application_name: Option<String>,
46 #[serde(
48 rename = "assigned_backchannel_application_slug",
49 deserialize_with = "Option::deserialize"
50 )]
51 pub assigned_backchannel_application_slug: Option<String>,
52 #[serde(
54 rename = "assigned_backchannel_application_name",
55 deserialize_with = "Option::deserialize"
56 )]
57 pub assigned_backchannel_application_name: Option<String>,
58 #[serde(rename = "verbose_name")]
60 pub verbose_name: String,
61 #[serde(rename = "verbose_name_plural")]
63 pub verbose_name_plural: String,
64 #[serde(rename = "meta_model_name")]
66 pub meta_model_name: String,
67 #[serde(rename = "client_type", skip_serializing_if = "Option::is_none")]
69 pub client_type: Option<models::ClientTypeEnum>,
70 #[serde(rename = "client_id", skip_serializing_if = "Option::is_none")]
71 pub client_id: Option<String>,
72 #[serde(rename = "client_secret", skip_serializing_if = "Option::is_none")]
73 pub client_secret: Option<String>,
74 #[serde(rename = "access_code_validity", skip_serializing_if = "Option::is_none")]
76 pub access_code_validity: Option<String>,
77 #[serde(rename = "access_token_validity", skip_serializing_if = "Option::is_none")]
79 pub access_token_validity: Option<String>,
80 #[serde(rename = "refresh_token_validity", skip_serializing_if = "Option::is_none")]
82 pub refresh_token_validity: Option<String>,
83 #[serde(rename = "refresh_token_threshold", skip_serializing_if = "Option::is_none")]
85 pub refresh_token_threshold: Option<String>,
86 #[serde(rename = "include_claims_in_id_token", skip_serializing_if = "Option::is_none")]
88 pub include_claims_in_id_token: Option<bool>,
89 #[serde(
91 rename = "signing_key",
92 default,
93 with = "::serde_with::rust::double_option",
94 skip_serializing_if = "Option::is_none"
95 )]
96 pub signing_key: Option<Option<uuid::Uuid>>,
97 #[serde(
99 rename = "encryption_key",
100 default,
101 with = "::serde_with::rust::double_option",
102 skip_serializing_if = "Option::is_none"
103 )]
104 pub encryption_key: Option<Option<uuid::Uuid>>,
105 #[serde(rename = "redirect_uris")]
106 pub redirect_uris: Vec<models::RedirectUri>,
107 #[serde(rename = "logout_uri", skip_serializing_if = "Option::is_none")]
108 pub logout_uri: Option<String>,
109 #[serde(rename = "logout_method", skip_serializing_if = "Option::is_none")]
111 pub logout_method: Option<models::OAuth2ProviderLogoutMethodEnum>,
112 #[serde(rename = "sub_mode", skip_serializing_if = "Option::is_none")]
114 pub sub_mode: Option<models::SubModeEnum>,
115 #[serde(rename = "issuer_mode", skip_serializing_if = "Option::is_none")]
117 pub issuer_mode: Option<models::IssuerModeEnum>,
118 #[serde(rename = "jwt_federation_sources", skip_serializing_if = "Option::is_none")]
119 pub jwt_federation_sources: Option<Vec<uuid::Uuid>>,
120 #[serde(rename = "jwt_federation_providers", skip_serializing_if = "Option::is_none")]
121 pub jwt_federation_providers: Option<Vec<i32>>,
122}
123
124impl OAuth2Provider {
125 pub fn new(
127 pk: i32,
128 name: String,
129 authorization_flow: uuid::Uuid,
130 invalidation_flow: uuid::Uuid,
131 component: String,
132 assigned_application_slug: Option<String>,
133 assigned_application_name: Option<String>,
134 assigned_backchannel_application_slug: Option<String>,
135 assigned_backchannel_application_name: Option<String>,
136 verbose_name: String,
137 verbose_name_plural: String,
138 meta_model_name: String,
139 redirect_uris: Vec<models::RedirectUri>,
140 ) -> OAuth2Provider {
141 OAuth2Provider {
142 pk,
143 name,
144 authentication_flow: None,
145 authorization_flow,
146 invalidation_flow,
147 property_mappings: None,
148 component,
149 assigned_application_slug,
150 assigned_application_name,
151 assigned_backchannel_application_slug,
152 assigned_backchannel_application_name,
153 verbose_name,
154 verbose_name_plural,
155 meta_model_name,
156 client_type: None,
157 client_id: None,
158 client_secret: None,
159 access_code_validity: None,
160 access_token_validity: None,
161 refresh_token_validity: None,
162 refresh_token_threshold: None,
163 include_claims_in_id_token: None,
164 signing_key: None,
165 encryption_key: None,
166 redirect_uris,
167 logout_uri: None,
168 logout_method: None,
169 sub_mode: None,
170 issuer_mode: None,
171 jwt_federation_sources: None,
172 jwt_federation_providers: None,
173 }
174 }
175}