cortex_client/models/
worker.rs

1/*
2 * Cortex API
3 *
4 * API for Cortex, a powerful observable analysis and active response engine.
5 *
6 * The version of the OpenAPI document: 3.1.8
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// Worker : Represents an Analyzer or Responder. The 'configuration' field's structure depends on the specific worker and admin privileges.
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Worker {
17    /// The unique ID of the worker (analyzer/responder).
18    #[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
19    pub _id: Option<String>,
20    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
21    pub name: Option<String>,
22    #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
23    pub version: Option<String>,
24    /// ID of the definition this worker is based on.
25    #[serde(rename = "workerDefinitionId", skip_serializing_if = "Option::is_none")]
26    pub worker_definition_id: Option<String>,
27    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
28    pub description: Option<String>,
29    #[serde(rename = "author", skip_serializing_if = "Option::is_none")]
30    pub author: Option<String>,
31    #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
32    pub url: Option<String>,
33    #[serde(rename = "license", skip_serializing_if = "Option::is_none")]
34    pub license: Option<String>,
35    /// Command to execute for process-based workers.
36    #[serde(rename = "command", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
37    pub command: Option<Option<String>>,
38    /// Docker image for containerized workers.
39    #[serde(rename = "dockerImage", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
40    pub docker_image: Option<Option<String>>,
41    /// List of data types this worker can process.
42    #[serde(rename = "dataTypeList", skip_serializing_if = "Option::is_none")]
43    pub data_type_list: Option<Vec<String>>,
44    #[serde(rename = "configuration", skip_serializing_if = "Option::is_none")]
45    pub configuration: Option<Box<models::WorkerConfiguration>>,
46    /// Key for the base configuration.
47    #[serde(rename = "baseConfig", skip_serializing_if = "Option::is_none")]
48    pub base_config: Option<String>,
49    #[serde(rename = "rate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
50    pub rate: Option<Option<f64>>,
51    #[serde(rename = "rateUnit", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
52    pub rate_unit: Option<Option<RateUnit>>,
53    #[serde(rename = "jobCache", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
54    pub job_cache: Option<Option<f64>>,
55    #[serde(rename = "jobTimeout", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
56    pub job_timeout: Option<Option<f64>>,
57    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
58    pub r#type: Option<Type>,
59    #[serde(rename = "analyzerDefinitionId", skip_serializing_if = "Option::is_none")]
60    pub analyzer_definition_id: Option<String>,
61    #[serde(rename = "maxTlp", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
62    pub max_tlp: Option<Option<f64>>,
63    #[serde(rename = "maxPap", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
64    pub max_pap: Option<Option<f64>>,
65}
66
67impl Worker {
68    /// Represents an Analyzer or Responder. The 'configuration' field's structure depends on the specific worker and admin privileges.
69    pub fn new() -> Worker {
70        Worker {
71            _id: None,
72            name: None,
73            version: None,
74            worker_definition_id: None,
75            description: None,
76            author: None,
77            url: None,
78            license: None,
79            command: None,
80            docker_image: None,
81            data_type_list: None,
82            configuration: None,
83            base_config: None,
84            rate: None,
85            rate_unit: None,
86            job_cache: None,
87            job_timeout: None,
88            r#type: None,
89            analyzer_definition_id: None,
90            max_tlp: None,
91            max_pap: None,
92        }
93    }
94}
95/// 
96#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
97pub enum RateUnit {
98    #[serde(rename = "Second")]
99    Second,
100    #[serde(rename = "Minute")]
101    Minute,
102    #[serde(rename = "Hour")]
103    Hour,
104    #[serde(rename = "Day")]
105    Day,
106    #[serde(rename = "Month")]
107    Month,
108}
109
110impl Default for RateUnit {
111    fn default() -> RateUnit {
112        Self::Second
113    }
114}
115/// 
116#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
117pub enum Type {
118    #[serde(rename = "analyzer")]
119    Analyzer,
120    #[serde(rename = "responder")]
121    Responder,
122}
123
124impl Default for Type {
125    fn default() -> Type {
126        Self::Analyzer
127    }
128}
129