/*
 * 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, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PipelineExecutionProfile {
    #[serde(rename = "invocation_mode", skip_serializing_if = "Option::is_none")]
    pub invocation_mode: Option<models::EnumInvocationMode>,
    #[serde(rename = "max_retries", skip_serializing_if = "Option::is_none")]
    pub max_retries: Option<i32>,
    #[serde(rename = "max_exec_time", skip_serializing_if = "Option::is_none")]
    pub max_exec_time: Option<i32>,
    #[serde(rename = "retry_policy", skip_serializing_if = "Option::is_none")]
    pub retry_policy: Option<models::EnumRetryPolicy>,
    #[serde(
        rename = "duplicate_submission_policy",
        skip_serializing_if = "Option::is_none"
    )]
    pub duplicate_submission_policy: Option<models::EnumDuplicateSubmissionPolicy>,
}

impl PipelineExecutionProfile {
    pub fn new() -> PipelineExecutionProfile {
        PipelineExecutionProfile {
            invocation_mode: None,
            max_retries: None,
            max_exec_time: None,
            retry_policy: None,
            duplicate_submission_policy: None,
        }
    }
}
