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 StepRunGet200Response {
    #[serde(rename = "metadata")]
    pub metadata: Box<models::V1TaskGet200ResponseMetadata>,
    #[serde(rename = "tenantId")]
    pub tenant_id: String,
    #[serde(rename = "jobRunId")]
    pub job_run_id: String,
    #[serde(rename = "jobRun", skip_serializing_if = "Option::is_none")]
    pub job_run: Option<Box<models::WorkflowRunCreate200ResponseJobRunsInner>>,
    #[serde(rename = "stepId")]
    pub step_id: String,
    #[serde(rename = "step", skip_serializing_if = "Option::is_none")]
    pub step: Option<Box<models::WorkflowList200ResponseRowsInnerJobsInnerStepsInner>>,
    #[serde(
        rename = "childWorkflowsCount",
        skip_serializing_if = "Option::is_none"
    )]
    pub child_workflows_count: Option<i32>,
    #[serde(rename = "parents", skip_serializing_if = "Option::is_none")]
    pub parents: Option<Vec<String>>,
    #[serde(rename = "childWorkflowRuns", skip_serializing_if = "Option::is_none")]
    pub child_workflow_runs: Option<Vec<String>>,
    #[serde(rename = "workerId", skip_serializing_if = "Option::is_none")]
    pub worker_id: Option<String>,
    #[serde(rename = "input", skip_serializing_if = "Option::is_none")]
    pub input: Option<String>,
    #[serde(rename = "output", skip_serializing_if = "Option::is_none")]
    pub output: Option<String>,
    #[serde(rename = "status")]
    pub status: Status,
    #[serde(rename = "requeueAfter", skip_serializing_if = "Option::is_none")]
    pub requeue_after: Option<String>,
    #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
    pub result: Option<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 = "startedAtEpoch", skip_serializing_if = "Option::is_none")]
    pub started_at_epoch: Option<i32>,
    #[serde(rename = "finishedAt", skip_serializing_if = "Option::is_none")]
    pub finished_at: Option<String>,
    #[serde(rename = "finishedAtEpoch", skip_serializing_if = "Option::is_none")]
    pub finished_at_epoch: Option<i32>,
    #[serde(rename = "timeoutAt", skip_serializing_if = "Option::is_none")]
    pub timeout_at: Option<String>,
    #[serde(rename = "timeoutAtEpoch", skip_serializing_if = "Option::is_none")]
    pub timeout_at_epoch: Option<i32>,
    #[serde(rename = "cancelledAt", skip_serializing_if = "Option::is_none")]
    pub cancelled_at: Option<String>,
    #[serde(rename = "cancelledAtEpoch", skip_serializing_if = "Option::is_none")]
    pub cancelled_at_epoch: Option<i32>,
    #[serde(rename = "cancelledReason", skip_serializing_if = "Option::is_none")]
    pub cancelled_reason: Option<String>,
    #[serde(rename = "cancelledError", skip_serializing_if = "Option::is_none")]
    pub cancelled_error: Option<String>,
}

impl StepRunGet200Response {
    pub fn new(
        metadata: models::V1TaskGet200ResponseMetadata,
        tenant_id: String,
        job_run_id: String,
        step_id: String,
        status: Status,
    ) -> StepRunGet200Response {
        StepRunGet200Response {
            metadata: Box::new(metadata),
            tenant_id,
            job_run_id,
            job_run: None,
            step_id,
            step: None,
            child_workflows_count: None,
            parents: None,
            child_workflow_runs: None,
            worker_id: None,
            input: None,
            output: None,
            status,
            requeue_after: None,
            result: None,
            error: None,
            started_at: None,
            started_at_epoch: None,
            finished_at: None,
            finished_at_epoch: None,
            timeout_at: None,
            timeout_at_epoch: None,
            cancelled_at: None,
            cancelled_at_epoch: None,
            cancelled_reason: None,
            cancelled_error: None,
        }
    }
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
    #[serde(rename = "PENDING")]
    Pending,
    #[serde(rename = "PENDING_ASSIGNMENT")]
    PendingAssignment,
    #[serde(rename = "ASSIGNED")]
    Assigned,
    #[serde(rename = "RUNNING")]
    Running,
    #[serde(rename = "SUCCEEDED")]
    Succeeded,
    #[serde(rename = "FAILED")]
    Failed,
    #[serde(rename = "CANCELLED")]
    Cancelled,
    #[serde(rename = "CANCELLING")]
    Cancelling,
    #[serde(rename = "BACKOFF")]
    Backoff,
}

impl Default for Status {
    fn default() -> Status {
        Self::Pending
    }
}