Skip to main content

authentik_client/models/
lifecycle_rule_request.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/// LifecycleRuleRequest : Mixin to validate that a valid enterprise license exists before allowing to save the object
15#[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    /// Select which transports should be used to notify the reviewers. If none are selected, the notification will only be shown in the authentik UI.
41    #[serde(rename = "notification_transports", skip_serializing_if = "Option::is_none")]
42    pub notification_transports: Option<Vec<uuid::Uuid>>,
43}
44
45impl LifecycleRuleRequest {
46    /// Mixin to validate that a valid enterprise license exists before allowing to save the object
47    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}