// @ts-nocheck
/**
 * 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/
 *
 * The version of the OpenAPI document: 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 { RequestFile } from './models';
import { IoArgoprojEventsV1alpha1AWSLambdaTrigger } from './ioArgoprojEventsV1alpha1AWSLambdaTrigger';
import { IoArgoprojEventsV1alpha1ArgoWorkflowTrigger } from './ioArgoprojEventsV1alpha1ArgoWorkflowTrigger';
import { IoArgoprojEventsV1alpha1AzureEventHubsTrigger } from './ioArgoprojEventsV1alpha1AzureEventHubsTrigger';
import { IoArgoprojEventsV1alpha1ConditionsResetCriteria } from './ioArgoprojEventsV1alpha1ConditionsResetCriteria';
import { IoArgoprojEventsV1alpha1CustomTrigger } from './ioArgoprojEventsV1alpha1CustomTrigger';
import { IoArgoprojEventsV1alpha1HTTPTrigger } from './ioArgoprojEventsV1alpha1HTTPTrigger';
import { IoArgoprojEventsV1alpha1KafkaTrigger } from './ioArgoprojEventsV1alpha1KafkaTrigger';
import { IoArgoprojEventsV1alpha1LogTrigger } from './ioArgoprojEventsV1alpha1LogTrigger';
import { IoArgoprojEventsV1alpha1NATSTrigger } from './ioArgoprojEventsV1alpha1NATSTrigger';
import { IoArgoprojEventsV1alpha1OpenWhiskTrigger } from './ioArgoprojEventsV1alpha1OpenWhiskTrigger';
import { IoArgoprojEventsV1alpha1PulsarTrigger } from './ioArgoprojEventsV1alpha1PulsarTrigger';
import { IoArgoprojEventsV1alpha1SlackTrigger } from './ioArgoprojEventsV1alpha1SlackTrigger';
import { IoArgoprojEventsV1alpha1StandardK8STrigger } from './ioArgoprojEventsV1alpha1StandardK8STrigger';

/**
* 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 discriminator: string | undefined = undefined;

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

    static getAttributeTypeMap() {
        return IoArgoprojEventsV1alpha1TriggerTemplate.attributeTypeMap;
    }
}

