authentik_client/models/
lifecycle_rule_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct LifecycleRuleRequest {
17 #[serde(rename = "name")]
18 pub name: String,
19 #[serde(rename = "content_type")]
20 pub content_type: models::ContentTypeEnum,
21 #[serde(
22 rename = "object_id",
23 default,
24 with = "::serde_with::rust::double_option",
25 skip_serializing_if = "Option::is_none"
26 )]
27 pub object_id: Option<Option<String>>,
28 #[serde(rename = "interval", skip_serializing_if = "Option::is_none")]
29 pub interval: Option<String>,
30 #[serde(rename = "grace_period", skip_serializing_if = "Option::is_none")]
31 pub grace_period: Option<String>,
32 #[serde(rename = "reviewer_groups", skip_serializing_if = "Option::is_none")]
33 pub reviewer_groups: Option<Vec<uuid::Uuid>>,
34 #[serde(rename = "min_reviewers", skip_serializing_if = "Option::is_none")]
35 pub min_reviewers: Option<u16>,
36 #[serde(rename = "min_reviewers_is_per_group", skip_serializing_if = "Option::is_none")]
37 pub min_reviewers_is_per_group: Option<bool>,
38 #[serde(rename = "reviewers")]
39 pub reviewers: Vec<uuid::Uuid>,
40 #[serde(rename = "notification_transports", skip_serializing_if = "Option::is_none")]
42 pub notification_transports: Option<Vec<uuid::Uuid>>,
43}
44
45impl LifecycleRuleRequest {
46 pub fn new(
48 name: String,
49 content_type: models::ContentTypeEnum,
50 reviewers: Vec<uuid::Uuid>,
51 ) -> LifecycleRuleRequest {
52 LifecycleRuleRequest {
53 name,
54 content_type,
55 object_id: None,
56 interval: None,
57 grace_period: None,
58 reviewer_groups: None,
59 min_reviewers: None,
60 min_reviewers_is_per_group: None,
61 reviewers,
62 notification_transports: None,
63 }
64 }
65}