/**
 * 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 { IoArgoprojEventsV1alpha1AWSLambdaTrigger } from '../models/IoArgoprojEventsV1alpha1AWSLambdaTrigger';
import { IoArgoprojEventsV1alpha1ArgoWorkflowTrigger } from '../models/IoArgoprojEventsV1alpha1ArgoWorkflowTrigger';
import { IoArgoprojEventsV1alpha1AzureEventHubsTrigger } from '../models/IoArgoprojEventsV1alpha1AzureEventHubsTrigger';
import { IoArgoprojEventsV1alpha1ConditionsResetCriteria } from '../models/IoArgoprojEventsV1alpha1ConditionsResetCriteria';
import { IoArgoprojEventsV1alpha1CustomTrigger } from '../models/IoArgoprojEventsV1alpha1CustomTrigger';
import { IoArgoprojEventsV1alpha1HTTPTrigger } from '../models/IoArgoprojEventsV1alpha1HTTPTrigger';
import { IoArgoprojEventsV1alpha1KafkaTrigger } from '../models/IoArgoprojEventsV1alpha1KafkaTrigger';
import { IoArgoprojEventsV1alpha1LogTrigger } from '../models/IoArgoprojEventsV1alpha1LogTrigger';
import { IoArgoprojEventsV1alpha1NATSTrigger } from '../models/IoArgoprojEventsV1alpha1NATSTrigger';
import { IoArgoprojEventsV1alpha1OpenWhiskTrigger } from '../models/IoArgoprojEventsV1alpha1OpenWhiskTrigger';
import { IoArgoprojEventsV1alpha1PulsarTrigger } from '../models/IoArgoprojEventsV1alpha1PulsarTrigger';
import { IoArgoprojEventsV1alpha1SlackTrigger } from '../models/IoArgoprojEventsV1alpha1SlackTrigger';
import { IoArgoprojEventsV1alpha1StandardK8STrigger } from '../models/IoArgoprojEventsV1alpha1StandardK8STrigger';
import { HttpFile } from '../http/http';

/**
* TriggerTemplate is the template that describes trigger specification.
*/
export class IoArgoprojEventsV1alpha1TriggerTemplate {
    'argoWorkflow'?: IoArgoprojEventsV1alpha1ArgoWorkflowTrigger;
    'awsLambda'?: IoArgoprojEventsV1alpha1AWSLambdaTrigger;
    'azureEventHubs'?: IoArgoprojEventsV1alpha1AzureEventHubsTrigger;
    'conditions'?: string;
    'conditionsReset'?: Array<IoArgoprojEventsV1alpha1ConditionsResetCriteria>;
    'custom'?: IoArgoprojEventsV1alpha1CustomTrigger;
    'http'?: IoArgoprojEventsV1alpha1HTTPTrigger;
    'k8s'?: IoArgoprojEventsV1alpha1StandardK8STrigger;
    'kafka'?: IoArgoprojEventsV1alpha1KafkaTrigger;
    'log'?: IoArgoprojEventsV1alpha1LogTrigger;
    /**
    * Name is a unique name of the action to take.
    */
    'name'?: string;
    'nats'?: IoArgoprojEventsV1alpha1NATSTrigger;
    'openWhisk'?: IoArgoprojEventsV1alpha1OpenWhiskTrigger;
    'pulsar'?: IoArgoprojEventsV1alpha1PulsarTrigger;
    'slack'?: IoArgoprojEventsV1alpha1SlackTrigger;

    static readonly discriminator: string | undefined = undefined;

    static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
        {
            "name": "argoWorkflow",
            "baseName": "argoWorkflow",
            "type": "IoArgoprojEventsV1alpha1ArgoWorkflowTrigger",
            "format": ""
        },
        {
            "name": "awsLambda",
            "baseName": "awsLambda",
            "type": "IoArgoprojEventsV1alpha1AWSLambdaTrigger",
            "format": ""
        },
        {
            "name": "azureEventHubs",
            "baseName": "azureEventHubs",
            "type": "IoArgoprojEventsV1alpha1AzureEventHubsTrigger",
            "format": ""
        },
        {
            "name": "conditions",
            "baseName": "conditions",
            "type": "string",
            "format": ""
        },
        {
            "name": "conditionsReset",
            "baseName": "conditionsReset",
            "type": "Array<IoArgoprojEventsV1alpha1ConditionsResetCriteria>",
            "format": ""
        },
        {
            "name": "custom",
            "baseName": "custom",
            "type": "IoArgoprojEventsV1alpha1CustomTrigger",
            "format": ""
        },
        {
            "name": "http",
            "baseName": "http",
            "type": "IoArgoprojEventsV1alpha1HTTPTrigger",
            "format": ""
        },
        {
            "name": "k8s",
            "baseName": "k8s",
            "type": "IoArgoprojEventsV1alpha1StandardK8STrigger",
            "format": ""
        },
        {
            "name": "kafka",
            "baseName": "kafka",
            "type": "IoArgoprojEventsV1alpha1KafkaTrigger",
            "format": ""
        },
        {
            "name": "log",
            "baseName": "log",
            "type": "IoArgoprojEventsV1alpha1LogTrigger",
            "format": ""
        },
        {
            "name": "name",
            "baseName": "name",
            "type": "string",
            "format": ""
        },
        {
            "name": "nats",
            "baseName": "nats",
            "type": "IoArgoprojEventsV1alpha1NATSTrigger",
            "format": ""
        },
        {
            "name": "openWhisk",
            "baseName": "openWhisk",
            "type": "IoArgoprojEventsV1alpha1OpenWhiskTrigger",
            "format": ""
        },
        {
            "name": "pulsar",
            "baseName": "pulsar",
            "type": "IoArgoprojEventsV1alpha1PulsarTrigger",
            "format": ""
        },
        {
            "name": "slack",
            "baseName": "slack",
            "type": "IoArgoprojEventsV1alpha1SlackTrigger",
            "format": ""
        }    ];

    static getAttributeTypeMap() {
        return IoArgoprojEventsV1alpha1TriggerTemplate.attributeTypeMap;
    }

    public constructor() {
    }
}

