babelforce-manager-sdk 0.44.0

Rust SDK for the babelforce manager APIs — auth, user & agent management, call reporting, metrics, and task automations.
Documentation
/*
 * Manager API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.0.0-dev
 * Contact: support@babelforce.com
 * Generated by: https://openapi-generator.tech
 */

use crate::gen::manager::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct QueueSelection {
    /// The unique Identifier (UUID) of the object
    #[serde(rename = "id")]
    pub id: uuid::Uuid,
    #[serde(rename = "label")]
    pub label: String,
    #[serde(rename = "enabled")]
    pub enabled: bool,
    #[serde(rename = "continueOnMatch")]
    pub continue_on_match: bool,
    #[serde(rename = "continueOnEmpty")]
    pub continue_on_empty: bool,
    #[serde(rename = "selectLastAgent", skip_serializing_if = "Option::is_none")]
    pub select_last_agent: Option<bool>,
    #[serde(rename = "priority")]
    pub priority: i32,
    #[serde(rename = "dateCreated")]
    pub date_created: chrono::DateTime<chrono::FixedOffset>,
    #[serde(rename = "lastUpdated")]
    pub last_updated: chrono::DateTime<chrono::FixedOffset>,
    #[serde(rename = "trigger")]
    pub trigger: Box<models::Trigger>,
    #[serde(rename = "groups")]
    pub groups: Vec<models::QueueSelectionGroup>,
    #[serde(rename = "tags")]
    pub tags: Vec<models::QueueSelectionTag>,
    #[serde(rename = "agents")]
    pub agents: Vec<models::QueueSelectionAgent>,
}

impl QueueSelection {
    pub fn new(
        id: uuid::Uuid,
        label: String,
        enabled: bool,
        continue_on_match: bool,
        continue_on_empty: bool,
        priority: i32,
        date_created: chrono::DateTime<chrono::FixedOffset>,
        last_updated: chrono::DateTime<chrono::FixedOffset>,
        trigger: models::Trigger,
        groups: Vec<models::QueueSelectionGroup>,
        tags: Vec<models::QueueSelectionTag>,
        agents: Vec<models::QueueSelectionAgent>,
    ) -> QueueSelection {
        QueueSelection {
            id,
            label,
            enabled,
            continue_on_match,
            continue_on_empty,
            select_last_agent: None,
            priority,
            date_created,
            last_updated,
            trigger: Box::new(trigger),
            groups,
            tags,
            agents,
        }
    }
}