authentik_rust/models/
policy_binding.rs

1/*
2 * authentik
3 *
4 * Making authentication simple.
5 *
6 * The version of the OpenAPI document: 2024.2.1
7 * Contact: hello@goauthentik.io
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12
13/// PolicyBinding : PolicyBinding Serializer
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PolicyBinding {
16    #[serde(rename = "pk")]
17    pub pk: uuid::Uuid,
18    #[serde(rename = "policy", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
19    pub policy: Option<Option<uuid::Uuid>>,
20    #[serde(rename = "group", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
21    pub group: Option<Option<uuid::Uuid>>,
22    #[serde(rename = "user", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
23    pub user: Option<Option<i32>>,
24    #[serde(rename = "policy_obj")]
25    pub policy_obj: Box<models::Policy>,
26    #[serde(rename = "group_obj")]
27    pub group_obj: Box<models::Group>,
28    #[serde(rename = "user_obj")]
29    pub user_obj: Box<models::User>,
30    #[serde(rename = "target")]
31    pub target: uuid::Uuid,
32    /// Negates the outcome of the policy. Messages are unaffected.
33    #[serde(rename = "negate", skip_serializing_if = "Option::is_none")]
34    pub negate: Option<bool>,
35    #[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
36    pub enabled: Option<bool>,
37    #[serde(rename = "order")]
38    pub order: i32,
39    /// Timeout after which Policy execution is terminated.
40    #[serde(rename = "timeout", skip_serializing_if = "Option::is_none")]
41    pub timeout: Option<i32>,
42    /// Result if the Policy execution fails.
43    #[serde(rename = "failure_result", skip_serializing_if = "Option::is_none")]
44    pub failure_result: Option<bool>,
45}
46
47impl PolicyBinding {
48    /// PolicyBinding Serializer
49    pub fn new(pk: uuid::Uuid, policy_obj: models::Policy, group_obj: models::Group, user_obj: models::User, target: uuid::Uuid, order: i32) -> PolicyBinding {
50        PolicyBinding {
51            pk,
52            policy: None,
53            group: None,
54            user: None,
55            policy_obj: Box::new(policy_obj),
56            group_obj: Box::new(group_obj),
57            user_obj: Box::new(user_obj),
58            target,
59            negate: None,
60            enabled: None,
61            order,
62            timeout: None,
63            failure_result: None,
64        }
65    }
66}
67