/**
 * 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 { IoArgoprojEventsV1alpha1AMQPEventSource } from '../models/IoArgoprojEventsV1alpha1AMQPEventSource';
import { IoArgoprojEventsV1alpha1AzureEventsHubEventSource } from '../models/IoArgoprojEventsV1alpha1AzureEventsHubEventSource';
import { IoArgoprojEventsV1alpha1BitbucketEventSource } from '../models/IoArgoprojEventsV1alpha1BitbucketEventSource';
import { IoArgoprojEventsV1alpha1BitbucketServerEventSource } from '../models/IoArgoprojEventsV1alpha1BitbucketServerEventSource';
import { IoArgoprojEventsV1alpha1CalendarEventSource } from '../models/IoArgoprojEventsV1alpha1CalendarEventSource';
import { IoArgoprojEventsV1alpha1EmitterEventSource } from '../models/IoArgoprojEventsV1alpha1EmitterEventSource';
import { IoArgoprojEventsV1alpha1FileEventSource } from '../models/IoArgoprojEventsV1alpha1FileEventSource';
import { IoArgoprojEventsV1alpha1GenericEventSource } from '../models/IoArgoprojEventsV1alpha1GenericEventSource';
import { IoArgoprojEventsV1alpha1GithubEventSource } from '../models/IoArgoprojEventsV1alpha1GithubEventSource';
import { IoArgoprojEventsV1alpha1GitlabEventSource } from '../models/IoArgoprojEventsV1alpha1GitlabEventSource';
import { IoArgoprojEventsV1alpha1HDFSEventSource } from '../models/IoArgoprojEventsV1alpha1HDFSEventSource';
import { IoArgoprojEventsV1alpha1KafkaEventSource } from '../models/IoArgoprojEventsV1alpha1KafkaEventSource';
import { IoArgoprojEventsV1alpha1MQTTEventSource } from '../models/IoArgoprojEventsV1alpha1MQTTEventSource';
import { IoArgoprojEventsV1alpha1NATSEventsSource } from '../models/IoArgoprojEventsV1alpha1NATSEventsSource';
import { IoArgoprojEventsV1alpha1NSQEventSource } from '../models/IoArgoprojEventsV1alpha1NSQEventSource';
import { IoArgoprojEventsV1alpha1PubSubEventSource } from '../models/IoArgoprojEventsV1alpha1PubSubEventSource';
import { IoArgoprojEventsV1alpha1PulsarEventSource } from '../models/IoArgoprojEventsV1alpha1PulsarEventSource';
import { IoArgoprojEventsV1alpha1RedisEventSource } from '../models/IoArgoprojEventsV1alpha1RedisEventSource';
import { IoArgoprojEventsV1alpha1RedisStreamEventSource } from '../models/IoArgoprojEventsV1alpha1RedisStreamEventSource';
import { IoArgoprojEventsV1alpha1ResourceEventSource } from '../models/IoArgoprojEventsV1alpha1ResourceEventSource';
import { IoArgoprojEventsV1alpha1S3Artifact } from '../models/IoArgoprojEventsV1alpha1S3Artifact';
import { IoArgoprojEventsV1alpha1SNSEventSource } from '../models/IoArgoprojEventsV1alpha1SNSEventSource';
import { IoArgoprojEventsV1alpha1SQSEventSource } from '../models/IoArgoprojEventsV1alpha1SQSEventSource';
import { IoArgoprojEventsV1alpha1Service } from '../models/IoArgoprojEventsV1alpha1Service';
import { IoArgoprojEventsV1alpha1SlackEventSource } from '../models/IoArgoprojEventsV1alpha1SlackEventSource';
import { IoArgoprojEventsV1alpha1StorageGridEventSource } from '../models/IoArgoprojEventsV1alpha1StorageGridEventSource';
import { IoArgoprojEventsV1alpha1StripeEventSource } from '../models/IoArgoprojEventsV1alpha1StripeEventSource';
import { IoArgoprojEventsV1alpha1Template } from '../models/IoArgoprojEventsV1alpha1Template';
import { IoArgoprojEventsV1alpha1WebhookEventSource } from '../models/IoArgoprojEventsV1alpha1WebhookEventSource';
import { HttpFile } from '../http/http';

export class IoArgoprojEventsV1alpha1EventSourceSpec {
    'amqp'?: { [key: string]: IoArgoprojEventsV1alpha1AMQPEventSource; };
    'azureEventsHub'?: { [key: string]: IoArgoprojEventsV1alpha1AzureEventsHubEventSource; };
    'bitbucket'?: { [key: string]: IoArgoprojEventsV1alpha1BitbucketEventSource; };
    'bitbucketserver'?: { [key: string]: IoArgoprojEventsV1alpha1BitbucketServerEventSource; };
    'calendar'?: { [key: string]: IoArgoprojEventsV1alpha1CalendarEventSource; };
    'emitter'?: { [key: string]: IoArgoprojEventsV1alpha1EmitterEventSource; };
    'eventBusName'?: string;
    'file'?: { [key: string]: IoArgoprojEventsV1alpha1FileEventSource; };
    'generic'?: { [key: string]: IoArgoprojEventsV1alpha1GenericEventSource; };
    'github'?: { [key: string]: IoArgoprojEventsV1alpha1GithubEventSource; };
    'gitlab'?: { [key: string]: IoArgoprojEventsV1alpha1GitlabEventSource; };
    'hdfs'?: { [key: string]: IoArgoprojEventsV1alpha1HDFSEventSource; };
    'kafka'?: { [key: string]: IoArgoprojEventsV1alpha1KafkaEventSource; };
    'minio'?: { [key: string]: IoArgoprojEventsV1alpha1S3Artifact; };
    'mqtt'?: { [key: string]: IoArgoprojEventsV1alpha1MQTTEventSource; };
    'nats'?: { [key: string]: IoArgoprojEventsV1alpha1NATSEventsSource; };
    'nsq'?: { [key: string]: IoArgoprojEventsV1alpha1NSQEventSource; };
    'pubSub'?: { [key: string]: IoArgoprojEventsV1alpha1PubSubEventSource; };
    'pulsar'?: { [key: string]: IoArgoprojEventsV1alpha1PulsarEventSource; };
    'redis'?: { [key: string]: IoArgoprojEventsV1alpha1RedisEventSource; };
    'redisStream'?: { [key: string]: IoArgoprojEventsV1alpha1RedisStreamEventSource; };
    'replicas'?: number;
    'resource'?: { [key: string]: IoArgoprojEventsV1alpha1ResourceEventSource; };
    'service'?: IoArgoprojEventsV1alpha1Service;
    'slack'?: { [key: string]: IoArgoprojEventsV1alpha1SlackEventSource; };
    'sns'?: { [key: string]: IoArgoprojEventsV1alpha1SNSEventSource; };
    'sqs'?: { [key: string]: IoArgoprojEventsV1alpha1SQSEventSource; };
    'storageGrid'?: { [key: string]: IoArgoprojEventsV1alpha1StorageGridEventSource; };
    'stripe'?: { [key: string]: IoArgoprojEventsV1alpha1StripeEventSource; };
    'template'?: IoArgoprojEventsV1alpha1Template;
    'webhook'?: { [key: string]: IoArgoprojEventsV1alpha1WebhookEventSource; };

    static readonly discriminator: string | undefined = undefined;

    static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
        {
            "name": "amqp",
            "baseName": "amqp",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1AMQPEventSource; }",
            "format": ""
        },
        {
            "name": "azureEventsHub",
            "baseName": "azureEventsHub",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1AzureEventsHubEventSource; }",
            "format": ""
        },
        {
            "name": "bitbucket",
            "baseName": "bitbucket",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1BitbucketEventSource; }",
            "format": ""
        },
        {
            "name": "bitbucketserver",
            "baseName": "bitbucketserver",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1BitbucketServerEventSource; }",
            "format": ""
        },
        {
            "name": "calendar",
            "baseName": "calendar",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1CalendarEventSource; }",
            "format": ""
        },
        {
            "name": "emitter",
            "baseName": "emitter",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1EmitterEventSource; }",
            "format": ""
        },
        {
            "name": "eventBusName",
            "baseName": "eventBusName",
            "type": "string",
            "format": ""
        },
        {
            "name": "file",
            "baseName": "file",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1FileEventSource; }",
            "format": ""
        },
        {
            "name": "generic",
            "baseName": "generic",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1GenericEventSource; }",
            "format": ""
        },
        {
            "name": "github",
            "baseName": "github",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1GithubEventSource; }",
            "format": ""
        },
        {
            "name": "gitlab",
            "baseName": "gitlab",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1GitlabEventSource; }",
            "format": ""
        },
        {
            "name": "hdfs",
            "baseName": "hdfs",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1HDFSEventSource; }",
            "format": ""
        },
        {
            "name": "kafka",
            "baseName": "kafka",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1KafkaEventSource; }",
            "format": ""
        },
        {
            "name": "minio",
            "baseName": "minio",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1S3Artifact; }",
            "format": ""
        },
        {
            "name": "mqtt",
            "baseName": "mqtt",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1MQTTEventSource; }",
            "format": ""
        },
        {
            "name": "nats",
            "baseName": "nats",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1NATSEventsSource; }",
            "format": ""
        },
        {
            "name": "nsq",
            "baseName": "nsq",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1NSQEventSource; }",
            "format": ""
        },
        {
            "name": "pubSub",
            "baseName": "pubSub",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1PubSubEventSource; }",
            "format": ""
        },
        {
            "name": "pulsar",
            "baseName": "pulsar",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1PulsarEventSource; }",
            "format": ""
        },
        {
            "name": "redis",
            "baseName": "redis",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1RedisEventSource; }",
            "format": ""
        },
        {
            "name": "redisStream",
            "baseName": "redisStream",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1RedisStreamEventSource; }",
            "format": ""
        },
        {
            "name": "replicas",
            "baseName": "replicas",
            "type": "number",
            "format": ""
        },
        {
            "name": "resource",
            "baseName": "resource",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1ResourceEventSource; }",
            "format": ""
        },
        {
            "name": "service",
            "baseName": "service",
            "type": "IoArgoprojEventsV1alpha1Service",
            "format": ""
        },
        {
            "name": "slack",
            "baseName": "slack",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1SlackEventSource; }",
            "format": ""
        },
        {
            "name": "sns",
            "baseName": "sns",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1SNSEventSource; }",
            "format": ""
        },
        {
            "name": "sqs",
            "baseName": "sqs",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1SQSEventSource; }",
            "format": ""
        },
        {
            "name": "storageGrid",
            "baseName": "storageGrid",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1StorageGridEventSource; }",
            "format": ""
        },
        {
            "name": "stripe",
            "baseName": "stripe",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1StripeEventSource; }",
            "format": ""
        },
        {
            "name": "template",
            "baseName": "template",
            "type": "IoArgoprojEventsV1alpha1Template",
            "format": ""
        },
        {
            "name": "webhook",
            "baseName": "webhook",
            "type": "{ [key: string]: IoArgoprojEventsV1alpha1WebhookEventSource; }",
            "format": ""
        }    ];

    static getAttributeTypeMap() {
        return IoArgoprojEventsV1alpha1EventSourceSpec.attributeTypeMap;
    }

    public constructor() {
    }
}

