/*
 * Tapis Applications API
 *
 * The Tapis Applications API provides for management of Tapis applications including permissions.
 *
 * The version of the OpenAPI document: 25Q4.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 ReqPatchApp {
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
    pub runtime: Option<models::RuntimeEnum>,
    #[serde(rename = "runtimeVersion", skip_serializing_if = "Option::is_none")]
    pub runtime_version: Option<String>,
    #[serde(rename = "runtimeOptions", skip_serializing_if = "Option::is_none")]
    pub runtime_options: Option<Vec<models::RuntimeOptionEnum>>,
    #[serde(rename = "containerImage", skip_serializing_if = "Option::is_none")]
    pub container_image: Option<String>,
    #[serde(rename = "jobType", skip_serializing_if = "Option::is_none")]
    pub job_type: Option<models::JobTypeEnum>,
    #[serde(rename = "maxJobs", skip_serializing_if = "Option::is_none")]
    pub max_jobs: Option<i32>,
    #[serde(rename = "maxJobsPerUser", skip_serializing_if = "Option::is_none")]
    pub max_jobs_per_user: Option<i32>,
    #[serde(rename = "strictFileInputs", skip_serializing_if = "Option::is_none")]
    pub strict_file_inputs: Option<bool>,
    #[serde(rename = "jobAttributes", skip_serializing_if = "Option::is_none")]
    pub job_attributes: Option<Box<models::JobAttributes>>,
    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
    pub tags: Option<Vec<String>>,
    #[serde(rename = "notes", skip_serializing_if = "Option::is_none")]
    pub notes: Option<serde_json::Value>,
}

impl ReqPatchApp {
    pub fn new() -> ReqPatchApp {
        ReqPatchApp {
            description: None,
            runtime: None,
            runtime_version: None,
            runtime_options: None,
            container_image: None,
            job_type: None,
            max_jobs: None,
            max_jobs_per_user: None,
            strict_file_inputs: None,
            job_attributes: None,
            tags: None,
            notes: None,
        }
    }
}
