use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Flow {
#[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 = "stages")]
pub stages: Vec<uuid::Uuid>,
#[serde(rename = "policies")]
pub policies: Vec<uuid::Uuid>,
#[serde(rename = "cache_count")]
pub cache_count: i32,
#[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>,
#[serde(rename = "authentication", skip_serializing_if = "Option::is_none")]
pub authentication: Option<models::AuthenticationEnum>,
}
impl Flow {
pub fn new(
pk: uuid::Uuid,
policybindingmodel_ptr_id: uuid::Uuid,
name: String,
slug: String,
title: String,
designation: models::FlowDesignationEnum,
background: String,
stages: Vec<uuid::Uuid>,
policies: Vec<uuid::Uuid>,
cache_count: i32,
export_url: String,
) -> Flow {
Flow {
pk,
policybindingmodel_ptr_id,
name,
slug,
title,
designation,
background,
stages,
policies,
cache_count,
policy_engine_mode: None,
compatibility_mode: None,
export_url,
layout: None,
denied_action: None,
authentication: None,
}
}
}