use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct JobOneOf {
#[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
pub workspace_id: Option<String>,
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "parent_job", skip_serializing_if = "Option::is_none")]
pub parent_job: Option<uuid::Uuid>,
#[serde(rename = "created_by")]
pub created_by: String,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "started_at")]
pub started_at: String,
#[serde(rename = "completed_at", skip_serializing_if = "Option::is_none")]
pub completed_at: Option<String>,
#[serde(rename = "duration_ms")]
pub duration_ms: i32,
#[serde(rename = "success")]
pub success: bool,
#[serde(rename = "script_path", skip_serializing_if = "Option::is_none")]
pub script_path: Option<String>,
#[serde(rename = "script_hash", skip_serializing_if = "Option::is_none")]
pub script_hash: Option<String>,
#[serde(rename = "args", skip_serializing_if = "Option::is_none")]
pub args: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "result", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub result: Option<Option<serde_json::Value>>,
#[serde(rename = "logs", skip_serializing_if = "Option::is_none")]
pub logs: Option<String>,
#[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(rename = "raw_code", skip_serializing_if = "Option::is_none")]
pub raw_code: Option<String>,
#[serde(rename = "canceled")]
pub canceled: bool,
#[serde(rename = "canceled_by", skip_serializing_if = "Option::is_none")]
pub canceled_by: Option<String>,
#[serde(rename = "canceled_reason", skip_serializing_if = "Option::is_none")]
pub canceled_reason: Option<String>,
#[serde(rename = "job_kind")]
pub job_kind: JobKind,
#[serde(rename = "schedule_path", skip_serializing_if = "Option::is_none")]
pub schedule_path: Option<String>,
#[serde(rename = "permissioned_as")]
pub permissioned_as: String,
#[serde(rename = "flow_status", skip_serializing_if = "Option::is_none")]
pub flow_status: Option<Box<models::FlowStatus>>,
#[serde(rename = "workflow_as_code_status", skip_serializing_if = "Option::is_none")]
pub workflow_as_code_status: Option<Box<models::WorkflowStatus>>,
#[serde(rename = "raw_flow", skip_serializing_if = "Option::is_none")]
pub raw_flow: Option<Box<models::FlowValue>>,
#[serde(rename = "is_flow_step")]
pub is_flow_step: bool,
#[serde(rename = "language", skip_serializing_if = "Option::is_none")]
pub language: Option<models::ScriptLang>,
#[serde(rename = "is_skipped")]
pub is_skipped: bool,
#[serde(rename = "email")]
pub email: String,
#[serde(rename = "visible_to_owner")]
pub visible_to_owner: bool,
#[serde(rename = "mem_peak", skip_serializing_if = "Option::is_none")]
pub mem_peak: Option<i32>,
#[serde(rename = "tag")]
pub tag: String,
#[serde(rename = "priority", skip_serializing_if = "Option::is_none")]
pub priority: Option<i32>,
#[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<String>>,
#[serde(rename = "self_wait_time_ms", skip_serializing_if = "Option::is_none")]
pub self_wait_time_ms: Option<f64>,
#[serde(rename = "aggregate_wait_time_ms", skip_serializing_if = "Option::is_none")]
pub aggregate_wait_time_ms: Option<f64>,
#[serde(rename = "preprocessed", skip_serializing_if = "Option::is_none")]
pub preprocessed: Option<bool>,
#[serde(rename = "worker", skip_serializing_if = "Option::is_none")]
pub worker: Option<String>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<Type>,
}
impl JobOneOf {
pub fn new(id: uuid::Uuid, created_by: String, created_at: String, started_at: String, duration_ms: i32, success: bool, canceled: bool, job_kind: JobKind, permissioned_as: String, is_flow_step: bool, is_skipped: bool, email: String, visible_to_owner: bool, tag: String) -> JobOneOf {
JobOneOf {
workspace_id: None,
id,
parent_job: None,
created_by,
created_at,
started_at,
completed_at: None,
duration_ms,
success,
script_path: None,
script_hash: None,
args: None,
result: None,
logs: None,
deleted: None,
raw_code: None,
canceled,
canceled_by: None,
canceled_reason: None,
job_kind,
schedule_path: None,
permissioned_as,
flow_status: None,
workflow_as_code_status: None,
raw_flow: None,
is_flow_step,
language: None,
is_skipped,
email,
visible_to_owner,
mem_peak: None,
tag,
priority: None,
labels: None,
self_wait_time_ms: None,
aggregate_wait_time_ms: None,
preprocessed: None,
worker: None,
r#type: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum JobKind {
#[serde(rename = "script")]
Script,
#[serde(rename = "preview")]
Preview,
#[serde(rename = "dependencies")]
Dependencies,
#[serde(rename = "flow")]
Flow,
#[serde(rename = "flowdependencies")]
Flowdependencies,
#[serde(rename = "appdependencies")]
Appdependencies,
#[serde(rename = "flowpreview")]
Flowpreview,
#[serde(rename = "script_hub")]
ScriptHub,
#[serde(rename = "identity")]
Identity,
#[serde(rename = "deploymentcallback")]
Deploymentcallback,
#[serde(rename = "singlestepflow")]
Singlestepflow,
#[serde(rename = "flowscript")]
Flowscript,
#[serde(rename = "flownode")]
Flownode,
#[serde(rename = "appscript")]
Appscript,
#[serde(rename = "aiagent")]
Aiagent,
#[serde(rename = "unassigned_script")]
UnassignedScript,
#[serde(rename = "unassigned_flow")]
UnassignedFlow,
#[serde(rename = "unassigned_singlestepflow")]
UnassignedSinglestepflow,
}
impl Default for JobKind {
fn default() -> JobKind {
Self::Script
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "CompletedJob")]
CompletedJob,
}
impl Default for Type {
fn default() -> Type {
Self::CompletedJob
}
}