/**
 * Argo Workflows API
 * Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/
 *
 * OpenAPI spec version: VERSION
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { IoArgoprojWorkflowV1alpha1ManifestFrom } from '../models/IoArgoprojWorkflowV1alpha1ManifestFrom';
import { HttpFile } from '../http/http';

/**
* ResourceTemplate is a template subtype to manipulate kubernetes resources
*/
export class IoArgoprojWorkflowV1alpha1ResourceTemplate {
    /**
    * Action is the action to perform to the resource. Must be one of: get, create, apply, delete, replace, patch
    */
    'action': string;
    /**
    * FailureCondition is a label selector expression which describes the conditions of the k8s resource in which the step was considered failed
    */
    'failureCondition'?: string;
    /**
    * Flags is a set of additional options passed to kubectl before submitting a resource I.e. to disable resource validation: flags: [  \"--validate=false\"  # disable resource validation ]
    */
    'flags'?: Array<string>;
    /**
    * Manifest contains the kubernetes manifest
    */
    'manifest'?: string;
    'manifestFrom'?: IoArgoprojWorkflowV1alpha1ManifestFrom;
    /**
    * MergeStrategy is the strategy used to merge a patch. It defaults to \"strategic\" Must be one of: strategic, merge, json
    */
    'mergeStrategy'?: string;
    /**
    * SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource.
    */
    'setOwnerReference'?: boolean;
    /**
    * SuccessCondition is a label selector expression which describes the conditions of the k8s resource in which it is acceptable to proceed to the following step
    */
    'successCondition'?: string;

    static readonly discriminator: string | undefined = undefined;

    static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
        {
            "name": "action",
            "baseName": "action",
            "type": "string",
            "format": ""
        },
        {
            "name": "failureCondition",
            "baseName": "failureCondition",
            "type": "string",
            "format": ""
        },
        {
            "name": "flags",
            "baseName": "flags",
            "type": "Array<string>",
            "format": ""
        },
        {
            "name": "manifest",
            "baseName": "manifest",
            "type": "string",
            "format": ""
        },
        {
            "name": "manifestFrom",
            "baseName": "manifestFrom",
            "type": "IoArgoprojWorkflowV1alpha1ManifestFrom",
            "format": ""
        },
        {
            "name": "mergeStrategy",
            "baseName": "mergeStrategy",
            "type": "string",
            "format": ""
        },
        {
            "name": "setOwnerReference",
            "baseName": "setOwnerReference",
            "type": "boolean",
            "format": ""
        },
        {
            "name": "successCondition",
            "baseName": "successCondition",
            "type": "string",
            "format": ""
        }    ];

    static getAttributeTypeMap() {
        return IoArgoprojWorkflowV1alpha1ResourceTemplate.attributeTypeMap;
    }

    public constructor() {
    }
}

