/*
 * Orvanta API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.2
 * Contact: contact@orvanta.cloud
 * Generated by: https://openapi-generator.tech
 */

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

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct UpdateAppRequest {
    #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
    pub path: Option<String>,
    #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
    pub summary: Option<String>,
    #[serde(rename = "value", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub value: Option<Option<serde_json::Value>>,
    #[serde(rename = "policy", skip_serializing_if = "Option::is_none")]
    pub policy: Option<Box<models::Policy>>,
    #[serde(rename = "deployment_message", skip_serializing_if = "Option::is_none")]
    pub deployment_message: Option<String>,
    #[serde(rename = "custom_path", skip_serializing_if = "Option::is_none")]
    pub custom_path: Option<String>,
    /// When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it.
    #[serde(rename = "preserve_on_behalf_of", skip_serializing_if = "Option::is_none")]
    pub preserve_on_behalf_of: Option<bool>,
    #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
    pub labels: Option<Vec<String>>,
}

impl UpdateAppRequest {
    pub fn new() -> UpdateAppRequest {
        UpdateAppRequest {
            path: None,
            summary: None,
            value: None,
            policy: None,
            deployment_message: None,
            custom_path: None,
            preserve_on_behalf_of: None,
            labels: None,
        }
    }
}

