use crate::clients::rest::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WorkflowRunCreate200Response {
#[serde(rename = "metadata")]
pub metadata: Box<models::V1TaskGet200ResponseMetadata>,
#[serde(rename = "tenantId")]
pub tenant_id: String,
#[serde(rename = "workflowVersionId")]
pub workflow_version_id: String,
#[serde(rename = "workflowVersion", skip_serializing_if = "Option::is_none")]
pub workflow_version: Option<Box<models::WorkflowVersionGet200Response>>,
#[serde(rename = "status")]
pub status: Status,
#[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(rename = "jobRuns", skip_serializing_if = "Option::is_none")]
pub job_runs: Option<Vec<models::WorkflowRunCreate200ResponseJobRunsInner>>,
#[serde(rename = "triggeredBy")]
pub triggered_by: Box<models::WorkflowRunCreate200ResponseJobRunsInnerWorkflowRunTriggeredBy>,
#[serde(rename = "input", skip_serializing_if = "Option::is_none")]
pub input: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "error", skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
#[serde(rename = "startedAt", skip_serializing_if = "Option::is_none")]
pub started_at: Option<String>,
#[serde(rename = "finishedAt", skip_serializing_if = "Option::is_none")]
pub finished_at: Option<String>,
#[serde(rename = "duration", skip_serializing_if = "Option::is_none")]
pub duration: Option<i32>,
#[serde(rename = "parentId", skip_serializing_if = "Option::is_none")]
pub parent_id: Option<uuid::Uuid>,
#[serde(rename = "parentStepRunId", skip_serializing_if = "Option::is_none")]
pub parent_task_run_external_id: Option<uuid::Uuid>,
#[serde(rename = "additionalMetadata", skip_serializing_if = "Option::is_none")]
pub additional_metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
}
impl WorkflowRunCreate200Response {
pub fn new(
metadata: models::V1TaskGet200ResponseMetadata,
tenant_id: String,
workflow_version_id: String,
status: Status,
triggered_by: models::WorkflowRunCreate200ResponseJobRunsInnerWorkflowRunTriggeredBy,
) -> WorkflowRunCreate200Response {
WorkflowRunCreate200Response {
metadata: Box::new(metadata),
tenant_id,
workflow_version_id,
workflow_version: None,
status,
display_name: None,
job_runs: None,
triggered_by: Box::new(triggered_by),
input: None,
error: None,
started_at: None,
finished_at: None,
duration: None,
parent_id: None,
parent_task_run_external_id: None,
additional_metadata: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "PENDING")]
Pending,
#[serde(rename = "RUNNING")]
Running,
#[serde(rename = "SUCCEEDED")]
Succeeded,
#[serde(rename = "FAILED")]
Failed,
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "QUEUED")]
Queued,
#[serde(rename = "BACKOFF")]
Backoff,
}
impl Default for Status {
fn default() -> Status {
Self::Pending
}
}