1use crate::models;
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ProxyProvider {
16 #[serde(rename = "pk")]
17 pub pk: i32,
18 #[serde(rename = "name")]
19 pub name: String,
20 #[serde(rename = "authentication_flow", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
22 pub authentication_flow: Option<Option<uuid::Uuid>>,
23 #[serde(rename = "authorization_flow")]
25 pub authorization_flow: uuid::Uuid,
26 #[serde(rename = "property_mappings", skip_serializing_if = "Option::is_none")]
27 pub property_mappings: Option<Vec<uuid::Uuid>>,
28 #[serde(rename = "component")]
30 pub component: String,
31 #[serde(rename = "assigned_application_slug")]
33 pub assigned_application_slug: String,
34 #[serde(rename = "assigned_application_name")]
36 pub assigned_application_name: String,
37 #[serde(rename = "assigned_backchannel_application_slug")]
39 pub assigned_backchannel_application_slug: String,
40 #[serde(rename = "assigned_backchannel_application_name")]
42 pub assigned_backchannel_application_name: String,
43 #[serde(rename = "verbose_name")]
45 pub verbose_name: String,
46 #[serde(rename = "verbose_name_plural")]
48 pub verbose_name_plural: String,
49 #[serde(rename = "meta_model_name")]
51 pub meta_model_name: String,
52 #[serde(rename = "client_id")]
53 pub client_id: String,
54 #[serde(rename = "internal_host", skip_serializing_if = "Option::is_none")]
55 pub internal_host: Option<String>,
56 #[serde(rename = "external_host")]
57 pub external_host: String,
58 #[serde(rename = "internal_host_ssl_validation", skip_serializing_if = "Option::is_none")]
60 pub internal_host_ssl_validation: Option<bool>,
61 #[serde(rename = "certificate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
62 pub certificate: Option<Option<uuid::Uuid>>,
63 #[serde(rename = "skip_path_regex", skip_serializing_if = "Option::is_none")]
65 pub skip_path_regex: Option<String>,
66 #[serde(rename = "basic_auth_enabled", skip_serializing_if = "Option::is_none")]
68 pub basic_auth_enabled: Option<bool>,
69 #[serde(rename = "basic_auth_password_attribute", skip_serializing_if = "Option::is_none")]
71 pub basic_auth_password_attribute: Option<String>,
72 #[serde(rename = "basic_auth_user_attribute", skip_serializing_if = "Option::is_none")]
74 pub basic_auth_user_attribute: Option<String>,
75 #[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
77 pub mode: Option<models::ProxyMode>,
78 #[serde(rename = "intercept_header_auth", skip_serializing_if = "Option::is_none")]
80 pub intercept_header_auth: Option<bool>,
81 #[serde(rename = "redirect_uris")]
82 pub redirect_uris: String,
83 #[serde(rename = "cookie_domain", skip_serializing_if = "Option::is_none")]
84 pub cookie_domain: Option<String>,
85 #[serde(rename = "jwks_sources", skip_serializing_if = "Option::is_none")]
86 pub jwks_sources: Option<Vec<uuid::Uuid>>,
87 #[serde(rename = "access_token_validity", skip_serializing_if = "Option::is_none")]
89 pub access_token_validity: Option<String>,
90 #[serde(rename = "refresh_token_validity", skip_serializing_if = "Option::is_none")]
92 pub refresh_token_validity: Option<String>,
93 #[serde(rename = "outpost_set")]
94 pub outpost_set: Vec<String>,
95}
96
97impl ProxyProvider {
98 pub fn new(pk: i32, name: String, authorization_flow: uuid::Uuid, component: String, assigned_application_slug: String, assigned_application_name: String, assigned_backchannel_application_slug: String, assigned_backchannel_application_name: String, verbose_name: String, verbose_name_plural: String, meta_model_name: String, client_id: String, external_host: String, redirect_uris: String, outpost_set: Vec<String>) -> ProxyProvider {
100 ProxyProvider {
101 pk,
102 name,
103 authentication_flow: None,
104 authorization_flow,
105 property_mappings: None,
106 component,
107 assigned_application_slug,
108 assigned_application_name,
109 assigned_backchannel_application_slug,
110 assigned_backchannel_application_name,
111 verbose_name,
112 verbose_name_plural,
113 meta_model_name,
114 client_id,
115 internal_host: None,
116 external_host,
117 internal_host_ssl_validation: None,
118 certificate: None,
119 skip_path_regex: None,
120 basic_auth_enabled: None,
121 basic_auth_password_attribute: None,
122 basic_auth_user_attribute: None,
123 mode: None,
124 intercept_header_auth: None,
125 redirect_uris,
126 cookie_domain: None,
127 jwks_sources: None,
128 access_token_validity: None,
129 refresh_token_validity: None,
130 outpost_set,
131 }
132 }
133}
134