/*
 * Tapis Workflows API
 *
 * Create and manage pipelines
 *
 * The version of the OpenAPI document: 1.6.0
 * Contact: cicsupport@tacc.utexas.edu
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(
    Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,
)]
pub enum EnumTaskType {
    #[serde(rename = "image_build")]
    #[default]
    ImageBuild,
    #[serde(rename = "application")]
    Application,
    #[serde(rename = "request")]
    Request,
    #[serde(rename = "tapis_job")]
    TapisJob,
    #[serde(rename = "tapis_actor")]
    TapisActor,
    #[serde(rename = "function")]
    Function,
    #[serde(rename = "template")]
    Template,
}

impl std::fmt::Display for EnumTaskType {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::ImageBuild => write!(f, "image_build"),
            Self::Application => write!(f, "application"),
            Self::Request => write!(f, "request"),
            Self::TapisJob => write!(f, "tapis_job"),
            Self::TapisActor => write!(f, "tapis_actor"),
            Self::Function => write!(f, "function"),
            Self::Template => write!(f, "template"),
        }
    }
}
