use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct FlowSet {
    #[serde(rename = "pk")]
    pub pk: uuid::Uuid,
    #[serde(rename = "policybindingmodel_ptr_id")]
    pub policybindingmodel_ptr_id: uuid::Uuid,
    #[serde(rename = "name")]
    pub name: String,
        #[serde(rename = "slug")]
    pub slug: String,
        #[serde(rename = "title")]
    pub title: String,
        #[serde(rename = "designation")]
    pub designation: models::FlowDesignationEnum,
        #[serde(rename = "background")]
    pub background: String,
    #[serde(rename = "policy_engine_mode", skip_serializing_if = "Option::is_none")]
    pub policy_engine_mode: Option<models::PolicyEngineMode>,
        #[serde(rename = "compatibility_mode", skip_serializing_if = "Option::is_none")]
    pub compatibility_mode: Option<bool>,
        #[serde(rename = "export_url")]
    pub export_url: String,
    #[serde(rename = "layout", skip_serializing_if = "Option::is_none")]
    pub layout: Option<models::FlowLayoutEnum>,
        #[serde(rename = "denied_action", skip_serializing_if = "Option::is_none")]
    pub denied_action: Option<models::DeniedActionEnum>,
}
impl FlowSet {
        pub fn new(
        pk: uuid::Uuid,
        policybindingmodel_ptr_id: uuid::Uuid,
        name: String,
        slug: String,
        title: String,
        designation: models::FlowDesignationEnum,
        background: String,
        export_url: String,
    ) -> FlowSet {
        FlowSet {
            pk,
            policybindingmodel_ptr_id,
            name,
            slug,
            title,
            designation,
            background,
            policy_engine_mode: None,
            compatibility_mode: None,
            export_url,
            layout: None,
            denied_action: None,
        }
    }
}