/*
 * 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 EnumRuntimeEnvironment {
    #[serde(rename = "tapis/workflows-python-singularity:0.1.0")]
    #[default]
    TapisSlashWorkflowsPythonSingularityColon010,
    #[serde(rename = "python:latest")]
    PythonColonLatest,
    #[serde(rename = "python:slim")]
    PythonColonSlim,
    #[serde(rename = "python:3.12")]
    PythonColon312,
    #[serde(rename = "python:3.12-slim")]
    PythonColon312Slim,
    #[serde(rename = "python:3.11")]
    PythonColon311,
    #[serde(rename = "python:3.11-slim")]
    PythonColon311Slim,
    #[serde(rename = "python:3.10")]
    PythonColon310,
    #[serde(rename = "python:3.10-slim")]
    PythonColon310Slim,
    #[serde(rename = "python:3.9")]
    PythonColon39,
    #[serde(rename = "python:3.9-slim")]
    PythonColon39Slim,
    #[serde(rename = "python:3.8")]
    PythonColon38,
    #[serde(rename = "python:3.8-slim")]
    PythonColon38Slim,
    #[serde(rename = "python:2.7.18")]
    PythonColon2718,
    #[serde(rename = "python:2.7.18-slim")]
    PythonColon2718Slim,
    #[serde(rename = "tensorflow/tensorflow:latest")]
    TensorflowSlashTensorflowColonLatest,
    #[serde(rename = "tensorflow/tensorflow:latest-gpu")]
    TensorflowSlashTensorflowColonLatestGpu,
    #[serde(rename = "tensorflow/tensorflow:2.12.0")]
    TensorflowSlashTensorflowColon2120,
    #[serde(rename = "tensorflow/tensorflow:2.12.0-gpu")]
    TensorflowSlashTensorflowColon2120Gpu,
    #[serde(rename = "pytorch/pytorch:latest")]
    PytorchSlashPytorchColonLatest,
    #[serde(rename = "huggingface/transformers-pytorch-gpu:latest")]
    HuggingfaceSlashTransformersPytorchGpuColonLatest,
    #[serde(rename = "huggingface/transformers-pytorch-gpu:4.29.2")]
    HuggingfaceSlashTransformersPytorchGpuColon4292,
    #[serde(rename = "ghcr.io/tobiashi26/pygeoflood-container:main")]
    GhcrIoSlashTobiashi26SlashPygeofloodContainerColonMain,
}

impl std::fmt::Display for EnumRuntimeEnvironment {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::TapisSlashWorkflowsPythonSingularityColon010 => {
                write!(f, "tapis/workflows-python-singularity:0.1.0")
            }
            Self::PythonColonLatest => write!(f, "python:latest"),
            Self::PythonColonSlim => write!(f, "python:slim"),
            Self::PythonColon312 => write!(f, "python:3.12"),
            Self::PythonColon312Slim => write!(f, "python:3.12-slim"),
            Self::PythonColon311 => write!(f, "python:3.11"),
            Self::PythonColon311Slim => write!(f, "python:3.11-slim"),
            Self::PythonColon310 => write!(f, "python:3.10"),
            Self::PythonColon310Slim => write!(f, "python:3.10-slim"),
            Self::PythonColon39 => write!(f, "python:3.9"),
            Self::PythonColon39Slim => write!(f, "python:3.9-slim"),
            Self::PythonColon38 => write!(f, "python:3.8"),
            Self::PythonColon38Slim => write!(f, "python:3.8-slim"),
            Self::PythonColon2718 => write!(f, "python:2.7.18"),
            Self::PythonColon2718Slim => write!(f, "python:2.7.18-slim"),
            Self::TensorflowSlashTensorflowColonLatest => write!(f, "tensorflow/tensorflow:latest"),
            Self::TensorflowSlashTensorflowColonLatestGpu => {
                write!(f, "tensorflow/tensorflow:latest-gpu")
            }
            Self::TensorflowSlashTensorflowColon2120 => write!(f, "tensorflow/tensorflow:2.12.0"),
            Self::TensorflowSlashTensorflowColon2120Gpu => {
                write!(f, "tensorflow/tensorflow:2.12.0-gpu")
            }
            Self::PytorchSlashPytorchColonLatest => write!(f, "pytorch/pytorch:latest"),
            Self::HuggingfaceSlashTransformersPytorchGpuColonLatest => {
                write!(f, "huggingface/transformers-pytorch-gpu:latest")
            }
            Self::HuggingfaceSlashTransformersPytorchGpuColon4292 => {
                write!(f, "huggingface/transformers-pytorch-gpu:4.29.2")
            }
            Self::GhcrIoSlashTobiashi26SlashPygeofloodContainerColonMain => {
                write!(f, "ghcr.io/tobiashi26/pygeoflood-container:main")
            }
        }
    }
}
