use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct LifecycleRuleRequest {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "content_type")]
pub content_type: models::ContentTypeEnum,
#[serde(
rename = "object_id",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub object_id: Option<Option<String>>,
#[serde(rename = "interval", skip_serializing_if = "Option::is_none")]
pub interval: Option<String>,
#[serde(rename = "grace_period", skip_serializing_if = "Option::is_none")]
pub grace_period: Option<String>,
#[serde(rename = "reviewer_groups", skip_serializing_if = "Option::is_none")]
pub reviewer_groups: Option<Vec<uuid::Uuid>>,
#[serde(rename = "min_reviewers", skip_serializing_if = "Option::is_none")]
pub min_reviewers: Option<u16>,
#[serde(rename = "min_reviewers_is_per_group", skip_serializing_if = "Option::is_none")]
pub min_reviewers_is_per_group: Option<bool>,
#[serde(rename = "reviewers")]
pub reviewers: Vec<uuid::Uuid>,
#[serde(rename = "notification_transports", skip_serializing_if = "Option::is_none")]
pub notification_transports: Option<Vec<uuid::Uuid>>,
}
impl LifecycleRuleRequest {
pub fn new(
name: String,
content_type: models::ContentTypeEnum,
reviewers: Vec<uuid::Uuid>,
) -> LifecycleRuleRequest {
LifecycleRuleRequest {
name,
content_type,
object_id: None,
interval: None,
grace_period: None,
reviewer_groups: None,
min_reviewers: None,
min_reviewers_is_per_group: None,
reviewers,
notification_transports: None,
}
}
}