cortex-client 0.1.1

API for Cortex, a powerful observable analysis and active response engine.
Documentation
/*
 * Cortex API
 *
 * API for Cortex, a powerful observable analysis and active response engine.
 *
 * The version of the OpenAPI document: 3.1.8
 * 
 * Generated by: https://openapi-generator.tech
 */

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

/// Worker : Represents an Analyzer or Responder. The 'configuration' field's structure depends on the specific worker and admin privileges.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Worker {
    /// The unique ID of the worker (analyzer/responder).
    #[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
    pub _id: Option<String>,
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
    /// ID of the definition this worker is based on.
    #[serde(rename = "workerDefinitionId", skip_serializing_if = "Option::is_none")]
    pub worker_definition_id: Option<String>,
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(rename = "author", skip_serializing_if = "Option::is_none")]
    pub author: Option<String>,
    #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
    pub url: Option<String>,
    #[serde(rename = "license", skip_serializing_if = "Option::is_none")]
    pub license: Option<String>,
    /// Command to execute for process-based workers.
    #[serde(rename = "command", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub command: Option<Option<String>>,
    /// Docker image for containerized workers.
    #[serde(rename = "dockerImage", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub docker_image: Option<Option<String>>,
    /// List of data types this worker can process.
    #[serde(rename = "dataTypeList", skip_serializing_if = "Option::is_none")]
    pub data_type_list: Option<Vec<String>>,
    #[serde(rename = "configuration", skip_serializing_if = "Option::is_none")]
    pub configuration: Option<Box<models::WorkerConfiguration>>,
    /// Key for the base configuration.
    #[serde(rename = "baseConfig", skip_serializing_if = "Option::is_none")]
    pub base_config: Option<String>,
    #[serde(rename = "rate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub rate: Option<Option<f64>>,
    #[serde(rename = "rateUnit", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub rate_unit: Option<Option<RateUnit>>,
    #[serde(rename = "jobCache", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub job_cache: Option<Option<f64>>,
    #[serde(rename = "jobTimeout", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub job_timeout: Option<Option<f64>>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<Type>,
    #[serde(rename = "analyzerDefinitionId", skip_serializing_if = "Option::is_none")]
    pub analyzer_definition_id: Option<String>,
    #[serde(rename = "maxTlp", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub max_tlp: Option<Option<f64>>,
    #[serde(rename = "maxPap", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub max_pap: Option<Option<f64>>,
}

impl Worker {
    /// Represents an Analyzer or Responder. The 'configuration' field's structure depends on the specific worker and admin privileges.
    pub fn new() -> Worker {
        Worker {
            _id: None,
            name: None,
            version: None,
            worker_definition_id: None,
            description: None,
            author: None,
            url: None,
            license: None,
            command: None,
            docker_image: None,
            data_type_list: None,
            configuration: None,
            base_config: None,
            rate: None,
            rate_unit: None,
            job_cache: None,
            job_timeout: None,
            r#type: None,
            analyzer_definition_id: None,
            max_tlp: None,
            max_pap: None,
        }
    }
}
/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RateUnit {
    #[serde(rename = "Second")]
    Second,
    #[serde(rename = "Minute")]
    Minute,
    #[serde(rename = "Hour")]
    Hour,
    #[serde(rename = "Day")]
    Day,
    #[serde(rename = "Month")]
    Month,
}

impl Default for RateUnit {
    fn default() -> RateUnit {
        Self::Second
    }
}
/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
    #[serde(rename = "analyzer")]
    Analyzer,
    #[serde(rename = "responder")]
    Responder,
}

impl Default for Type {
    fn default() -> Type {
        Self::Analyzer
    }
}