/**
 * Dusky API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { V1Affinity } from './v1Affinity';
import { V1Container } from './v1Container';
import { V1EphemeralContainer } from './v1EphemeralContainer';
import { V1HostAlias } from './v1HostAlias';
import { V1LocalObjectReference } from './v1LocalObjectReference';
import { V1PodDNSConfig } from './v1PodDNSConfig';
import { V1PodReadinessGate } from './v1PodReadinessGate';
import { V1PodSecurityContext } from './v1PodSecurityContext';
import { V1Toleration } from './v1Toleration';
import { V1TopologySpreadConstraint } from './v1TopologySpreadConstraint';
import { V1Volume } from './v1Volume';

export class V1PodSpec {
    'activeDeadlineSeconds'?: number | null;
    'affinity'?: V1Affinity;
    'automountServiceAccountToken'?: boolean | null;
    'containers'?: Array<V1Container>;
    'dnsConfig'?: V1PodDNSConfig;
    'dnsPolicy'?: string;
    'enableServiceLinks'?: boolean | null;
    'ephemeralContainers'?: Array<V1EphemeralContainer>;
    'hostAliases'?: Array<V1HostAlias>;
    'hostIPC'?: boolean | null;
    'hostNetwork'?: boolean | null;
    'hostPID'?: boolean | null;
    'hostname'?: string;
    'imagePullSecrets'?: Array<V1LocalObjectReference>;
    'initContainers'?: Array<V1Container>;
    'nodeName'?: string;
    'nodeSelector'?: { [key: string]: string; };
    'overhead'?: { [key: string]: string; };
    'preemptionPolicy'?: string;
    'priority'?: number | null;
    'priorityClassName'?: string;
    'readinessGates'?: Array<V1PodReadinessGate>;
    'restartPolicy'?: string;
    'runtimeClassName'?: string;
    'schedulerName'?: string;
    'securityContext'?: V1PodSecurityContext;
    'serviceAccount'?: string;
    'serviceAccountName'?: string;
    'shareProcessNamespace'?: boolean | null;
    'subdomain'?: string;
    'terminationGracePeriodSeconds'?: number | null;
    'tolerations'?: Array<V1Toleration>;
    'topologySpreadConstraints'?: Array<V1TopologySpreadConstraint>;
    'volumes'?: Array<V1Volume>;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "activeDeadlineSeconds",
            "baseName": "activeDeadlineSeconds",
            "type": "number"
        },
        {
            "name": "affinity",
            "baseName": "affinity",
            "type": "V1Affinity"
        },
        {
            "name": "automountServiceAccountToken",
            "baseName": "automountServiceAccountToken",
            "type": "boolean"
        },
        {
            "name": "containers",
            "baseName": "containers",
            "type": "Array<V1Container>"
        },
        {
            "name": "dnsConfig",
            "baseName": "dnsConfig",
            "type": "V1PodDNSConfig"
        },
        {
            "name": "dnsPolicy",
            "baseName": "dnsPolicy",
            "type": "string"
        },
        {
            "name": "enableServiceLinks",
            "baseName": "enableServiceLinks",
            "type": "boolean"
        },
        {
            "name": "ephemeralContainers",
            "baseName": "ephemeralContainers",
            "type": "Array<V1EphemeralContainer>"
        },
        {
            "name": "hostAliases",
            "baseName": "hostAliases",
            "type": "Array<V1HostAlias>"
        },
        {
            "name": "hostIPC",
            "baseName": "hostIPC",
            "type": "boolean"
        },
        {
            "name": "hostNetwork",
            "baseName": "hostNetwork",
            "type": "boolean"
        },
        {
            "name": "hostPID",
            "baseName": "hostPID",
            "type": "boolean"
        },
        {
            "name": "hostname",
            "baseName": "hostname",
            "type": "string"
        },
        {
            "name": "imagePullSecrets",
            "baseName": "imagePullSecrets",
            "type": "Array<V1LocalObjectReference>"
        },
        {
            "name": "initContainers",
            "baseName": "initContainers",
            "type": "Array<V1Container>"
        },
        {
            "name": "nodeName",
            "baseName": "nodeName",
            "type": "string"
        },
        {
            "name": "nodeSelector",
            "baseName": "nodeSelector",
            "type": "{ [key: string]: string; }"
        },
        {
            "name": "overhead",
            "baseName": "overhead",
            "type": "{ [key: string]: string; }"
        },
        {
            "name": "preemptionPolicy",
            "baseName": "preemptionPolicy",
            "type": "string"
        },
        {
            "name": "priority",
            "baseName": "priority",
            "type": "number"
        },
        {
            "name": "priorityClassName",
            "baseName": "priorityClassName",
            "type": "string"
        },
        {
            "name": "readinessGates",
            "baseName": "readinessGates",
            "type": "Array<V1PodReadinessGate>"
        },
        {
            "name": "restartPolicy",
            "baseName": "restartPolicy",
            "type": "string"
        },
        {
            "name": "runtimeClassName",
            "baseName": "runtimeClassName",
            "type": "string"
        },
        {
            "name": "schedulerName",
            "baseName": "schedulerName",
            "type": "string"
        },
        {
            "name": "securityContext",
            "baseName": "securityContext",
            "type": "V1PodSecurityContext"
        },
        {
            "name": "serviceAccount",
            "baseName": "serviceAccount",
            "type": "string"
        },
        {
            "name": "serviceAccountName",
            "baseName": "serviceAccountName",
            "type": "string"
        },
        {
            "name": "shareProcessNamespace",
            "baseName": "shareProcessNamespace",
            "type": "boolean"
        },
        {
            "name": "subdomain",
            "baseName": "subdomain",
            "type": "string"
        },
        {
            "name": "terminationGracePeriodSeconds",
            "baseName": "terminationGracePeriodSeconds",
            "type": "number"
        },
        {
            "name": "tolerations",
            "baseName": "tolerations",
            "type": "Array<V1Toleration>"
        },
        {
            "name": "topologySpreadConstraints",
            "baseName": "topologySpreadConstraints",
            "type": "Array<V1TopologySpreadConstraint>"
        },
        {
            "name": "volumes",
            "baseName": "volumes",
            "type": "Array<V1Volume>"
        }    ];

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

