hatchet-sdk 0.2.8

This is an unofficial Rust SDK for Hatchet, a distributed, fault-tolerant task queue.
Documentation
/*
 * Hatchet API
 *
 * The Hatchet API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 * Generated by: https://openapi-generator.tech
 */

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
    }
}