use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Worker {
#[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>,
#[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>,
#[serde(rename = "command", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub command: Option<Option<String>>,
#[serde(rename = "dockerImage", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub docker_image: Option<Option<String>>,
#[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>>,
#[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 {
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
}
}