Documentation - v0.0.0
    Preparing search index...

    Hierarchy

    • Chart
      • CrisisCleanupChart
    Index

    Constructors

    Properties

    adminWebsocket: AdminWebSocket
    apiChart: Chart
    apiConfig: ApiConfig
    asgi: ApiASGI
    celeryBeat: CeleryBeat
    celeryChart: Chart
    celeryWorkers: CeleryWorker[]
    configChart: Chart
    ingress: Ingress
    namespace?: string

    The default namespace for all objects in this chart.

    namespaceChart: Chart
    node: Node

    The tree node.

    sync?: DatabaseSync
    syncChart?: Chart
    wsgi: ApiWSGI
    backendDefaultProps: ApiConstructConfig
    defaultProps: Partial<CrisisCleanupChartProps>

    Accessors

    • get apiObjects(): ApiObject[]

      Returns all the included API objects.

      Returns ApiObject[]

    • get labels(): { [name: string]: string }

      Labels applied to all resources in this chart.

      This is an immutable copy.

      Returns { [name: string]: string }

    Methods

    • Create a dependency between this Chart and other constructs. These can be other ApiObjects, Charts, or custom.

      Parameters

      • ...dependencies: IConstruct[]

        the dependencies to add.

      Returns void

    • Generates a app-unique name for an object given it's construct node path.

      Different resource types may have different constraints on names (metadata.name). The previous version of the name generator was compatible with DNS_SUBDOMAIN but not with DNS_LABEL.

      For example, Deployment names must comply with DNS_SUBDOMAIN while Service names must comply with DNS_LABEL.

      Since there is no formal specification for this, the default name generation scheme for kubernetes objects in cdk8s was changed to DNS_LABEL, since it’s the common denominator for all kubernetes resources (supposedly).

      You can override this method if you wish to customize object names at the chart level.

      Parameters

      • apiObject: ApiObject

        The API object to generate a name for.

      Returns string

    • Renders this chart to a set of Kubernetes JSON resources.

      Returns any[]

      array of resource manifests

    • Returns a string representation of this construct.

      Returns string

    • Internal

      Implements instanceof Chart using the more reliable Chart.isChart static method

      Parameters

      • o: unknown

        The object to check

      Returns o is Chart

    • Return whether the given object is a Chart.

      We do attribute detection since we can't reliably use 'instanceof'.

      Parameters

      • x: any

      Returns x is Chart

    • Checks if x is a construct.

      Use this method instead of instanceof to properly detect Construct instances, even when the construct library is symlinked.

      Explanation: in JavaScript, multiple copies of the constructs library on disk are seen as independent, completely different libraries. As a consequence, the class Construct in each copy of the constructs library is seen as a different class, and an instance of one class will not test as instanceof the other class. npm install will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the constructs library can be accidentally installed, and instanceof will behave unpredictably. It is safest to avoid using instanceof, and using this type-testing method instead.

      Parameters

      • x: any

        Any object

      Returns x is Construct

      true if x is an object created from a class which extends Construct.

    • Finds the chart in which a node is defined.

      Parameters

      • c: IConstruct

        a construct node

      Returns Chart

    • Parameters

      • scope: Construct
      • props: {
            adminWebsocket?: {
                automountServiceAccountToken?: boolean;
                containerDefaults?: {
                    args?: string[];
                    command?: string[];
                    envFrom?: EnvFrom[];
                    envVariables?: {
                        [key: string]: undefined | { value?: any; valueFrom?: any };
                    };
                    image?: string;
                    imagePullPolicy?: ImagePullPolicy;
                    lifecycle?: {
                        postStart?: { _toKube?: (cont: ...) => ... };
                        preStop?: { _toKube?: (cont: ...) => ... };
                    };
                    liveness?: { _toKube?: (cont: Container) => Probe };
                    name?: string;
                    port?: number;
                    portNumber?: number;
                    ports?: ContainerPort[];
                    readiness?: { _toKube?: (cont: Container) => Probe };
                    resources?: {
                        cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                        ephemeralStorage?: {
                            limit?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                            request?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                        };
                        memory?: {
                            limit?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                            request?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                        };
                    };
                    restartPolicy?: ContainerRestartPolicy;
                    securityContext?: {
                        allowPrivilegeEscalation?: boolean;
                        capabilities?: { add?: (...)[]; drop?: (...)[] };
                        ensureNonRoot?: boolean;
                        group?: number;
                        privileged?: boolean;
                        readOnlyRootFilesystem?: boolean;
                        seccompProfile?: {
                            localhostProfile?: string;
                            type?: SeccompProfileType;
                        };
                        user?: number;
                    };
                    startup?: { _toKube?: (cont: Container) => Probe };
                    volumeMounts?: VolumeMount[];
                    workingDir?: string;
                };
                containers?: ContainerProps[];
                dns?: {
                    hostname?: string;
                    hostnameAsFQDN?: boolean;
                    nameservers?: string[];
                    options?: DnsOption[];
                    policy?: DnsPolicy;
                    searches?: string[];
                    subdomain?: string;
                };
                dockerRegistryAuth?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                };
                hostAliases?: HostAlias[];
                hostNetwork?: boolean;
                image?: { pullPolicy?: string; repository?: string; tag?: string };
                initContainers?: ContainerProps[];
                isolate?: boolean;
                metadata?: {
                    annotations?: { [key: string]: undefined | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                podMetadata?: {
                    annotations?: { [key: string]: undefined
                    | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                probes?: {
                    liveness?: { _toKube?: (cont: Container) => Probe };
                    readiness?: { _toKube?: (cont: Container) => Probe };
                    startup?: { _toKube?: (cont: Container) => Probe };
                };
                replicaCount?: number;
                resources?: {
                    cpu?: { limit?: number; request?: number };
                    memory?: { limit?: number; request?: number };
                };
                restartPolicy?: RestartPolicy;
                scaling?: {
                    cpuUtilPercent?: number;
                    hpa?: {
                        maxReplicas?: number;
                        metadata?: {
                            annotations?: { [key: ...]: ... };
                            finalizers?: (...)[];
                            labels?: { [key: ...]: ... };
                            name?: string;
                            namespace?: string;
                            ownerReferences?: (...)[];
                            readonly [key: string]: any;
                        };
                        metrics?: Metric[];
                        minReplicas?: number;
                        scaleDown?: {
                            policies?: (...)[];
                            stabilizationWindow?: {
                                toDays?: ...;
                                toHours?: ...;
                                toHumanString?: ...;
                                toIsoString?: ...;
                                toMilliseconds?: ...;
                                toMinutes?: ...;
                                toSeconds?: ...;
                                unitLabel?: ...;
                            };
                            strategy?: ScalingStrategy;
                        };
                        scaleUp?: {
                            policies?: (...)[];
                            stabilizationWindow?: {
                                toDays?: ...;
                                toHours?: ...;
                                toHumanString?: ...;
                                toIsoString?: ...;
                                toMilliseconds?: ...;
                                toMinutes?: ...;
                                toSeconds?: ...;
                                unitLabel?: ...;
                            };
                            strategy?: ScalingStrategy;
                        };
                        target?: {
                            hasAutoscaler?: boolean;
                            markHasAutoscaler?: () => ...;
                            toScalingTarget?: () => ...;
                        };
                    };
                    maxReplicas?: number;
                    memUtilPercent?: number;
                    minReplicas?: number;
                    target?: {
                        hasAutoscaler?: boolean;
                        markHasAutoscaler?: () => void;
                        toScalingTarget?: () => ScalingTarget;
                    };
                };
                securityContext?: {
                    ensureNonRoot?: boolean;
                    fsGroup?: number;
                    fsGroupChangePolicy?: FsGroupChangePolicy;
                    group?: number;
                    sysctls?: Sysctl[];
                    user?: number;
                };
                select?: boolean;
                serviceAccount?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                    toSubjectConfiguration?: () => SubjectConfiguration;
                };
                shareProcessNamespace?: boolean;
                spread?: boolean;
                terminationGracePeriod?: {
                    toDays?: (opts?: TimeConversionOptions) => number;
                    toHours?: (opts?: TimeConversionOptions) => number;
                    toHumanString?: () => string;
                    toIsoString?: () => string;
                    toMilliseconds?: (opts?: TimeConversionOptions) => number;
                    toMinutes?: (opts?: TimeConversionOptions) => number;
                    toSeconds?: (opts?: TimeConversionOptions) => number;
                    unitLabel?: () => string;
                };
                verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
                volumes?: Volume[];
            };
            apiAppConfig?: {
                ccu?: {
                    apiUrl?: string;
                    forceDocker?: boolean;
                    newrelicDisable?: boolean;
                    webUrl?: string;
                };
                celery?: { alwaysEager?: boolean };
                connect?: { instanceId?: string };
                django?: {
                    accountAllowRegistration?: boolean;
                    allowedHosts?: string[];
                    corsOriginWhitelist?: string[];
                    csrfCookieSecure?: boolean;
                    csrfTrustedOrigins?: string[];
                    emailBackend?: string;
                    secureSslRedirect?: boolean;
                    sessionCookieSecure?: boolean;
                    settingsModule?: string;
                };
                elasticSearch?: { host?: string };
                langchain?: { endpoint?: string; project?: string; tracingV2?: boolean };
                newRelic?: {
                    configFile?: string;
                    environment?:
                        | "local"
                        | "development"
                        | "staging"
                        | "production"
                        | "production-au"
                        | "test";
                };
                phone?: { checkTimezone?: boolean };
                rag?: {
                    chatModel?: string;
                    documentEmbedModel?: string;
                    queryEmbedModel?: string;
                };
                sentry?: { traceExcludeUrls?: string[] };
            };
            apiAppSecrets?: {
                aws?: {
                    accessKeyId?: string;
                    defaultRegion?: string;
                    dynamoStage?: string;
                    secretAccessKey?: string;
                };
                cloudfront?: { privateKey?: string; publicKey?: string };
                connectFirst?: { password?: string };
                django?: {
                    adminUrl?: string;
                    mandrill?: { apiKey?: string };
                    secretKey?: string;
                };
                ipstack?: { apiKey?: string };
                jwt?: { privateKey?: string; publicKey?: string };
                langchain?: { apiKey?: string };
                notifications?: {
                    slack?: {
                        chat?: { webhookUrl?: string };
                        default?: { webhookUrl?: string };
                    };
                };
                postgres?: {
                    dbname?: string;
                    host?: string;
                    hostReplica?: string;
                    password?: string;
                    port?: string;
                    user?: string;
                };
                redis?: { host?: string; hostReplicas?: string[] };
                saml?: { awsProvider?: string; awsRole?: string };
                stripe?: { apiKey?: string };
                zendesk?: { apiKey?: string };
                [key: string]: unknown;
            };
            apiImage?: { pullPolicy?: string; repository?: string; tag?: string };
            asgi?: {
                automountServiceAccountToken?: boolean;
                containerDefaults?: {
                    args?: string[];
                    command?: string[];
                    envFrom?: EnvFrom[];
                    envVariables?: {
                        [key: string]: undefined | { value?: any; valueFrom?: any };
                    };
                    image?: string;
                    imagePullPolicy?: ImagePullPolicy;
                    lifecycle?: {
                        postStart?: { _toKube?: (cont: ...) => ... };
                        preStop?: { _toKube?: (cont: ...) => ... };
                    };
                    liveness?: { _toKube?: (cont: Container) => Probe };
                    name?: string;
                    port?: number;
                    portNumber?: number;
                    ports?: ContainerPort[];
                    readiness?: { _toKube?: (cont: Container) => Probe };
                    resources?: {
                        cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                        ephemeralStorage?: {
                            limit?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                            request?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                        };
                        memory?: {
                            limit?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                            request?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                        };
                    };
                    restartPolicy?: ContainerRestartPolicy;
                    securityContext?: {
                        allowPrivilegeEscalation?: boolean;
                        capabilities?: { add?: (...)[]; drop?: (...)[] };
                        ensureNonRoot?: boolean;
                        group?: number;
                        privileged?: boolean;
                        readOnlyRootFilesystem?: boolean;
                        seccompProfile?: {
                            localhostProfile?: string;
                            type?: SeccompProfileType;
                        };
                        user?: number;
                    };
                    startup?: { _toKube?: (cont: Container) => Probe };
                    volumeMounts?: VolumeMount[];
                    workingDir?: string;
                };
                containers?: ContainerProps[];
                dns?: {
                    hostname?: string;
                    hostnameAsFQDN?: boolean;
                    nameservers?: string[];
                    options?: DnsOption[];
                    policy?: DnsPolicy;
                    searches?: string[];
                    subdomain?: string;
                };
                dockerRegistryAuth?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                };
                hostAliases?: HostAlias[];
                hostNetwork?: boolean;
                image?: { pullPolicy?: string; repository?: string; tag?: string };
                initContainers?: ContainerProps[];
                isolate?: boolean;
                metadata?: {
                    annotations?: { [key: string]: undefined | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                podMetadata?: {
                    annotations?: { [key: string]: undefined
                    | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                probes?: {
                    liveness?: { _toKube?: (cont: Container) => Probe };
                    readiness?: { _toKube?: (cont: Container) => Probe };
                    startup?: { _toKube?: (cont: Container) => Probe };
                };
                replicaCount?: number;
                resources?: {
                    cpu?: { limit?: number; request?: number };
                    memory?: { limit?: number; request?: number };
                };
                restartPolicy?: RestartPolicy;
                scaling?: {
                    cpuUtilPercent?: number;
                    hpa?: {
                        maxReplicas?: number;
                        metadata?: {
                            annotations?: { [key: ...]: ... };
                            finalizers?: (...)[];
                            labels?: { [key: ...]: ... };
                            name?: string;
                            namespace?: string;
                            ownerReferences?: (...)[];
                            readonly [key: string]: any;
                        };
                        metrics?: Metric[];
                        minReplicas?: number;
                        scaleDown?: {
                            policies?: (...)[];
                            stabilizationWindow?: {
                                toDays?: ...;
                                toHours?: ...;
                                toHumanString?: ...;
                                toIsoString?: ...;
                                toMilliseconds?: ...;
                                toMinutes?: ...;
                                toSeconds?: ...;
                                unitLabel?: ...;
                            };
                            strategy?: ScalingStrategy;
                        };
                        scaleUp?: {
                            policies?: (...)[];
                            stabilizationWindow?: {
                                toDays?: ...;
                                toHours?: ...;
                                toHumanString?: ...;
                                toIsoString?: ...;
                                toMilliseconds?: ...;
                                toMinutes?: ...;
                                toSeconds?: ...;
                                unitLabel?: ...;
                            };
                            strategy?: ScalingStrategy;
                        };
                        target?: {
                            hasAutoscaler?: boolean;
                            markHasAutoscaler?: () => ...;
                            toScalingTarget?: () => ...;
                        };
                    };
                    maxReplicas?: number;
                    memUtilPercent?: number;
                    minReplicas?: number;
                    target?: {
                        hasAutoscaler?: boolean;
                        markHasAutoscaler?: () => void;
                        toScalingTarget?: () => ScalingTarget;
                    };
                };
                securityContext?: {
                    ensureNonRoot?: boolean;
                    fsGroup?: number;
                    fsGroupChangePolicy?: FsGroupChangePolicy;
                    group?: number;
                    sysctls?: Sysctl[];
                    user?: number;
                };
                select?: boolean;
                serviceAccount?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                    toSubjectConfiguration?: () => SubjectConfiguration;
                };
                shareProcessNamespace?: boolean;
                spread?: boolean;
                terminationGracePeriod?: {
                    toDays?: (opts?: TimeConversionOptions) => number;
                    toHours?: (opts?: TimeConversionOptions) => number;
                    toHumanString?: () => string;
                    toIsoString?: () => string;
                    toMilliseconds?: (opts?: TimeConversionOptions) => number;
                    toMinutes?: (opts?: TimeConversionOptions) => number;
                    toSeconds?: (opts?: TimeConversionOptions) => number;
                    unitLabel?: () => string;
                };
                verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
                volumes?: Volume[];
                workers?: number;
            };
            celery?: {
                [key: string]: | undefined
                | {
                    args?: string[];
                    automountServiceAccountToken?: boolean;
                    concurrency?: number;
                    containerDefaults?: {
                        args?: string[];
                        command?: string[];
                        envFrom?: EnvFrom[];
                        envVariables?: {
                            [key: string]: undefined
                            | { value?: ...; valueFrom?: ... };
                        };
                        image?: string;
                        imagePullPolicy?: ImagePullPolicy;
                        lifecycle?: {
                            postStart?: { _toKube?: ... };
                            preStop?: { _toKube?: ... };
                        };
                        liveness?: { _toKube?: (cont: ...) => ... };
                        name?: string;
                        port?: number;
                        portNumber?: number;
                        ports?: ContainerPort[];
                        readiness?: { _toKube?: (cont: ...) => ... };
                        resources?: {
                            cpu?: { limit?: ...; request?: ... };
                            ephemeralStorage?: { limit?: ...; request?: ... };
                            memory?: { limit?: ...; request?: ... };
                        };
                        restartPolicy?: ContainerRestartPolicy;
                        securityContext?: {
                            allowPrivilegeEscalation?: boolean;
                            capabilities?: { add?: ...; drop?: ... };
                            ensureNonRoot?: boolean;
                            group?: number;
                            privileged?: boolean;
                            readOnlyRootFilesystem?: boolean;
                            seccompProfile?: { localhostProfile?: ...; type?: ... };
                            user?: number;
                        };
                        startup?: { _toKube?: (cont: ...) => ... };
                        volumeMounts?: VolumeMount[];
                        workingDir?: string;
                    };
                    containers?: ContainerProps[];
                    dns?: {
                        hostname?: string;
                        hostnameAsFQDN?: boolean;
                        nameservers?: string[];
                        options?: DnsOption[];
                        policy?: DnsPolicy;
                        searches?: string[];
                        subdomain?: string;
                    };
                    dockerRegistryAuth?: {
                        apiGroup?: string;
                        apiVersion?: string;
                        envValue?: (
                            key: string,
                            options?: EnvValueFromSecretOptions,
                        ) => EnvValue;
                        kind?: string;
                        name?: string;
                        node?: {
                            addDependency?: (...deps: ...) => ...;
                            addMetadata?: (type: ..., data: ..., options?: ...) => ...;
                            addr?: string;
                            addValidation?: (validation: ...) => ...;
                            children?: (...)[];
                            defaultChild?: { node?: ... };
                            dependencies?: (...)[];
                            findAll?: (order?: ...) => ...;
                            findChild?: (id: ...) => ...;
                            getAllContext?: (defaults?: ...) => ...;
                            getContext?: (key: ...) => ...;
                            id?: string;
                            lock?: () => ...;
                            locked?: boolean;
                            metadata?: (...)[];
                            path?: string;
                            root?: { node?: ... };
                            scope?: { node?: ... };
                            scopes?: (...)[];
                            setContext?: (key: ..., value: ...) => ...;
                            tryFindChild?: (id: ...) => ...;
                            tryGetContext?: (key: ...) => ...;
                            tryRemoveChild?: (childName: ...) => ...;
                            validate?: () => ...;
                        };
                        resourceName?: string;
                        resourceType?: string;
                    };
                    hostAliases?: HostAlias[];
                    hostNetwork?: boolean;
                    image?: { pullPolicy?: string; repository?: string; tag?: string };
                    initContainers?: ContainerProps[];
                    isolate?: boolean;
                    metadata?: {
                        annotations?: { [key: string]: undefined | string };
                        finalizers?: string[];
                        labels?: { [key: string]: undefined | string };
                        name?: string;
                        namespace?: string;
                        ownerReferences?: OwnerReference[];
                        readonly [key: string]: any;
                    };
                    name?: string;
                    podMetadata?: {
                        annotations?: { [key: string]: undefined
                        | string };
                        finalizers?: string[];
                        labels?: { [key: string]: undefined | string };
                        name?: string;
                        namespace?: string;
                        ownerReferences?: OwnerReference[];
                        readonly [key: string]: any;
                    };
                    probes?: {
                        liveness?: { _toKube?: (cont: ...) => ... };
                        readiness?: { _toKube?: (cont: ...) => ... };
                        startup?: { _toKube?: (cont: ...) => ... };
                    };
                    queues?: string[];
                    replicaCount?: number;
                    resources?: {
                        cpu?: { limit?: number; request?: number };
                        memory?: { limit?: number; request?: number };
                    };
                    restartPolicy?: RestartPolicy;
                    scaling?: {
                        cpuUtilPercent?: number;
                        hpa?: {
                            maxReplicas?: number;
                            metadata?: {
                                annotations?: ...;
                                finalizers?: ...;
                                labels?: ...;
                                name?: ...;
                                namespace?: ...;
                                ownerReferences?: ...;
                                readonly [key: ...]: ...;
                            };
                            metrics?: (...)[];
                            minReplicas?: number;
                            scaleDown?: {
                                policies?: ...;
                                stabilizationWindow?: ...;
                                strategy?: ...;
                            };
                            scaleUp?: { policies?: ...; stabilizationWindow?: ...; strategy?: ... };
                            target?: {
                                hasAutoscaler?: ...;
                                markHasAutoscaler?: ...;
                                toScalingTarget?: ...;
                            };
                        };
                        maxReplicas?: number;
                        memUtilPercent?: number;
                        minReplicas?: number;
                        target?: {
                            hasAutoscaler?: boolean;
                            markHasAutoscaler?: () => ...;
                            toScalingTarget?: () => ...;
                        };
                    };
                    securityContext?: {
                        ensureNonRoot?: boolean;
                        fsGroup?: number;
                        fsGroupChangePolicy?: FsGroupChangePolicy;
                        group?: number;
                        sysctls?: Sysctl[];
                        user?: number;
                    };
                    select?: boolean;
                    serviceAccount?: {
                        apiGroup?: string;
                        apiVersion?: string;
                        kind?: string;
                        name?: string;
                        node?: {
                            addDependency?: (...deps: ...) => ...;
                            addMetadata?: (type: ..., data: ..., options?: ...) => ...;
                            addr?: string;
                            addValidation?: (validation: ...) => ...;
                            children?: (...)[];
                            defaultChild?: { node?: ... };
                            dependencies?: (...)[];
                            findAll?: (order?: ...) => ...;
                            findChild?: (id: ...) => ...;
                            getAllContext?: (defaults?: ...) => ...;
                            getContext?: (key: ...) => ...;
                            id?: string;
                            lock?: () => ...;
                            locked?: boolean;
                            metadata?: (...)[];
                            path?: string;
                            root?: { node?: ... };
                            scope?: { node?: ... };
                            scopes?: (...)[];
                            setContext?: (key: ..., value: ...) => ...;
                            tryFindChild?: (id: ...) => ...;
                            tryGetContext?: (key: ...) => ...;
                            tryRemoveChild?: (childName: ...) => ...;
                            validate?: () => ...;
                        };
                        resourceName?: string;
                        resourceType?: string;
                        toSubjectConfiguration?: () => SubjectConfiguration;
                    };
                    shareProcessNamespace?: boolean;
                    spread?: boolean;
                    terminationGracePeriod?: {
                        toDays?: (opts?: TimeConversionOptions) => number;
                        toHours?: (opts?: TimeConversionOptions) => number;
                        toHumanString?: () => string;
                        toIsoString?: () => string;
                        toMilliseconds?: (opts?: TimeConversionOptions) => number;
                        toMinutes?: (opts?: TimeConversionOptions) => number;
                        toSeconds?: (opts?: TimeConversionOptions) => number;
                        unitLabel?: () => string;
                    };
                    verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
                    volumes?: Volume[];
                };
            };
            celeryBeat?: {
                automountServiceAccountToken?: boolean;
                containerDefaults?: {
                    args?: string[];
                    command?: string[];
                    envFrom?: EnvFrom[];
                    envVariables?: {
                        [key: string]: undefined
                        | { value?: any; valueFrom?: any };
                    };
                    image?: string;
                    imagePullPolicy?: ImagePullPolicy;
                    lifecycle?: {
                        postStart?: { _toKube?: (cont: ...) => ... };
                        preStop?: { _toKube?: (cont: ...) => ... };
                    };
                    liveness?: { _toKube?: (cont: Container) => Probe };
                    name?: string;
                    port?: number;
                    portNumber?: number;
                    ports?: ContainerPort[];
                    readiness?: { _toKube?: (cont: Container) => Probe };
                    resources?: {
                        cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                        ephemeralStorage?: {
                            limit?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                            request?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                        };
                        memory?: {
                            limit?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                            request?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                        };
                    };
                    restartPolicy?: ContainerRestartPolicy;
                    securityContext?: {
                        allowPrivilegeEscalation?: boolean;
                        capabilities?: { add?: (...)[]; drop?: (...)[] };
                        ensureNonRoot?: boolean;
                        group?: number;
                        privileged?: boolean;
                        readOnlyRootFilesystem?: boolean;
                        seccompProfile?: {
                            localhostProfile?: string;
                            type?: SeccompProfileType;
                        };
                        user?: number;
                    };
                    startup?: { _toKube?: (cont: Container) => Probe };
                    volumeMounts?: VolumeMount[];
                    workingDir?: string;
                };
                containers?: ContainerProps[];
                dns?: {
                    hostname?: string;
                    hostnameAsFQDN?: boolean;
                    nameservers?: string[];
                    options?: DnsOption[];
                    policy?: DnsPolicy;
                    searches?: string[];
                    subdomain?: string;
                };
                dockerRegistryAuth?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                };
                hostAliases?: HostAlias[];
                hostNetwork?: boolean;
                image?: { pullPolicy?: string; repository?: string; tag?: string };
                initContainers?: ContainerProps[];
                isolate?: boolean;
                metadata?: {
                    annotations?: { [key: string]: undefined | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                podMetadata?: {
                    annotations?: { [key: string]: undefined
                    | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                probes?: {
                    liveness?: { _toKube?: (cont: Container) => Probe };
                    readiness?: { _toKube?: (cont: Container) => Probe };
                    startup?: { _toKube?: (cont: Container) => Probe };
                };
                replicaCount?: number;
                resources?: {
                    cpu?: { limit?: number; request?: number };
                    memory?: { limit?: number; request?: number };
                };
                restartPolicy?: RestartPolicy;
                scaling?: {
                    cpuUtilPercent?: number;
                    hpa?: {
                        maxReplicas?: number;
                        metadata?: {
                            annotations?: { [key: ...]: ... };
                            finalizers?: (...)[];
                            labels?: { [key: ...]: ... };
                            name?: string;
                            namespace?: string;
                            ownerReferences?: (...)[];
                            readonly [key: string]: any;
                        };
                        metrics?: Metric[];
                        minReplicas?: number;
                        scaleDown?: {
                            policies?: (...)[];
                            stabilizationWindow?: {
                                toDays?: ...;
                                toHours?: ...;
                                toHumanString?: ...;
                                toIsoString?: ...;
                                toMilliseconds?: ...;
                                toMinutes?: ...;
                                toSeconds?: ...;
                                unitLabel?: ...;
                            };
                            strategy?: ScalingStrategy;
                        };
                        scaleUp?: {
                            policies?: (...)[];
                            stabilizationWindow?: {
                                toDays?: ...;
                                toHours?: ...;
                                toHumanString?: ...;
                                toIsoString?: ...;
                                toMilliseconds?: ...;
                                toMinutes?: ...;
                                toSeconds?: ...;
                                unitLabel?: ...;
                            };
                            strategy?: ScalingStrategy;
                        };
                        target?: {
                            hasAutoscaler?: boolean;
                            markHasAutoscaler?: () => ...;
                            toScalingTarget?: () => ...;
                        };
                    };
                    maxReplicas?: number;
                    memUtilPercent?: number;
                    minReplicas?: number;
                    target?: {
                        hasAutoscaler?: boolean;
                        markHasAutoscaler?: () => void;
                        toScalingTarget?: () => ScalingTarget;
                    };
                };
                securityContext?: {
                    ensureNonRoot?: boolean;
                    fsGroup?: number;
                    fsGroupChangePolicy?: FsGroupChangePolicy;
                    group?: number;
                    sysctls?: Sysctl[];
                    user?: number;
                };
                select?: boolean;
                serviceAccount?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                    toSubjectConfiguration?: () => SubjectConfiguration;
                };
                shareProcessNamespace?: boolean;
                spread?: boolean;
                terminationGracePeriod?: {
                    toDays?: (opts?: TimeConversionOptions) => number;
                    toHours?: (opts?: TimeConversionOptions) => number;
                    toHumanString?: () => string;
                    toIsoString?: () => string;
                    toMilliseconds?: (opts?: TimeConversionOptions) => number;
                    toMinutes?: (opts?: TimeConversionOptions) => number;
                    toSeconds?: (opts?: TimeConversionOptions) => number;
                    unitLabel?: () => string;
                };
                verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
                volumes?: Volume[];
            };
            disableResourceNameHashes?: boolean;
            domainName?: string;
            ingressAnnotations?: { [key: string]: undefined
            | string };
            labels?: { [key: string]: undefined | string };
            namespace?: string;
            sync?: {
                activeDeadline?: {
                    toDays?: (opts?: TimeConversionOptions) => number;
                    toHours?: (opts?: TimeConversionOptions) => number;
                    toHumanString?: () => string;
                    toIsoString?: () => string;
                    toMilliseconds?: (opts?: TimeConversionOptions) => number;
                    toMinutes?: (opts?: TimeConversionOptions) => number;
                    toSeconds?: (opts?: TimeConversionOptions) => number;
                    unitLabel?: () => string;
                };
                automountServiceAccountToken?: boolean;
                backoffLimit?: number;
                concurrencyPolicy?: ConcurrencyPolicy;
                containers?: ContainerProps[];
                dns?: {
                    hostname?: string;
                    hostnameAsFQDN?: boolean;
                    nameservers?: string[];
                    options?: DnsOption[];
                    policy?: DnsPolicy;
                    searches?: string[];
                    subdomain?: string;
                };
                dockerRegistryAuth?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                };
                failedJobsRetained?: number;
                hostAliases?: HostAlias[];
                hostNetwork?: boolean;
                image?: { pullPolicy?: string; repository?: string; tag?: string };
                initContainers?: ContainerProps[];
                isolate?: boolean;
                metadata?: {
                    annotations?: { [key: string]: undefined | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                podMetadata?: {
                    annotations?: { [key: string]: undefined
                    | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                restartPolicy?: RestartPolicy;
                schedule?: {
                    day?: string;
                    hour?: string;
                    minute?: string;
                    month?: string;
                    weekDay?: string;
                };
                securityContext?: {
                    ensureNonRoot?: boolean;
                    fsGroup?: number;
                    fsGroupChangePolicy?: FsGroupChangePolicy;
                    group?: number;
                    sysctls?: Sysctl[];
                    user?: number;
                };
                select?: boolean;
                serviceAccount?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                    toSubjectConfiguration?: () => SubjectConfiguration;
                };
                shareProcessNamespace?: boolean;
                sourceDsn?: null
                | string;
                spread?: boolean;
                startingDeadline?: {
                    toDays?: (opts?: TimeConversionOptions) => number;
                    toHours?: (opts?: TimeConversionOptions) => number;
                    toHumanString?: () => string;
                    toIsoString?: () => string;
                    toMilliseconds?: (opts?: TimeConversionOptions) => number;
                    toMinutes?: (opts?: TimeConversionOptions) => number;
                    toSeconds?: (opts?: TimeConversionOptions) => number;
                    unitLabel?: () => string;
                };
                successfulJobsRetained?: number;
                suspend?: boolean;
                target?: {
                    bastionHost?: string;
                    bastionKey?: string;
                    databaseDsn?: string;
                    dev?: boolean;
                };
                terminationGracePeriod?: {
                    toDays?: (opts?: TimeConversionOptions) => number;
                    toHours?: (opts?: TimeConversionOptions) => number;
                    toHumanString?: () => string;
                    toIsoString?: () => string;
                    toMilliseconds?: (opts?: TimeConversionOptions) => number;
                    toMinutes?: (opts?: TimeConversionOptions) => number;
                    toSeconds?: (opts?: TimeConversionOptions) => number;
                    unitLabel?: () => string;
                };
                timeZone?: string;
                ttlAfterFinished?: {
                    toDays?: (opts?: TimeConversionOptions) => number;
                    toHours?: (opts?: TimeConversionOptions) => number;
                    toHumanString?: () => string;
                    toIsoString?: () => string;
                    toMilliseconds?: (opts?: TimeConversionOptions) => number;
                    toMinutes?: (opts?: TimeConversionOptions) => number;
                    toSeconds?: (opts?: TimeConversionOptions) => number;
                    unitLabel?: () => string;
                };
                volumes?: Volume[];
            };
            webImage?: { pullPolicy?: string; repository?: string; tag?: string };
            wsgi?: {
                automountServiceAccountToken?: boolean;
                containerDefaults?: {
                    args?: string[];
                    command?: string[];
                    envFrom?: EnvFrom[];
                    envVariables?: {
                        [key: string]: undefined | { value?: any; valueFrom?: any };
                    };
                    image?: string;
                    imagePullPolicy?: ImagePullPolicy;
                    lifecycle?: {
                        postStart?: { _toKube?: (cont: ...) => ... };
                        preStop?: { _toKube?: (cont: ...) => ... };
                    };
                    liveness?: { _toKube?: (cont: Container) => Probe };
                    name?: string;
                    port?: number;
                    portNumber?: number;
                    ports?: ContainerPort[];
                    readiness?: { _toKube?: (cont: Container) => Probe };
                    resources?: {
                        cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                        ephemeralStorage?: {
                            limit?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                            request?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                        };
                        memory?: {
                            limit?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                            request?: {
                                asString?: ...;
                                toGibibytes?: ...;
                                toKibibytes?: ...;
                                toMebibytes?: ...;
                                toPebibytes?: ...;
                                toTebibytes?: ...;
                            };
                        };
                    };
                    restartPolicy?: ContainerRestartPolicy;
                    securityContext?: {
                        allowPrivilegeEscalation?: boolean;
                        capabilities?: { add?: (...)[]; drop?: (...)[] };
                        ensureNonRoot?: boolean;
                        group?: number;
                        privileged?: boolean;
                        readOnlyRootFilesystem?: boolean;
                        seccompProfile?: {
                            localhostProfile?: string;
                            type?: SeccompProfileType;
                        };
                        user?: number;
                    };
                    startup?: { _toKube?: (cont: Container) => Probe };
                    volumeMounts?: VolumeMount[];
                    workingDir?: string;
                };
                containers?: ContainerProps[];
                dns?: {
                    hostname?: string;
                    hostnameAsFQDN?: boolean;
                    nameservers?: string[];
                    options?: DnsOption[];
                    policy?: DnsPolicy;
                    searches?: string[];
                    subdomain?: string;
                };
                dockerRegistryAuth?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                };
                hostAliases?: HostAlias[];
                hostNetwork?: boolean;
                image?: { pullPolicy?: string; repository?: string; tag?: string };
                initContainers?: ContainerProps[];
                isolate?: boolean;
                metadata?: {
                    annotations?: { [key: string]: undefined | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                podMetadata?: {
                    annotations?: { [key: string]: undefined
                    | string };
                    finalizers?: string[];
                    labels?: { [key: string]: undefined | string };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: OwnerReference[];
                    readonly [key: string]: any;
                };
                probes?: {
                    liveness?: { _toKube?: (cont: Container) => Probe };
                    readiness?: { _toKube?: (cont: Container) => Probe };
                    startup?: { _toKube?: (cont: Container) => Probe };
                };
                replicaCount?: number;
                resources?: {
                    cpu?: { limit?: number; request?: number };
                    memory?: { limit?: number; request?: number };
                };
                restartPolicy?: RestartPolicy;
                scaling?: {
                    cpuUtilPercent?: number;
                    hpa?: {
                        maxReplicas?: number;
                        metadata?: {
                            annotations?: { [key: ...]: ... };
                            finalizers?: (...)[];
                            labels?: { [key: ...]: ... };
                            name?: string;
                            namespace?: string;
                            ownerReferences?: (...)[];
                            readonly [key: string]: any;
                        };
                        metrics?: Metric[];
                        minReplicas?: number;
                        scaleDown?: {
                            policies?: (...)[];
                            stabilizationWindow?: {
                                toDays?: ...;
                                toHours?: ...;
                                toHumanString?: ...;
                                toIsoString?: ...;
                                toMilliseconds?: ...;
                                toMinutes?: ...;
                                toSeconds?: ...;
                                unitLabel?: ...;
                            };
                            strategy?: ScalingStrategy;
                        };
                        scaleUp?: {
                            policies?: (...)[];
                            stabilizationWindow?: {
                                toDays?: ...;
                                toHours?: ...;
                                toHumanString?: ...;
                                toIsoString?: ...;
                                toMilliseconds?: ...;
                                toMinutes?: ...;
                                toSeconds?: ...;
                                unitLabel?: ...;
                            };
                            strategy?: ScalingStrategy;
                        };
                        target?: {
                            hasAutoscaler?: boolean;
                            markHasAutoscaler?: () => ...;
                            toScalingTarget?: () => ...;
                        };
                    };
                    maxReplicas?: number;
                    memUtilPercent?: number;
                    minReplicas?: number;
                    target?: {
                        hasAutoscaler?: boolean;
                        markHasAutoscaler?: () => void;
                        toScalingTarget?: () => ScalingTarget;
                    };
                };
                securityContext?: {
                    ensureNonRoot?: boolean;
                    fsGroup?: number;
                    fsGroupChangePolicy?: FsGroupChangePolicy;
                    group?: number;
                    sysctls?: Sysctl[];
                    user?: number;
                };
                select?: boolean;
                serviceAccount?: {
                    apiGroup?: string;
                    apiVersion?: string;
                    kind?: string;
                    name?: string;
                    node?: {
                        addDependency?: (...deps: IDependable[]) => void;
                        addMetadata?: (
                            type: string,
                            data: any,
                            options?: MetadataOptions,
                        ) => void;
                        addr?: string;
                        addValidation?: (validation: IValidation) => void;
                        children?: IConstruct[];
                        defaultChild?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        dependencies?: IConstruct[];
                        findAll?: (order?: ConstructOrder) => IConstruct[];
                        findChild?: (id: string) => IConstruct;
                        getAllContext?: (defaults?: object) => any;
                        getContext?: (key: string) => any;
                        id?: string;
                        lock?: () => void;
                        locked?: boolean;
                        metadata?: MetadataEntry[];
                        path?: string;
                        root?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scope?: {
                            node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                        };
                        scopes?: IConstruct[];
                        setContext?: (key: string, value: any) => void;
                        tryFindChild?: (id: string) => undefined | IConstruct;
                        tryGetContext?: (key: string) => any;
                        tryRemoveChild?: (childName: string) => boolean;
                        validate?: () => string[];
                    };
                    resourceName?: string;
                    resourceType?: string;
                    toSubjectConfiguration?: () => SubjectConfiguration;
                };
                shareProcessNamespace?: boolean;
                spread?: boolean;
                terminationGracePeriod?: {
                    toDays?: (opts?: TimeConversionOptions) => number;
                    toHours?: (opts?: TimeConversionOptions) => number;
                    toHumanString?: () => string;
                    toIsoString?: () => string;
                    toMilliseconds?: (opts?: TimeConversionOptions) => number;
                    toMinutes?: (opts?: TimeConversionOptions) => number;
                    toSeconds?: (opts?: TimeConversionOptions) => number;
                    unitLabel?: () => string;
                };
                threads?: number;
                verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
                volumes?: Volume[];
                workers?: number;
            };
        }
        • OptionaladminWebsocket?: {
              automountServiceAccountToken?: boolean;
              containerDefaults?: {
                  args?: string[];
                  command?: string[];
                  envFrom?: EnvFrom[];
                  envVariables?: {
                      [key: string]: undefined | { value?: any; valueFrom?: any };
                  };
                  image?: string;
                  imagePullPolicy?: ImagePullPolicy;
                  lifecycle?: {
                      postStart?: { _toKube?: (cont: ...) => ... };
                      preStop?: { _toKube?: (cont: ...) => ... };
                  };
                  liveness?: { _toKube?: (cont: Container) => Probe };
                  name?: string;
                  port?: number;
                  portNumber?: number;
                  ports?: ContainerPort[];
                  readiness?: { _toKube?: (cont: Container) => Probe };
                  resources?: {
                      cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                      ephemeralStorage?: {
                          limit?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                          request?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                      };
                      memory?: {
                          limit?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                          request?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                      };
                  };
                  restartPolicy?: ContainerRestartPolicy;
                  securityContext?: {
                      allowPrivilegeEscalation?: boolean;
                      capabilities?: { add?: (...)[]; drop?: (...)[] };
                      ensureNonRoot?: boolean;
                      group?: number;
                      privileged?: boolean;
                      readOnlyRootFilesystem?: boolean;
                      seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                      user?: number;
                  };
                  startup?: { _toKube?: (cont: Container) => Probe };
                  volumeMounts?: VolumeMount[];
                  workingDir?: string;
              };
              containers?: ContainerProps[];
              dns?: {
                  hostname?: string;
                  hostnameAsFQDN?: boolean;
                  nameservers?: string[];
                  options?: DnsOption[];
                  policy?: DnsPolicy;
                  searches?: string[];
                  subdomain?: string;
              };
              dockerRegistryAuth?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
              };
              hostAliases?: HostAlias[];
              hostNetwork?: boolean;
              image?: { pullPolicy?: string; repository?: string; tag?: string };
              initContainers?: ContainerProps[];
              isolate?: boolean;
              metadata?: {
                  annotations?: { [key: string]: undefined | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              podMetadata?: {
                  annotations?: { [key: string]: undefined
                  | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              probes?: {
                  liveness?: { _toKube?: (cont: Container) => Probe };
                  readiness?: { _toKube?: (cont: Container) => Probe };
                  startup?: { _toKube?: (cont: Container) => Probe };
              };
              replicaCount?: number;
              resources?: {
                  cpu?: { limit?: number; request?: number };
                  memory?: { limit?: number; request?: number };
              };
              restartPolicy?: RestartPolicy;
              scaling?: {
                  cpuUtilPercent?: number;
                  hpa?: {
                      maxReplicas?: number;
                      metadata?: {
                          annotations?: { [key: ...]: ... };
                          finalizers?: (...)[];
                          labels?: { [key: ...]: ... };
                          name?: string;
                          namespace?: string;
                          ownerReferences?: (...)[];
                          readonly [key: string]: any;
                      };
                      metrics?: Metric[];
                      minReplicas?: number;
                      scaleDown?: {
                          policies?: (...)[];
                          stabilizationWindow?: {
                              toDays?: ...;
                              toHours?: ...;
                              toHumanString?: ...;
                              toIsoString?: ...;
                              toMilliseconds?: ...;
                              toMinutes?: ...;
                              toSeconds?: ...;
                              unitLabel?: ...;
                          };
                          strategy?: ScalingStrategy;
                      };
                      scaleUp?: {
                          policies?: (...)[];
                          stabilizationWindow?: {
                              toDays?: ...;
                              toHours?: ...;
                              toHumanString?: ...;
                              toIsoString?: ...;
                              toMilliseconds?: ...;
                              toMinutes?: ...;
                              toSeconds?: ...;
                              unitLabel?: ...;
                          };
                          strategy?: ScalingStrategy;
                      };
                      target?: {
                          hasAutoscaler?: boolean;
                          markHasAutoscaler?: () => ...;
                          toScalingTarget?: () => ...;
                      };
                  };
                  maxReplicas?: number;
                  memUtilPercent?: number;
                  minReplicas?: number;
                  target?: {
                      hasAutoscaler?: boolean;
                      markHasAutoscaler?: () => void;
                      toScalingTarget?: () => ScalingTarget;
                  };
              };
              securityContext?: {
                  ensureNonRoot?: boolean;
                  fsGroup?: number;
                  fsGroupChangePolicy?: FsGroupChangePolicy;
                  group?: number;
                  sysctls?: Sysctl[];
                  user?: number;
              };
              select?: boolean;
              serviceAccount?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
                  toSubjectConfiguration?: () => SubjectConfiguration;
              };
              shareProcessNamespace?: boolean;
              spread?: boolean;
              terminationGracePeriod?: {
                  toDays?: (opts?: TimeConversionOptions) => number;
                  toHours?: (opts?: TimeConversionOptions) => number;
                  toHumanString?: () => string;
                  toIsoString?: () => string;
                  toMilliseconds?: (opts?: TimeConversionOptions) => number;
                  toMinutes?: (opts?: TimeConversionOptions) => number;
                  toSeconds?: (opts?: TimeConversionOptions) => number;
                  unitLabel?: () => string;
              };
              verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
              volumes?: Volume[];
          }
          • Optional ReadonlyautomountServiceAccountToken?: boolean

            Indicates whether a service account token should be automatically mounted.

          • OptionalcontainerDefaults?: {
                args?: string[];
                command?: string[];
                envFrom?: EnvFrom[];
                envVariables?: {
                    [key: string]: undefined | { value?: any; valueFrom?: any };
                };
                image?: string;
                imagePullPolicy?: ImagePullPolicy;
                lifecycle?: {
                    postStart?: { _toKube?: (cont: ...) => ... };
                    preStop?: { _toKube?: (cont: ...) => ... };
                };
                liveness?: { _toKube?: (cont: Container) => Probe };
                name?: string;
                port?: number;
                portNumber?: number;
                ports?: ContainerPort[];
                readiness?: { _toKube?: (cont: Container) => Probe };
                resources?: {
                    cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                    ephemeralStorage?: {
                        limit?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                        request?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                    };
                    memory?: {
                        limit?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                        request?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                    };
                };
                restartPolicy?: ContainerRestartPolicy;
                securityContext?: {
                    allowPrivilegeEscalation?: boolean;
                    capabilities?: { add?: (...)[]; drop?: (...)[] };
                    ensureNonRoot?: boolean;
                    group?: number;
                    privileged?: boolean;
                    readOnlyRootFilesystem?: boolean;
                    seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                    user?: number;
                };
                startup?: { _toKube?: (cont: Container) => Probe };
                volumeMounts?: VolumeMount[];
                workingDir?: string;
            }
            • Optional Readonlyargs?: string[]

              Arguments to the entrypoint. The docker image's CMD is used if command is not provided.

              Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.

              Cannot be updated.

            • Optional Readonlycommand?: string[]

              Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

              - The docker image's ENTRYPOINT.
              
            • Optional ReadonlyenvFrom?: EnvFrom[]

              List of sources to populate environment variables in the container. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by the envVariables property with a duplicate key will take precedence.

              - No sources.
              
            • Optional ReadonlyenvVariables?: { [key: string]: undefined | { value?: any; valueFrom?: any } }

              Environment variables to set in the container.

              - No environment variables.
              
            • Optional Readonlyimage?: string

              Docker image name.

            • Optional ReadonlyimagePullPolicy?: ImagePullPolicy

              Image pull policy for this container

              ImagePullPolicy.ALWAYS
              
            • Optional Readonlylifecycle?: {
                  postStart?: { _toKube?: (cont: ...) => ... };
                  preStop?: { _toKube?: (cont: ...) => ... };
              }

              Describes actions that the management system should take in response to container lifecycle events.

              • Optional ReadonlypostStart?: { _toKube?: (cont: ...) => ... }

                This hook is executed immediately after a container is created. However, there is no guarantee that the hook will execute before the container ENTRYPOINT.

                - No post start handler.
                
              • Optional ReadonlypreStop?: { _toKube?: (cont: ...) => ... }

                This hook is called immediately before a container is terminated due to an API request or management event such as a liveness/startup probe failure, preemption, resource contention and others. A call to the PreStop hook fails if the container is already in a terminated or completed state and the hook must complete before the TERM signal to stop the container can be sent. The Pod's termination grace period countdown begins before the PreStop hook is executed, so regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. No parameters are passed to the handler.

            • Optional Readonlyliveness?: { _toKube?: (cont: Container) => Probe }

              Periodic probe of container liveness. Container will be restarted if the probe fails.

              - no liveness probe is defined
              
            • Optional Readonlyname?: string

              Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.

              'main'
              
            • Optional Readonlyport?: number
              • use portNumber.
            • Optional ReadonlyportNumber?: number

              Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.

              This is a convinience property if all you need a single TCP numbered port. In case more advanced configuartion is required, use the ports property.

              This port is added to the list of ports mentioned in the ports property.

              • Only the ports mentiond in the ports property are exposed.
            • Optional Readonlyports?: ContainerPort[]

              List of ports to expose from this container.

              • Only the port mentioned in the portNumber property is exposed.
            • Optional Readonlyreadiness?: { _toKube?: (cont: Container) => Probe }

              Determines when the container is ready to serve traffic.

              - no readiness probe is defined
              
            • Optional Readonlyresources?: {
                  cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                  ephemeralStorage?: {
                      limit?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                      request?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                  };
                  memory?: {
                      limit?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                      request?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                  };
              }

              Compute resources (CPU and memory requests and limits) required by the container

              cpu:
              request: 1000 millis
              limit: 1500 millis
              memory:
              request: 512 mebibytes
              limit: 2048 mebibytes
            • Optional ReadonlyrestartPolicy?: ContainerRestartPolicy

              Kubelet will start init containers with restartPolicy=Always in the order with other init containers, but instead of waiting for its completion, it will wait for the container startup completion Currently, only accepted value is Always

              - no restart policy is defined and the pod restart policy is applied
              
            • Optional ReadonlysecurityContext?: {
                  allowPrivilegeEscalation?: boolean;
                  capabilities?: { add?: (...)[]; drop?: (...)[] };
                  ensureNonRoot?: boolean;
                  group?: number;
                  privileged?: boolean;
                  readOnlyRootFilesystem?: boolean;
                  seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                  user?: number;
              }

              SecurityContext defines the security options the container should be run with. If set, the fields override equivalent fields of the pod's security context.

              ensureNonRoot: true
              privileged: false
              readOnlyRootFilesystem: true
              allowPrivilegeEscalation: false
              user: 25000
              group: 26000
              • Optional ReadonlyallowPrivilegeEscalation?: boolean

                Whether a process can gain more privileges than its parent process.

                false
                
              • Optional Readonlycapabilities?: { add?: (...)[]; drop?: (...)[] }

                POSIX capabilities for running containers

                none
                
                • Optional Readonlyadd?: (...)[]

                  Added capabilities

                • Optional Readonlydrop?: (...)[]

                  Removed capabilities

              • Optional ReadonlyensureNonRoot?: boolean

                Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

                true
                
              • Optional Readonlygroup?: number

                The GID to run the entrypoint of the container process.

                - 26000. An arbitrary number bigger than 9999 is selected here.
                This is so that the container is blocked to access host files even if
                somehow it manages to get access to host file system.
              • Optional Readonlyprivileged?: boolean

                Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host.

                false
                
              • Optional ReadonlyreadOnlyRootFilesystem?: boolean

                Whether this container has a read-only root filesystem.

                true
                
              • Optional ReadonlyseccompProfile?: { localhostProfile?: string; type?: SeccompProfileType }

                Container's seccomp profile settings. Only one profile source may be set

                none
                
                • Optional ReadonlylocalhostProfile?: string

                  localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is "Localhost".

                  - empty string
                  
                • Optional Readonlytype?: SeccompProfileType

                  Indicates which kind of seccomp profile will be applied

              • Optional Readonlyuser?: number

                The UID to run the entrypoint of the container process.

                - 25000. An arbitrary number bigger than 9999 is selected here.
                This is so that the container is blocked to access host files even if
                somehow it manages to get access to host file system.
            • Optional Readonlystartup?: { _toKube?: (cont: Container) => Probe }

              StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully

              - If a port is provided, then knocks on that port
              to determine when the container is ready for readiness and
              liveness probe checks.
              Otherwise, no startup probe is defined.
            • Optional ReadonlyvolumeMounts?: VolumeMount[]

              Pod volumes to mount into the container's filesystem. Cannot be updated.

            • Optional ReadonlyworkingDir?: string

              Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.

              - The container runtime's default.
              
          • Optional Readonlycontainers?: ContainerProps[]

            List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod.

            You can add additionnal containers using podSpec.addContainer()

            - No containers. Note that a pod spec must include at least one container.
            
          • Optional Readonlydns?: {
                hostname?: string;
                hostnameAsFQDN?: boolean;
                nameservers?: string[];
                options?: DnsOption[];
                policy?: DnsPolicy;
                searches?: string[];
                subdomain?: string;
            }

            DNS settings for the pod.

            policy: DnsPolicy.CLUSTER_FIRST
            hostnameAsFQDN: false
            • Optional Readonlyhostname?: string

              Specifies the hostname of the Pod.

              - Set to a system-defined value.
              
            • Optional ReadonlyhostnameAsFQDN?: boolean

              If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect.

              false
              
            • Optional Readonlynameservers?: string[]

              A list of IP addresses that will be used as DNS servers for the Pod. There can be at most 3 IP addresses specified. When the policy is set to "NONE", the list must contain at least one IP address, otherwise this property is optional. The servers listed will be combined to the base nameservers generated from the specified DNS policy with duplicate addresses removed.

            • Optional Readonlyoptions?: DnsOption[]

              List of objects where each object may have a name property (required) and a value property (optional). The contents in this property will be merged to the options generated from the specified DNS policy. Duplicate entries are removed.

            • Optional Readonlypolicy?: DnsPolicy

              Set DNS policy for the pod.

              If policy is set to None, other configuration must be supplied.

              DnsPolicy.CLUSTER_FIRST
              
            • Optional Readonlysearches?: string[]

              A list of DNS search domains for hostname lookup in the Pod. When specified, the provided list will be merged into the base search domain names generated from the chosen DNS policy. Duplicate domain names are removed.

              Kubernetes allows for at most 6 search domains.

            • Optional Readonlysubdomain?: string

              If specified, the fully qualified Pod hostname will be "...svc.".

              - No subdomain.
              
          • Optional ReadonlydockerRegistryAuth?: {
                apiGroup?: string;
                apiVersion?: string;
                envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
            }

            A secret containing docker credentials for authenticating to a registry.

            - No auth. Images are assumed to be publicly available.
            
            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • OptionalenvValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue
            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

          • Optional ReadonlyhostAliases?: HostAlias[]

            HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.

            io.k8s.api.core.v1.HostAlias

          • Optional ReadonlyhostNetwork?: boolean

            Host network for the pod.

            false
            
          • Optionalimage?: { pullPolicy?: string; repository?: string; tag?: string }
          • Optional ReadonlyinitContainers?: ContainerProps[]

            List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion.

            Init containers cannot currently be added ,removed or updated.

          • Optional Readonlyisolate?: boolean

            Isolates the pod. This will prevent any ingress or egress connections to / from this pod. You can however allow explicit connections post instantiation by using the .connections property.

            false
            
          • Optional Readonlymetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            Metadata that all persisted resources must have, which includes all objects users must create.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optional ReadonlypodMetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            The pod metadata of this workload.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optionalprobes?: {
                liveness?: { _toKube?: (cont: Container) => Probe };
                readiness?: { _toKube?: (cont: Container) => Probe };
                startup?: { _toKube?: (cont: Container) => Probe };
            }
            • Optional Readonlyliveness?: { _toKube?: (cont: Container) => Probe }

              Periodic probe of container liveness. Container will be restarted if the probe fails.

              - no liveness probe is defined
              
            • Optional Readonlyreadiness?: { _toKube?: (cont: Container) => Probe }

              Determines when the container is ready to serve traffic.

              - no readiness probe is defined
              
            • Optional Readonlystartup?: { _toKube?: (cont: Container) => Probe }

              StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully

              - If a port is provided, then knocks on that port
              to determine when the container is ready for readiness and
              liveness probe checks.
              Otherwise, no startup probe is defined.
          • OptionalreplicaCount?: number
          • Optionalresources?: {
                cpu?: { limit?: number; request?: number };
                memory?: { limit?: number; request?: number };
            }
          • Optional ReadonlyrestartPolicy?: RestartPolicy

            Restart policy for all containers within the pod.

          • Optionalscaling?: {
                cpuUtilPercent?: number;
                hpa?: {
                    maxReplicas?: number;
                    metadata?: {
                        annotations?: { [key: ...]: ... };
                        finalizers?: (...)[];
                        labels?: { [key: ...]: ... };
                        name?: string;
                        namespace?: string;
                        ownerReferences?: (...)[];
                        readonly [key: string]: any;
                    };
                    metrics?: Metric[];
                    minReplicas?: number;
                    scaleDown?: {
                        policies?: (...)[];
                        stabilizationWindow?: {
                            toDays?: ...;
                            toHours?: ...;
                            toHumanString?: ...;
                            toIsoString?: ...;
                            toMilliseconds?: ...;
                            toMinutes?: ...;
                            toSeconds?: ...;
                            unitLabel?: ...;
                        };
                        strategy?: ScalingStrategy;
                    };
                    scaleUp?: {
                        policies?: (...)[];
                        stabilizationWindow?: {
                            toDays?: ...;
                            toHours?: ...;
                            toHumanString?: ...;
                            toIsoString?: ...;
                            toMilliseconds?: ...;
                            toMinutes?: ...;
                            toSeconds?: ...;
                            unitLabel?: ...;
                        };
                        strategy?: ScalingStrategy;
                    };
                    target?: {
                        hasAutoscaler?: boolean;
                        markHasAutoscaler?: () => ...;
                        toScalingTarget?: () => ...;
                    };
                };
                maxReplicas?: number;
                memUtilPercent?: number;
                minReplicas?: number;
                target?: {
                    hasAutoscaler?: boolean;
                    markHasAutoscaler?: () => void;
                    toScalingTarget?: () => ScalingTarget;
                };
            }
            • Optional ReadonlycpuUtilPercent?: number
            • Optional Readonlyhpa?: {
                  maxReplicas?: number;
                  metadata?: {
                      annotations?: { [key: ...]: ... };
                      finalizers?: (...)[];
                      labels?: { [key: ...]: ... };
                      name?: string;
                      namespace?: string;
                      ownerReferences?: (...)[];
                      readonly [key: string]: any;
                  };
                  metrics?: Metric[];
                  minReplicas?: number;
                  scaleDown?: {
                      policies?: (...)[];
                      stabilizationWindow?: {
                          toDays?: ...;
                          toHours?: ...;
                          toHumanString?: ...;
                          toIsoString?: ...;
                          toMilliseconds?: ...;
                          toMinutes?: ...;
                          toSeconds?: ...;
                          unitLabel?: ...;
                      };
                      strategy?: ScalingStrategy;
                  };
                  scaleUp?: {
                      policies?: (...)[];
                      stabilizationWindow?: {
                          toDays?: ...;
                          toHours?: ...;
                          toHumanString?: ...;
                          toIsoString?: ...;
                          toMilliseconds?: ...;
                          toMinutes?: ...;
                          toSeconds?: ...;
                          unitLabel?: ...;
                      };
                      strategy?: ScalingStrategy;
                  };
                  target?: {
                      hasAutoscaler?: boolean;
                      markHasAutoscaler?: () => ...;
                      toScalingTarget?: () => ...;
                  };
              }

              Escape hatch

              • Optional ReadonlymaxReplicas?: number

                The maximum number of replicas that can be scaled up to.

              • Optional Readonlymetadata?: {
                    annotations?: { [key: ...]: ... };
                    finalizers?: (...)[];
                    labels?: { [key: ...]: ... };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: (...)[];
                    readonly [key: string]: any;
                }

                Metadata that all persisted resources must have, which includes all objects users must create.

                • Optional Readonlyannotations?: { [key: ...]: ... }

                  Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

                  - No annotations.
                  
                • Optional Readonlyfinalizers?: (...)[]

                  Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

                  Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

                • Optional Readonlylabels?: { [key: ...]: ... }

                  Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

                  - No labels.
                  
                • Optional Readonlyname?: string

                  The unique, namespace-global, name of this object inside the Kubernetes cluster.

                  Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

                  You can supply custom name allocation logic by overriding the chart.generateObjectName method.

                  If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

                  - an app-unique name generated by the chart
                  
                • Optional Readonlynamespace?: string

                  Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

                  undefined (will be assigned to the 'default' namespace)
                  
                • Optional ReadonlyownerReferences?: (...)[]

                  List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

                  Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

              • Optional Readonlymetrics?: Metric[]

                The metric conditions that trigger a scale up or scale down.

                - If metrics are not provided, then the target resource
                constraints (e.g. cpu limit) will be used as scaling metrics.
              • Optional ReadonlyminReplicas?: number

                The minimum number of replicas that can be scaled down to.

                Can be set to 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.

                1
                
              • Optional ReadonlyscaleDown?: {
                    policies?: (...)[];
                    stabilizationWindow?: {
                        toDays?: ...;
                        toHours?: ...;
                        toHumanString?: ...;
                        toIsoString?: ...;
                        toMilliseconds?: ...;
                        toMinutes?: ...;
                        toSeconds?: ...;
                        unitLabel?: ...;
                    };
                    strategy?: ScalingStrategy;
                }

                The scaling behavior when scaling down.

                - Scale down to minReplica count with a 5 minute stabilization window.
                
                • Optional Readonlypolicies?: (...)[]

                  The scaling policies.

                  * Scale up
                  * Increase no more than 4 pods per 60 seconds
                  * Double the number of pods per 60 seconds
                  * Scale down
                  * Decrease to minReplica count
                • Optional ReadonlystabilizationWindow?: {
                      toDays?: ...;
                      toHours?: ...;
                      toHumanString?: ...;
                      toIsoString?: ...;
                      toMilliseconds?: ...;
                      toMinutes?: ...;
                      toSeconds?: ...;
                      unitLabel?: ...;
                  }

                  Defines the window of past metrics that the autoscaler should consider when calculating wether or not autoscaling should occur.

                  Minimum duration is 1 second, max is 1 hour.

                  stabilizationWindow: Duration.minutes(30)
                  // Autoscaler considers the last 30 minutes of metrics when deciding whether to scale.
                  * On scale down no stabilization is performed.
                  * On scale up stabilization is performed for 5 minutes.
                • Optional Readonlystrategy?: ScalingStrategy

                  The strategy to use when scaling.

                  MAX_CHANGE
                  
              • Optional ReadonlyscaleUp?: {
                    policies?: (...)[];
                    stabilizationWindow?: {
                        toDays?: ...;
                        toHours?: ...;
                        toHumanString?: ...;
                        toIsoString?: ...;
                        toMilliseconds?: ...;
                        toMinutes?: ...;
                        toSeconds?: ...;
                        unitLabel?: ...;
                    };
                    strategy?: ScalingStrategy;
                }

                The scaling behavior when scaling up.

                - Is the higher of:
                * Increase no more than 4 pods per 60 seconds
                * Double the number of pods per 60 seconds
                • Optional Readonlypolicies?: (...)[]

                  The scaling policies.

                  * Scale up
                  * Increase no more than 4 pods per 60 seconds
                  * Double the number of pods per 60 seconds
                  * Scale down
                  * Decrease to minReplica count
                • Optional ReadonlystabilizationWindow?: {
                      toDays?: ...;
                      toHours?: ...;
                      toHumanString?: ...;
                      toIsoString?: ...;
                      toMilliseconds?: ...;
                      toMinutes?: ...;
                      toSeconds?: ...;
                      unitLabel?: ...;
                  }

                  Defines the window of past metrics that the autoscaler should consider when calculating wether or not autoscaling should occur.

                  Minimum duration is 1 second, max is 1 hour.

                  stabilizationWindow: Duration.minutes(30)
                  // Autoscaler considers the last 30 minutes of metrics when deciding whether to scale.
                  * On scale down no stabilization is performed.
                  * On scale up stabilization is performed for 5 minutes.
                • Optional Readonlystrategy?: ScalingStrategy

                  The strategy to use when scaling.

                  MAX_CHANGE
                  
              • Optional Readonlytarget?: {
                    hasAutoscaler?: boolean;
                    markHasAutoscaler?: () => ...;
                    toScalingTarget?: () => ...;
                }

                The workload to scale up or down.

                Scalable workload types:

                • Deployment
                • StatefulSet
                • OptionalhasAutoscaler?: boolean

                  If this is a target of an autoscaler.

                • OptionalmarkHasAutoscaler?: () => ...
                • OptionaltoScalingTarget?: () => ...
            • Optional ReadonlymaxReplicas?: number
            • Optional ReadonlymemUtilPercent?: number
            • Optional ReadonlyminReplicas?: number
            • Optional Readonlytarget?: {
                  hasAutoscaler?: boolean;
                  markHasAutoscaler?: () => void;
                  toScalingTarget?: () => ScalingTarget;
              }
              • OptionalhasAutoscaler?: boolean

                If this is a target of an autoscaler.

              • OptionalmarkHasAutoscaler?: () => void
              • OptionaltoScalingTarget?: () => ScalingTarget
          • Optional ReadonlysecurityContext?: {
                ensureNonRoot?: boolean;
                fsGroup?: number;
                fsGroupChangePolicy?: FsGroupChangePolicy;
                group?: number;
                sysctls?: Sysctl[];
                user?: number;
            }

            SecurityContext holds pod-level security attributes and common container settings.

            fsGroupChangePolicy: FsGroupChangePolicy.FsGroupChangePolicy.ALWAYS
            ensureNonRoot: true
            • Optional ReadonlyensureNonRoot?: boolean

              Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

              true
              
            • Optional ReadonlyfsGroup?: number

              Modify the ownership and permissions of pod volumes to this GID.

              - Volume ownership is not changed.
              
            • Optional ReadonlyfsGroupChangePolicy?: FsGroupChangePolicy

              Defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir.

              FsGroupChangePolicy.ALWAYS
              
            • Optional Readonlygroup?: number

              The GID to run the entrypoint of the container process.

              - Group configured by container runtime
              
            • Optional Readonlysysctls?: Sysctl[]

              Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.

              - No sysctls
              
            • Optional Readonlyuser?: number

              The UID to run the entrypoint of the container process.

              - User specified in image metadata
              
          • Optional Readonlyselect?: boolean

            Automatically allocates a pod label selector for this workload and add it to the pod metadata. This ensures this workload manages pods created by its pod template.

            true
            
          • Optional ReadonlyserviceAccount?: {
                apiGroup?: string;
                apiVersion?: string;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
                toSubjectConfiguration?: () => SubjectConfiguration;
            }

            A service account provides an identity for processes that run in a Pod.

            When you (a human) access the cluster (for example, using kubectl), you are authenticated by the apiserver as a particular User Account (currently this is usually admin, unless your cluster administrator has customized your cluster). Processes in containers inside pods can also contact the apiserver. When they do, they are authenticated as a particular Service Account (for example, default).

            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

            • OptionaltoSubjectConfiguration?: () => SubjectConfiguration
          • Optional ReadonlyshareProcessNamespace?: boolean

            When process namespace sharing is enabled, processes in a container are visible to all other containers in the same pod.

          • Optional Readonlyspread?: boolean

            Automatically spread pods across hostname and zones.

          • Optional ReadonlyterminationGracePeriod?: {
                toDays?: (opts?: TimeConversionOptions) => number;
                toHours?: (opts?: TimeConversionOptions) => number;
                toHumanString?: () => string;
                toIsoString?: () => string;
                toMilliseconds?: (opts?: TimeConversionOptions) => number;
                toMinutes?: (opts?: TimeConversionOptions) => number;
                toSeconds?: (opts?: TimeConversionOptions) => number;
                unitLabel?: () => string;
            }

            Grace period until the pod is terminated

            Duration.seconds(30)
            
            • OptionaltoDays?: (opts?: TimeConversionOptions) => number
            • OptionaltoHours?: (opts?: TimeConversionOptions) => number
            • OptionaltoHumanString?: () => string
            • OptionaltoIsoString?: () => string
            • OptionaltoMilliseconds?: (opts?: TimeConversionOptions) => number
            • OptionaltoMinutes?: (opts?: TimeConversionOptions) => number
            • OptionaltoSeconds?: (opts?: TimeConversionOptions) => number
            • OptionalunitLabel?: () => string
          • OptionalverticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] }
          • Optional Readonlyvolumes?: Volume[]

            List of volumes that can be mounted by containers belonging to the pod.

            You can also add volumes later using podSpec.addVolume()

        • OptionalapiAppConfig?: {
              ccu?: {
                  apiUrl?: string;
                  forceDocker?: boolean;
                  newrelicDisable?: boolean;
                  webUrl?: string;
              };
              celery?: { alwaysEager?: boolean };
              connect?: { instanceId?: string };
              django?: {
                  accountAllowRegistration?: boolean;
                  allowedHosts?: string[];
                  corsOriginWhitelist?: string[];
                  csrfCookieSecure?: boolean;
                  csrfTrustedOrigins?: string[];
                  emailBackend?: string;
                  secureSslRedirect?: boolean;
                  sessionCookieSecure?: boolean;
                  settingsModule?: string;
              };
              elasticSearch?: { host?: string };
              langchain?: { endpoint?: string; project?: string; tracingV2?: boolean };
              newRelic?: {
                  configFile?: string;
                  environment?:
                      | "local"
                      | "development"
                      | "staging"
                      | "production"
                      | "production-au"
                      | "test";
              };
              phone?: { checkTimezone?: boolean };
              rag?: {
                  chatModel?: string;
                  documentEmbedModel?: string;
                  queryEmbedModel?: string;
              };
              sentry?: { traceExcludeUrls?: string[] };
          }
        • OptionalapiAppSecrets?: {
              aws?: {
                  accessKeyId?: string;
                  defaultRegion?: string;
                  dynamoStage?: string;
                  secretAccessKey?: string;
              };
              cloudfront?: { privateKey?: string; publicKey?: string };
              connectFirst?: { password?: string };
              django?: {
                  adminUrl?: string;
                  mandrill?: { apiKey?: string };
                  secretKey?: string;
              };
              ipstack?: { apiKey?: string };
              jwt?: { privateKey?: string; publicKey?: string };
              langchain?: { apiKey?: string };
              notifications?: {
                  slack?: {
                      chat?: { webhookUrl?: string };
                      default?: { webhookUrl?: string };
                  };
              };
              postgres?: {
                  dbname?: string;
                  host?: string;
                  hostReplica?: string;
                  password?: string;
                  port?: string;
                  user?: string;
              };
              redis?: { host?: string; hostReplicas?: string[] };
              saml?: { awsProvider?: string; awsRole?: string };
              stripe?: { apiKey?: string };
              zendesk?: { apiKey?: string };
              [key: string]: unknown;
          }
        • OptionalapiImage?: { pullPolicy?: string; repository?: string; tag?: string }
        • Optionalasgi?: {
              automountServiceAccountToken?: boolean;
              containerDefaults?: {
                  args?: string[];
                  command?: string[];
                  envFrom?: EnvFrom[];
                  envVariables?: {
                      [key: string]: undefined | { value?: any; valueFrom?: any };
                  };
                  image?: string;
                  imagePullPolicy?: ImagePullPolicy;
                  lifecycle?: {
                      postStart?: { _toKube?: (cont: ...) => ... };
                      preStop?: { _toKube?: (cont: ...) => ... };
                  };
                  liveness?: { _toKube?: (cont: Container) => Probe };
                  name?: string;
                  port?: number;
                  portNumber?: number;
                  ports?: ContainerPort[];
                  readiness?: { _toKube?: (cont: Container) => Probe };
                  resources?: {
                      cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                      ephemeralStorage?: {
                          limit?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                          request?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                      };
                      memory?: {
                          limit?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                          request?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                      };
                  };
                  restartPolicy?: ContainerRestartPolicy;
                  securityContext?: {
                      allowPrivilegeEscalation?: boolean;
                      capabilities?: { add?: (...)[]; drop?: (...)[] };
                      ensureNonRoot?: boolean;
                      group?: number;
                      privileged?: boolean;
                      readOnlyRootFilesystem?: boolean;
                      seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                      user?: number;
                  };
                  startup?: { _toKube?: (cont: Container) => Probe };
                  volumeMounts?: VolumeMount[];
                  workingDir?: string;
              };
              containers?: ContainerProps[];
              dns?: {
                  hostname?: string;
                  hostnameAsFQDN?: boolean;
                  nameservers?: string[];
                  options?: DnsOption[];
                  policy?: DnsPolicy;
                  searches?: string[];
                  subdomain?: string;
              };
              dockerRegistryAuth?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
              };
              hostAliases?: HostAlias[];
              hostNetwork?: boolean;
              image?: { pullPolicy?: string; repository?: string; tag?: string };
              initContainers?: ContainerProps[];
              isolate?: boolean;
              metadata?: {
                  annotations?: { [key: string]: undefined | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              podMetadata?: {
                  annotations?: { [key: string]: undefined
                  | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              probes?: {
                  liveness?: { _toKube?: (cont: Container) => Probe };
                  readiness?: { _toKube?: (cont: Container) => Probe };
                  startup?: { _toKube?: (cont: Container) => Probe };
              };
              replicaCount?: number;
              resources?: {
                  cpu?: { limit?: number; request?: number };
                  memory?: { limit?: number; request?: number };
              };
              restartPolicy?: RestartPolicy;
              scaling?: {
                  cpuUtilPercent?: number;
                  hpa?: {
                      maxReplicas?: number;
                      metadata?: {
                          annotations?: { [key: ...]: ... };
                          finalizers?: (...)[];
                          labels?: { [key: ...]: ... };
                          name?: string;
                          namespace?: string;
                          ownerReferences?: (...)[];
                          readonly [key: string]: any;
                      };
                      metrics?: Metric[];
                      minReplicas?: number;
                      scaleDown?: {
                          policies?: (...)[];
                          stabilizationWindow?: {
                              toDays?: ...;
                              toHours?: ...;
                              toHumanString?: ...;
                              toIsoString?: ...;
                              toMilliseconds?: ...;
                              toMinutes?: ...;
                              toSeconds?: ...;
                              unitLabel?: ...;
                          };
                          strategy?: ScalingStrategy;
                      };
                      scaleUp?: {
                          policies?: (...)[];
                          stabilizationWindow?: {
                              toDays?: ...;
                              toHours?: ...;
                              toHumanString?: ...;
                              toIsoString?: ...;
                              toMilliseconds?: ...;
                              toMinutes?: ...;
                              toSeconds?: ...;
                              unitLabel?: ...;
                          };
                          strategy?: ScalingStrategy;
                      };
                      target?: {
                          hasAutoscaler?: boolean;
                          markHasAutoscaler?: () => ...;
                          toScalingTarget?: () => ...;
                      };
                  };
                  maxReplicas?: number;
                  memUtilPercent?: number;
                  minReplicas?: number;
                  target?: {
                      hasAutoscaler?: boolean;
                      markHasAutoscaler?: () => void;
                      toScalingTarget?: () => ScalingTarget;
                  };
              };
              securityContext?: {
                  ensureNonRoot?: boolean;
                  fsGroup?: number;
                  fsGroupChangePolicy?: FsGroupChangePolicy;
                  group?: number;
                  sysctls?: Sysctl[];
                  user?: number;
              };
              select?: boolean;
              serviceAccount?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
                  toSubjectConfiguration?: () => SubjectConfiguration;
              };
              shareProcessNamespace?: boolean;
              spread?: boolean;
              terminationGracePeriod?: {
                  toDays?: (opts?: TimeConversionOptions) => number;
                  toHours?: (opts?: TimeConversionOptions) => number;
                  toHumanString?: () => string;
                  toIsoString?: () => string;
                  toMilliseconds?: (opts?: TimeConversionOptions) => number;
                  toMinutes?: (opts?: TimeConversionOptions) => number;
                  toSeconds?: (opts?: TimeConversionOptions) => number;
                  unitLabel?: () => string;
              };
              verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
              volumes?: Volume[];
              workers?: number;
          }
          • Optional ReadonlyautomountServiceAccountToken?: boolean

            Indicates whether a service account token should be automatically mounted.

          • OptionalcontainerDefaults?: {
                args?: string[];
                command?: string[];
                envFrom?: EnvFrom[];
                envVariables?: {
                    [key: string]: undefined | { value?: any; valueFrom?: any };
                };
                image?: string;
                imagePullPolicy?: ImagePullPolicy;
                lifecycle?: {
                    postStart?: { _toKube?: (cont: ...) => ... };
                    preStop?: { _toKube?: (cont: ...) => ... };
                };
                liveness?: { _toKube?: (cont: Container) => Probe };
                name?: string;
                port?: number;
                portNumber?: number;
                ports?: ContainerPort[];
                readiness?: { _toKube?: (cont: Container) => Probe };
                resources?: {
                    cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                    ephemeralStorage?: {
                        limit?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                        request?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                    };
                    memory?: {
                        limit?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                        request?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                    };
                };
                restartPolicy?: ContainerRestartPolicy;
                securityContext?: {
                    allowPrivilegeEscalation?: boolean;
                    capabilities?: { add?: (...)[]; drop?: (...)[] };
                    ensureNonRoot?: boolean;
                    group?: number;
                    privileged?: boolean;
                    readOnlyRootFilesystem?: boolean;
                    seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                    user?: number;
                };
                startup?: { _toKube?: (cont: Container) => Probe };
                volumeMounts?: VolumeMount[];
                workingDir?: string;
            }
            • Optional Readonlyargs?: string[]

              Arguments to the entrypoint. The docker image's CMD is used if command is not provided.

              Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.

              Cannot be updated.

            • Optional Readonlycommand?: string[]

              Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

              - The docker image's ENTRYPOINT.
              
            • Optional ReadonlyenvFrom?: EnvFrom[]

              List of sources to populate environment variables in the container. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by the envVariables property with a duplicate key will take precedence.

              - No sources.
              
            • Optional ReadonlyenvVariables?: { [key: string]: undefined | { value?: any; valueFrom?: any } }

              Environment variables to set in the container.

              - No environment variables.
              
            • Optional Readonlyimage?: string

              Docker image name.

            • Optional ReadonlyimagePullPolicy?: ImagePullPolicy

              Image pull policy for this container

              ImagePullPolicy.ALWAYS
              
            • Optional Readonlylifecycle?: {
                  postStart?: { _toKube?: (cont: ...) => ... };
                  preStop?: { _toKube?: (cont: ...) => ... };
              }

              Describes actions that the management system should take in response to container lifecycle events.

              • Optional ReadonlypostStart?: { _toKube?: (cont: ...) => ... }

                This hook is executed immediately after a container is created. However, there is no guarantee that the hook will execute before the container ENTRYPOINT.

                - No post start handler.
                
              • Optional ReadonlypreStop?: { _toKube?: (cont: ...) => ... }

                This hook is called immediately before a container is terminated due to an API request or management event such as a liveness/startup probe failure, preemption, resource contention and others. A call to the PreStop hook fails if the container is already in a terminated or completed state and the hook must complete before the TERM signal to stop the container can be sent. The Pod's termination grace period countdown begins before the PreStop hook is executed, so regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. No parameters are passed to the handler.

            • Optional Readonlyliveness?: { _toKube?: (cont: Container) => Probe }

              Periodic probe of container liveness. Container will be restarted if the probe fails.

              - no liveness probe is defined
              
            • Optional Readonlyname?: string

              Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.

              'main'
              
            • Optional Readonlyport?: number
              • use portNumber.
            • Optional ReadonlyportNumber?: number

              Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.

              This is a convinience property if all you need a single TCP numbered port. In case more advanced configuartion is required, use the ports property.

              This port is added to the list of ports mentioned in the ports property.

              • Only the ports mentiond in the ports property are exposed.
            • Optional Readonlyports?: ContainerPort[]

              List of ports to expose from this container.

              • Only the port mentioned in the portNumber property is exposed.
            • Optional Readonlyreadiness?: { _toKube?: (cont: Container) => Probe }

              Determines when the container is ready to serve traffic.

              - no readiness probe is defined
              
            • Optional Readonlyresources?: {
                  cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                  ephemeralStorage?: {
                      limit?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                      request?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                  };
                  memory?: {
                      limit?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                      request?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                  };
              }

              Compute resources (CPU and memory requests and limits) required by the container

              cpu:
              request: 1000 millis
              limit: 1500 millis
              memory:
              request: 512 mebibytes
              limit: 2048 mebibytes
            • Optional ReadonlyrestartPolicy?: ContainerRestartPolicy

              Kubelet will start init containers with restartPolicy=Always in the order with other init containers, but instead of waiting for its completion, it will wait for the container startup completion Currently, only accepted value is Always

              - no restart policy is defined and the pod restart policy is applied
              
            • Optional ReadonlysecurityContext?: {
                  allowPrivilegeEscalation?: boolean;
                  capabilities?: { add?: (...)[]; drop?: (...)[] };
                  ensureNonRoot?: boolean;
                  group?: number;
                  privileged?: boolean;
                  readOnlyRootFilesystem?: boolean;
                  seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                  user?: number;
              }

              SecurityContext defines the security options the container should be run with. If set, the fields override equivalent fields of the pod's security context.

              ensureNonRoot: true
              privileged: false
              readOnlyRootFilesystem: true
              allowPrivilegeEscalation: false
              user: 25000
              group: 26000
              • Optional ReadonlyallowPrivilegeEscalation?: boolean

                Whether a process can gain more privileges than its parent process.

                false
                
              • Optional Readonlycapabilities?: { add?: (...)[]; drop?: (...)[] }

                POSIX capabilities for running containers

                none
                
                • Optional Readonlyadd?: (...)[]

                  Added capabilities

                • Optional Readonlydrop?: (...)[]

                  Removed capabilities

              • Optional ReadonlyensureNonRoot?: boolean

                Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

                true
                
              • Optional Readonlygroup?: number

                The GID to run the entrypoint of the container process.

                - 26000. An arbitrary number bigger than 9999 is selected here.
                This is so that the container is blocked to access host files even if
                somehow it manages to get access to host file system.
              • Optional Readonlyprivileged?: boolean

                Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host.

                false
                
              • Optional ReadonlyreadOnlyRootFilesystem?: boolean

                Whether this container has a read-only root filesystem.

                true
                
              • Optional ReadonlyseccompProfile?: { localhostProfile?: string; type?: SeccompProfileType }

                Container's seccomp profile settings. Only one profile source may be set

                none
                
                • Optional ReadonlylocalhostProfile?: string

                  localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is "Localhost".

                  - empty string
                  
                • Optional Readonlytype?: SeccompProfileType

                  Indicates which kind of seccomp profile will be applied

              • Optional Readonlyuser?: number

                The UID to run the entrypoint of the container process.

                - 25000. An arbitrary number bigger than 9999 is selected here.
                This is so that the container is blocked to access host files even if
                somehow it manages to get access to host file system.
            • Optional Readonlystartup?: { _toKube?: (cont: Container) => Probe }

              StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully

              - If a port is provided, then knocks on that port
              to determine when the container is ready for readiness and
              liveness probe checks.
              Otherwise, no startup probe is defined.
            • Optional ReadonlyvolumeMounts?: VolumeMount[]

              Pod volumes to mount into the container's filesystem. Cannot be updated.

            • Optional ReadonlyworkingDir?: string

              Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.

              - The container runtime's default.
              
          • Optional Readonlycontainers?: ContainerProps[]

            List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod.

            You can add additionnal containers using podSpec.addContainer()

            - No containers. Note that a pod spec must include at least one container.
            
          • Optional Readonlydns?: {
                hostname?: string;
                hostnameAsFQDN?: boolean;
                nameservers?: string[];
                options?: DnsOption[];
                policy?: DnsPolicy;
                searches?: string[];
                subdomain?: string;
            }

            DNS settings for the pod.

            policy: DnsPolicy.CLUSTER_FIRST
            hostnameAsFQDN: false
            • Optional Readonlyhostname?: string

              Specifies the hostname of the Pod.

              - Set to a system-defined value.
              
            • Optional ReadonlyhostnameAsFQDN?: boolean

              If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect.

              false
              
            • Optional Readonlynameservers?: string[]

              A list of IP addresses that will be used as DNS servers for the Pod. There can be at most 3 IP addresses specified. When the policy is set to "NONE", the list must contain at least one IP address, otherwise this property is optional. The servers listed will be combined to the base nameservers generated from the specified DNS policy with duplicate addresses removed.

            • Optional Readonlyoptions?: DnsOption[]

              List of objects where each object may have a name property (required) and a value property (optional). The contents in this property will be merged to the options generated from the specified DNS policy. Duplicate entries are removed.

            • Optional Readonlypolicy?: DnsPolicy

              Set DNS policy for the pod.

              If policy is set to None, other configuration must be supplied.

              DnsPolicy.CLUSTER_FIRST
              
            • Optional Readonlysearches?: string[]

              A list of DNS search domains for hostname lookup in the Pod. When specified, the provided list will be merged into the base search domain names generated from the chosen DNS policy. Duplicate domain names are removed.

              Kubernetes allows for at most 6 search domains.

            • Optional Readonlysubdomain?: string

              If specified, the fully qualified Pod hostname will be "...svc.".

              - No subdomain.
              
          • Optional ReadonlydockerRegistryAuth?: {
                apiGroup?: string;
                apiVersion?: string;
                envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
            }

            A secret containing docker credentials for authenticating to a registry.

            - No auth. Images are assumed to be publicly available.
            
            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • OptionalenvValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue
            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

          • Optional ReadonlyhostAliases?: HostAlias[]

            HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.

            io.k8s.api.core.v1.HostAlias

          • Optional ReadonlyhostNetwork?: boolean

            Host network for the pod.

            false
            
          • Optionalimage?: { pullPolicy?: string; repository?: string; tag?: string }
          • Optional ReadonlyinitContainers?: ContainerProps[]

            List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion.

            Init containers cannot currently be added ,removed or updated.

          • Optional Readonlyisolate?: boolean

            Isolates the pod. This will prevent any ingress or egress connections to / from this pod. You can however allow explicit connections post instantiation by using the .connections property.

            false
            
          • Optional Readonlymetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            Metadata that all persisted resources must have, which includes all objects users must create.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optional ReadonlypodMetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            The pod metadata of this workload.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optionalprobes?: {
                liveness?: { _toKube?: (cont: Container) => Probe };
                readiness?: { _toKube?: (cont: Container) => Probe };
                startup?: { _toKube?: (cont: Container) => Probe };
            }
            • Optional Readonlyliveness?: { _toKube?: (cont: Container) => Probe }

              Periodic probe of container liveness. Container will be restarted if the probe fails.

              - no liveness probe is defined
              
            • Optional Readonlyreadiness?: { _toKube?: (cont: Container) => Probe }

              Determines when the container is ready to serve traffic.

              - no readiness probe is defined
              
            • Optional Readonlystartup?: { _toKube?: (cont: Container) => Probe }

              StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully

              - If a port is provided, then knocks on that port
              to determine when the container is ready for readiness and
              liveness probe checks.
              Otherwise, no startup probe is defined.
          • OptionalreplicaCount?: number
          • Optionalresources?: {
                cpu?: { limit?: number; request?: number };
                memory?: { limit?: number; request?: number };
            }
          • Optional ReadonlyrestartPolicy?: RestartPolicy

            Restart policy for all containers within the pod.

          • Optionalscaling?: {
                cpuUtilPercent?: number;
                hpa?: {
                    maxReplicas?: number;
                    metadata?: {
                        annotations?: { [key: ...]: ... };
                        finalizers?: (...)[];
                        labels?: { [key: ...]: ... };
                        name?: string;
                        namespace?: string;
                        ownerReferences?: (...)[];
                        readonly [key: string]: any;
                    };
                    metrics?: Metric[];
                    minReplicas?: number;
                    scaleDown?: {
                        policies?: (...)[];
                        stabilizationWindow?: {
                            toDays?: ...;
                            toHours?: ...;
                            toHumanString?: ...;
                            toIsoString?: ...;
                            toMilliseconds?: ...;
                            toMinutes?: ...;
                            toSeconds?: ...;
                            unitLabel?: ...;
                        };
                        strategy?: ScalingStrategy;
                    };
                    scaleUp?: {
                        policies?: (...)[];
                        stabilizationWindow?: {
                            toDays?: ...;
                            toHours?: ...;
                            toHumanString?: ...;
                            toIsoString?: ...;
                            toMilliseconds?: ...;
                            toMinutes?: ...;
                            toSeconds?: ...;
                            unitLabel?: ...;
                        };
                        strategy?: ScalingStrategy;
                    };
                    target?: {
                        hasAutoscaler?: boolean;
                        markHasAutoscaler?: () => ...;
                        toScalingTarget?: () => ...;
                    };
                };
                maxReplicas?: number;
                memUtilPercent?: number;
                minReplicas?: number;
                target?: {
                    hasAutoscaler?: boolean;
                    markHasAutoscaler?: () => void;
                    toScalingTarget?: () => ScalingTarget;
                };
            }
            • Optional ReadonlycpuUtilPercent?: number
            • Optional Readonlyhpa?: {
                  maxReplicas?: number;
                  metadata?: {
                      annotations?: { [key: ...]: ... };
                      finalizers?: (...)[];
                      labels?: { [key: ...]: ... };
                      name?: string;
                      namespace?: string;
                      ownerReferences?: (...)[];
                      readonly [key: string]: any;
                  };
                  metrics?: Metric[];
                  minReplicas?: number;
                  scaleDown?: {
                      policies?: (...)[];
                      stabilizationWindow?: {
                          toDays?: ...;
                          toHours?: ...;
                          toHumanString?: ...;
                          toIsoString?: ...;
                          toMilliseconds?: ...;
                          toMinutes?: ...;
                          toSeconds?: ...;
                          unitLabel?: ...;
                      };
                      strategy?: ScalingStrategy;
                  };
                  scaleUp?: {
                      policies?: (...)[];
                      stabilizationWindow?: {
                          toDays?: ...;
                          toHours?: ...;
                          toHumanString?: ...;
                          toIsoString?: ...;
                          toMilliseconds?: ...;
                          toMinutes?: ...;
                          toSeconds?: ...;
                          unitLabel?: ...;
                      };
                      strategy?: ScalingStrategy;
                  };
                  target?: {
                      hasAutoscaler?: boolean;
                      markHasAutoscaler?: () => ...;
                      toScalingTarget?: () => ...;
                  };
              }

              Escape hatch

              • Optional ReadonlymaxReplicas?: number

                The maximum number of replicas that can be scaled up to.

              • Optional Readonlymetadata?: {
                    annotations?: { [key: ...]: ... };
                    finalizers?: (...)[];
                    labels?: { [key: ...]: ... };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: (...)[];
                    readonly [key: string]: any;
                }

                Metadata that all persisted resources must have, which includes all objects users must create.

                • Optional Readonlyannotations?: { [key: ...]: ... }

                  Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

                  - No annotations.
                  
                • Optional Readonlyfinalizers?: (...)[]

                  Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

                  Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

                • Optional Readonlylabels?: { [key: ...]: ... }

                  Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

                  - No labels.
                  
                • Optional Readonlyname?: string

                  The unique, namespace-global, name of this object inside the Kubernetes cluster.

                  Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

                  You can supply custom name allocation logic by overriding the chart.generateObjectName method.

                  If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

                  - an app-unique name generated by the chart
                  
                • Optional Readonlynamespace?: string

                  Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

                  undefined (will be assigned to the 'default' namespace)
                  
                • Optional ReadonlyownerReferences?: (...)[]

                  List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

                  Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

              • Optional Readonlymetrics?: Metric[]

                The metric conditions that trigger a scale up or scale down.

                - If metrics are not provided, then the target resource
                constraints (e.g. cpu limit) will be used as scaling metrics.
              • Optional ReadonlyminReplicas?: number

                The minimum number of replicas that can be scaled down to.

                Can be set to 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.

                1
                
              • Optional ReadonlyscaleDown?: {
                    policies?: (...)[];
                    stabilizationWindow?: {
                        toDays?: ...;
                        toHours?: ...;
                        toHumanString?: ...;
                        toIsoString?: ...;
                        toMilliseconds?: ...;
                        toMinutes?: ...;
                        toSeconds?: ...;
                        unitLabel?: ...;
                    };
                    strategy?: ScalingStrategy;
                }

                The scaling behavior when scaling down.

                - Scale down to minReplica count with a 5 minute stabilization window.
                
                • Optional Readonlypolicies?: (...)[]

                  The scaling policies.

                  * Scale up
                  * Increase no more than 4 pods per 60 seconds
                  * Double the number of pods per 60 seconds
                  * Scale down
                  * Decrease to minReplica count
                • Optional ReadonlystabilizationWindow?: {
                      toDays?: ...;
                      toHours?: ...;
                      toHumanString?: ...;
                      toIsoString?: ...;
                      toMilliseconds?: ...;
                      toMinutes?: ...;
                      toSeconds?: ...;
                      unitLabel?: ...;
                  }

                  Defines the window of past metrics that the autoscaler should consider when calculating wether or not autoscaling should occur.

                  Minimum duration is 1 second, max is 1 hour.

                  stabilizationWindow: Duration.minutes(30)
                  // Autoscaler considers the last 30 minutes of metrics when deciding whether to scale.
                  * On scale down no stabilization is performed.
                  * On scale up stabilization is performed for 5 minutes.
                • Optional Readonlystrategy?: ScalingStrategy

                  The strategy to use when scaling.

                  MAX_CHANGE
                  
              • Optional ReadonlyscaleUp?: {
                    policies?: (...)[];
                    stabilizationWindow?: {
                        toDays?: ...;
                        toHours?: ...;
                        toHumanString?: ...;
                        toIsoString?: ...;
                        toMilliseconds?: ...;
                        toMinutes?: ...;
                        toSeconds?: ...;
                        unitLabel?: ...;
                    };
                    strategy?: ScalingStrategy;
                }

                The scaling behavior when scaling up.

                - Is the higher of:
                * Increase no more than 4 pods per 60 seconds
                * Double the number of pods per 60 seconds
                • Optional Readonlypolicies?: (...)[]

                  The scaling policies.

                  * Scale up
                  * Increase no more than 4 pods per 60 seconds
                  * Double the number of pods per 60 seconds
                  * Scale down
                  * Decrease to minReplica count
                • Optional ReadonlystabilizationWindow?: {
                      toDays?: ...;
                      toHours?: ...;
                      toHumanString?: ...;
                      toIsoString?: ...;
                      toMilliseconds?: ...;
                      toMinutes?: ...;
                      toSeconds?: ...;
                      unitLabel?: ...;
                  }

                  Defines the window of past metrics that the autoscaler should consider when calculating wether or not autoscaling should occur.

                  Minimum duration is 1 second, max is 1 hour.

                  stabilizationWindow: Duration.minutes(30)
                  // Autoscaler considers the last 30 minutes of metrics when deciding whether to scale.
                  * On scale down no stabilization is performed.
                  * On scale up stabilization is performed for 5 minutes.
                • Optional Readonlystrategy?: ScalingStrategy

                  The strategy to use when scaling.

                  MAX_CHANGE
                  
              • Optional Readonlytarget?: {
                    hasAutoscaler?: boolean;
                    markHasAutoscaler?: () => ...;
                    toScalingTarget?: () => ...;
                }

                The workload to scale up or down.

                Scalable workload types:

                • Deployment
                • StatefulSet
                • OptionalhasAutoscaler?: boolean

                  If this is a target of an autoscaler.

                • OptionalmarkHasAutoscaler?: () => ...
                • OptionaltoScalingTarget?: () => ...
            • Optional ReadonlymaxReplicas?: number
            • Optional ReadonlymemUtilPercent?: number
            • Optional ReadonlyminReplicas?: number
            • Optional Readonlytarget?: {
                  hasAutoscaler?: boolean;
                  markHasAutoscaler?: () => void;
                  toScalingTarget?: () => ScalingTarget;
              }
              • OptionalhasAutoscaler?: boolean

                If this is a target of an autoscaler.

              • OptionalmarkHasAutoscaler?: () => void
              • OptionaltoScalingTarget?: () => ScalingTarget
          • Optional ReadonlysecurityContext?: {
                ensureNonRoot?: boolean;
                fsGroup?: number;
                fsGroupChangePolicy?: FsGroupChangePolicy;
                group?: number;
                sysctls?: Sysctl[];
                user?: number;
            }

            SecurityContext holds pod-level security attributes and common container settings.

            fsGroupChangePolicy: FsGroupChangePolicy.FsGroupChangePolicy.ALWAYS
            ensureNonRoot: true
            • Optional ReadonlyensureNonRoot?: boolean

              Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

              true
              
            • Optional ReadonlyfsGroup?: number

              Modify the ownership and permissions of pod volumes to this GID.

              - Volume ownership is not changed.
              
            • Optional ReadonlyfsGroupChangePolicy?: FsGroupChangePolicy

              Defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir.

              FsGroupChangePolicy.ALWAYS
              
            • Optional Readonlygroup?: number

              The GID to run the entrypoint of the container process.

              - Group configured by container runtime
              
            • Optional Readonlysysctls?: Sysctl[]

              Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.

              - No sysctls
              
            • Optional Readonlyuser?: number

              The UID to run the entrypoint of the container process.

              - User specified in image metadata
              
          • Optional Readonlyselect?: boolean

            Automatically allocates a pod label selector for this workload and add it to the pod metadata. This ensures this workload manages pods created by its pod template.

            true
            
          • Optional ReadonlyserviceAccount?: {
                apiGroup?: string;
                apiVersion?: string;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
                toSubjectConfiguration?: () => SubjectConfiguration;
            }

            A service account provides an identity for processes that run in a Pod.

            When you (a human) access the cluster (for example, using kubectl), you are authenticated by the apiserver as a particular User Account (currently this is usually admin, unless your cluster administrator has customized your cluster). Processes in containers inside pods can also contact the apiserver. When they do, they are authenticated as a particular Service Account (for example, default).

            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

            • OptionaltoSubjectConfiguration?: () => SubjectConfiguration
          • Optional ReadonlyshareProcessNamespace?: boolean

            When process namespace sharing is enabled, processes in a container are visible to all other containers in the same pod.

          • Optional Readonlyspread?: boolean

            Automatically spread pods across hostname and zones.

          • Optional ReadonlyterminationGracePeriod?: {
                toDays?: (opts?: TimeConversionOptions) => number;
                toHours?: (opts?: TimeConversionOptions) => number;
                toHumanString?: () => string;
                toIsoString?: () => string;
                toMilliseconds?: (opts?: TimeConversionOptions) => number;
                toMinutes?: (opts?: TimeConversionOptions) => number;
                toSeconds?: (opts?: TimeConversionOptions) => number;
                unitLabel?: () => string;
            }

            Grace period until the pod is terminated

            Duration.seconds(30)
            
            • OptionaltoDays?: (opts?: TimeConversionOptions) => number
            • OptionaltoHours?: (opts?: TimeConversionOptions) => number
            • OptionaltoHumanString?: () => string
            • OptionaltoIsoString?: () => string
            • OptionaltoMilliseconds?: (opts?: TimeConversionOptions) => number
            • OptionaltoMinutes?: (opts?: TimeConversionOptions) => number
            • OptionaltoSeconds?: (opts?: TimeConversionOptions) => number
            • OptionalunitLabel?: () => string
          • OptionalverticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] }
          • Optional Readonlyvolumes?: Volume[]

            List of volumes that can be mounted by containers belonging to the pod.

            You can also add volumes later using podSpec.addVolume()

          • Optionalworkers?: number
        • Optionalcelery?: {
              [key: string]:
                  | undefined
                  | {
                      args?: string[];
                      automountServiceAccountToken?: boolean;
                      concurrency?: number;
                      containerDefaults?: {
                          args?: string[];
                          command?: string[];
                          envFrom?: EnvFrom[];
                          envVariables?: {
                              [key: string]: undefined
                              | { value?: ...; valueFrom?: ... };
                          };
                          image?: string;
                          imagePullPolicy?: ImagePullPolicy;
                          lifecycle?: {
                              postStart?: { _toKube?: ... };
                              preStop?: { _toKube?: ... };
                          };
                          liveness?: { _toKube?: (cont: ...) => ... };
                          name?: string;
                          port?: number;
                          portNumber?: number;
                          ports?: ContainerPort[];
                          readiness?: { _toKube?: (cont: ...) => ... };
                          resources?: {
                              cpu?: { limit?: ...; request?: ... };
                              ephemeralStorage?: { limit?: ...; request?: ... };
                              memory?: { limit?: ...; request?: ... };
                          };
                          restartPolicy?: ContainerRestartPolicy;
                          securityContext?: {
                              allowPrivilegeEscalation?: boolean;
                              capabilities?: { add?: ...; drop?: ... };
                              ensureNonRoot?: boolean;
                              group?: number;
                              privileged?: boolean;
                              readOnlyRootFilesystem?: boolean;
                              seccompProfile?: { localhostProfile?: ...; type?: ... };
                              user?: number;
                          };
                          startup?: { _toKube?: (cont: ...) => ... };
                          volumeMounts?: VolumeMount[];
                          workingDir?: string;
                      };
                      containers?: ContainerProps[];
                      dns?: {
                          hostname?: string;
                          hostnameAsFQDN?: boolean;
                          nameservers?: string[];
                          options?: DnsOption[];
                          policy?: DnsPolicy;
                          searches?: string[];
                          subdomain?: string;
                      };
                      dockerRegistryAuth?: {
                          apiGroup?: string;
                          apiVersion?: string;
                          envValue?: (
                              key: string,
                              options?: EnvValueFromSecretOptions,
                          ) => EnvValue;
                          kind?: string;
                          name?: string;
                          node?: {
                              addDependency?: (...deps: ...) => ...;
                              addMetadata?: (type: ..., data: ..., options?: ...) => ...;
                              addr?: string;
                              addValidation?: (validation: ...) => ...;
                              children?: (...)[];
                              defaultChild?: { node?: ... };
                              dependencies?: (...)[];
                              findAll?: (order?: ...) => ...;
                              findChild?: (id: ...) => ...;
                              getAllContext?: (defaults?: ...) => ...;
                              getContext?: (key: ...) => ...;
                              id?: string;
                              lock?: () => ...;
                              locked?: boolean;
                              metadata?: (...)[];
                              path?: string;
                              root?: { node?: ... };
                              scope?: { node?: ... };
                              scopes?: (...)[];
                              setContext?: (key: ..., value: ...) => ...;
                              tryFindChild?: (id: ...) => ...;
                              tryGetContext?: (key: ...) => ...;
                              tryRemoveChild?: (childName: ...) => ...;
                              validate?: () => ...;
                          };
                          resourceName?: string;
                          resourceType?: string;
                      };
                      hostAliases?: HostAlias[];
                      hostNetwork?: boolean;
                      image?: { pullPolicy?: string; repository?: string; tag?: string };
                      initContainers?: ContainerProps[];
                      isolate?: boolean;
                      metadata?: {
                          annotations?: { [key: string]: undefined | string };
                          finalizers?: string[];
                          labels?: { [key: string]: undefined | string };
                          name?: string;
                          namespace?: string;
                          ownerReferences?: OwnerReference[];
                          readonly [key: string]: any;
                      };
                      name?: string;
                      podMetadata?: {
                          annotations?: { [key: string]: undefined
                          | string };
                          finalizers?: string[];
                          labels?: { [key: string]: undefined | string };
                          name?: string;
                          namespace?: string;
                          ownerReferences?: OwnerReference[];
                          readonly [key: string]: any;
                      };
                      probes?: {
                          liveness?: { _toKube?: (cont: ...) => ... };
                          readiness?: { _toKube?: (cont: ...) => ... };
                          startup?: { _toKube?: (cont: ...) => ... };
                      };
                      queues?: string[];
                      replicaCount?: number;
                      resources?: {
                          cpu?: { limit?: number; request?: number };
                          memory?: { limit?: number; request?: number };
                      };
                      restartPolicy?: RestartPolicy;
                      scaling?: {
                          cpuUtilPercent?: number;
                          hpa?: {
                              maxReplicas?: number;
                              metadata?: {
                                  annotations?: ...;
                                  finalizers?: ...;
                                  labels?: ...;
                                  name?: ...;
                                  namespace?: ...;
                                  ownerReferences?: ...;
                                  readonly [key: ...]: ...;
                              };
                              metrics?: (...)[];
                              minReplicas?: number;
                              scaleDown?: {
                                  policies?: ...;
                                  stabilizationWindow?: ...;
                                  strategy?: ...;
                              };
                              scaleUp?: { policies?: ...; stabilizationWindow?: ...; strategy?: ... };
                              target?: {
                                  hasAutoscaler?: ...;
                                  markHasAutoscaler?: ...;
                                  toScalingTarget?: ...;
                              };
                          };
                          maxReplicas?: number;
                          memUtilPercent?: number;
                          minReplicas?: number;
                          target?: {
                              hasAutoscaler?: boolean;
                              markHasAutoscaler?: () => ...;
                              toScalingTarget?: () => ...;
                          };
                      };
                      securityContext?: {
                          ensureNonRoot?: boolean;
                          fsGroup?: number;
                          fsGroupChangePolicy?: FsGroupChangePolicy;
                          group?: number;
                          sysctls?: Sysctl[];
                          user?: number;
                      };
                      select?: boolean;
                      serviceAccount?: {
                          apiGroup?: string;
                          apiVersion?: string;
                          kind?: string;
                          name?: string;
                          node?: {
                              addDependency?: (...deps: ...) => ...;
                              addMetadata?: (type: ..., data: ..., options?: ...) => ...;
                              addr?: string;
                              addValidation?: (validation: ...) => ...;
                              children?: (...)[];
                              defaultChild?: { node?: ... };
                              dependencies?: (...)[];
                              findAll?: (order?: ...) => ...;
                              findChild?: (id: ...) => ...;
                              getAllContext?: (defaults?: ...) => ...;
                              getContext?: (key: ...) => ...;
                              id?: string;
                              lock?: () => ...;
                              locked?: boolean;
                              metadata?: (...)[];
                              path?: string;
                              root?: { node?: ... };
                              scope?: { node?: ... };
                              scopes?: (...)[];
                              setContext?: (key: ..., value: ...) => ...;
                              tryFindChild?: (id: ...) => ...;
                              tryGetContext?: (key: ...) => ...;
                              tryRemoveChild?: (childName: ...) => ...;
                              validate?: () => ...;
                          };
                          resourceName?: string;
                          resourceType?: string;
                          toSubjectConfiguration?: () => SubjectConfiguration;
                      };
                      shareProcessNamespace?: boolean;
                      spread?: boolean;
                      terminationGracePeriod?: {
                          toDays?: (opts?: TimeConversionOptions) => number;
                          toHours?: (opts?: TimeConversionOptions) => number;
                          toHumanString?: () => string;
                          toIsoString?: () => string;
                          toMilliseconds?: (opts?: TimeConversionOptions) => number;
                          toMinutes?: (opts?: TimeConversionOptions) => number;
                          toSeconds?: (opts?: TimeConversionOptions) => number;
                          unitLabel?: () => string;
                      };
                      verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
                      volumes?: Volume[];
                  };
          }
        • OptionalceleryBeat?: {
              automountServiceAccountToken?: boolean;
              containerDefaults?: {
                  args?: string[];
                  command?: string[];
                  envFrom?: EnvFrom[];
                  envVariables?: {
                      [key: string]: undefined | { value?: any; valueFrom?: any };
                  };
                  image?: string;
                  imagePullPolicy?: ImagePullPolicy;
                  lifecycle?: {
                      postStart?: { _toKube?: (cont: ...) => ... };
                      preStop?: { _toKube?: (cont: ...) => ... };
                  };
                  liveness?: { _toKube?: (cont: Container) => Probe };
                  name?: string;
                  port?: number;
                  portNumber?: number;
                  ports?: ContainerPort[];
                  readiness?: { _toKube?: (cont: Container) => Probe };
                  resources?: {
                      cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                      ephemeralStorage?: {
                          limit?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                          request?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                      };
                      memory?: {
                          limit?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                          request?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                      };
                  };
                  restartPolicy?: ContainerRestartPolicy;
                  securityContext?: {
                      allowPrivilegeEscalation?: boolean;
                      capabilities?: { add?: (...)[]; drop?: (...)[] };
                      ensureNonRoot?: boolean;
                      group?: number;
                      privileged?: boolean;
                      readOnlyRootFilesystem?: boolean;
                      seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                      user?: number;
                  };
                  startup?: { _toKube?: (cont: Container) => Probe };
                  volumeMounts?: VolumeMount[];
                  workingDir?: string;
              };
              containers?: ContainerProps[];
              dns?: {
                  hostname?: string;
                  hostnameAsFQDN?: boolean;
                  nameservers?: string[];
                  options?: DnsOption[];
                  policy?: DnsPolicy;
                  searches?: string[];
                  subdomain?: string;
              };
              dockerRegistryAuth?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
              };
              hostAliases?: HostAlias[];
              hostNetwork?: boolean;
              image?: { pullPolicy?: string; repository?: string; tag?: string };
              initContainers?: ContainerProps[];
              isolate?: boolean;
              metadata?: {
                  annotations?: { [key: string]: undefined | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              podMetadata?: {
                  annotations?: { [key: string]: undefined
                  | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              probes?: {
                  liveness?: { _toKube?: (cont: Container) => Probe };
                  readiness?: { _toKube?: (cont: Container) => Probe };
                  startup?: { _toKube?: (cont: Container) => Probe };
              };
              replicaCount?: number;
              resources?: {
                  cpu?: { limit?: number; request?: number };
                  memory?: { limit?: number; request?: number };
              };
              restartPolicy?: RestartPolicy;
              scaling?: {
                  cpuUtilPercent?: number;
                  hpa?: {
                      maxReplicas?: number;
                      metadata?: {
                          annotations?: { [key: ...]: ... };
                          finalizers?: (...)[];
                          labels?: { [key: ...]: ... };
                          name?: string;
                          namespace?: string;
                          ownerReferences?: (...)[];
                          readonly [key: string]: any;
                      };
                      metrics?: Metric[];
                      minReplicas?: number;
                      scaleDown?: {
                          policies?: (...)[];
                          stabilizationWindow?: {
                              toDays?: ...;
                              toHours?: ...;
                              toHumanString?: ...;
                              toIsoString?: ...;
                              toMilliseconds?: ...;
                              toMinutes?: ...;
                              toSeconds?: ...;
                              unitLabel?: ...;
                          };
                          strategy?: ScalingStrategy;
                      };
                      scaleUp?: {
                          policies?: (...)[];
                          stabilizationWindow?: {
                              toDays?: ...;
                              toHours?: ...;
                              toHumanString?: ...;
                              toIsoString?: ...;
                              toMilliseconds?: ...;
                              toMinutes?: ...;
                              toSeconds?: ...;
                              unitLabel?: ...;
                          };
                          strategy?: ScalingStrategy;
                      };
                      target?: {
                          hasAutoscaler?: boolean;
                          markHasAutoscaler?: () => ...;
                          toScalingTarget?: () => ...;
                      };
                  };
                  maxReplicas?: number;
                  memUtilPercent?: number;
                  minReplicas?: number;
                  target?: {
                      hasAutoscaler?: boolean;
                      markHasAutoscaler?: () => void;
                      toScalingTarget?: () => ScalingTarget;
                  };
              };
              securityContext?: {
                  ensureNonRoot?: boolean;
                  fsGroup?: number;
                  fsGroupChangePolicy?: FsGroupChangePolicy;
                  group?: number;
                  sysctls?: Sysctl[];
                  user?: number;
              };
              select?: boolean;
              serviceAccount?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
                  toSubjectConfiguration?: () => SubjectConfiguration;
              };
              shareProcessNamespace?: boolean;
              spread?: boolean;
              terminationGracePeriod?: {
                  toDays?: (opts?: TimeConversionOptions) => number;
                  toHours?: (opts?: TimeConversionOptions) => number;
                  toHumanString?: () => string;
                  toIsoString?: () => string;
                  toMilliseconds?: (opts?: TimeConversionOptions) => number;
                  toMinutes?: (opts?: TimeConversionOptions) => number;
                  toSeconds?: (opts?: TimeConversionOptions) => number;
                  unitLabel?: () => string;
              };
              verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
              volumes?: Volume[];
          }
          • Optional ReadonlyautomountServiceAccountToken?: boolean

            Indicates whether a service account token should be automatically mounted.

          • OptionalcontainerDefaults?: {
                args?: string[];
                command?: string[];
                envFrom?: EnvFrom[];
                envVariables?: {
                    [key: string]: undefined | { value?: any; valueFrom?: any };
                };
                image?: string;
                imagePullPolicy?: ImagePullPolicy;
                lifecycle?: {
                    postStart?: { _toKube?: (cont: ...) => ... };
                    preStop?: { _toKube?: (cont: ...) => ... };
                };
                liveness?: { _toKube?: (cont: Container) => Probe };
                name?: string;
                port?: number;
                portNumber?: number;
                ports?: ContainerPort[];
                readiness?: { _toKube?: (cont: Container) => Probe };
                resources?: {
                    cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                    ephemeralStorage?: {
                        limit?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                        request?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                    };
                    memory?: {
                        limit?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                        request?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                    };
                };
                restartPolicy?: ContainerRestartPolicy;
                securityContext?: {
                    allowPrivilegeEscalation?: boolean;
                    capabilities?: { add?: (...)[]; drop?: (...)[] };
                    ensureNonRoot?: boolean;
                    group?: number;
                    privileged?: boolean;
                    readOnlyRootFilesystem?: boolean;
                    seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                    user?: number;
                };
                startup?: { _toKube?: (cont: Container) => Probe };
                volumeMounts?: VolumeMount[];
                workingDir?: string;
            }
            • Optional Readonlyargs?: string[]

              Arguments to the entrypoint. The docker image's CMD is used if command is not provided.

              Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.

              Cannot be updated.

            • Optional Readonlycommand?: string[]

              Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

              - The docker image's ENTRYPOINT.
              
            • Optional ReadonlyenvFrom?: EnvFrom[]

              List of sources to populate environment variables in the container. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by the envVariables property with a duplicate key will take precedence.

              - No sources.
              
            • Optional ReadonlyenvVariables?: { [key: string]: undefined | { value?: any; valueFrom?: any } }

              Environment variables to set in the container.

              - No environment variables.
              
            • Optional Readonlyimage?: string

              Docker image name.

            • Optional ReadonlyimagePullPolicy?: ImagePullPolicy

              Image pull policy for this container

              ImagePullPolicy.ALWAYS
              
            • Optional Readonlylifecycle?: {
                  postStart?: { _toKube?: (cont: ...) => ... };
                  preStop?: { _toKube?: (cont: ...) => ... };
              }

              Describes actions that the management system should take in response to container lifecycle events.

              • Optional ReadonlypostStart?: { _toKube?: (cont: ...) => ... }

                This hook is executed immediately after a container is created. However, there is no guarantee that the hook will execute before the container ENTRYPOINT.

                - No post start handler.
                
              • Optional ReadonlypreStop?: { _toKube?: (cont: ...) => ... }

                This hook is called immediately before a container is terminated due to an API request or management event such as a liveness/startup probe failure, preemption, resource contention and others. A call to the PreStop hook fails if the container is already in a terminated or completed state and the hook must complete before the TERM signal to stop the container can be sent. The Pod's termination grace period countdown begins before the PreStop hook is executed, so regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. No parameters are passed to the handler.

            • Optional Readonlyliveness?: { _toKube?: (cont: Container) => Probe }

              Periodic probe of container liveness. Container will be restarted if the probe fails.

              - no liveness probe is defined
              
            • Optional Readonlyname?: string

              Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.

              'main'
              
            • Optional Readonlyport?: number
              • use portNumber.
            • Optional ReadonlyportNumber?: number

              Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.

              This is a convinience property if all you need a single TCP numbered port. In case more advanced configuartion is required, use the ports property.

              This port is added to the list of ports mentioned in the ports property.

              • Only the ports mentiond in the ports property are exposed.
            • Optional Readonlyports?: ContainerPort[]

              List of ports to expose from this container.

              • Only the port mentioned in the portNumber property is exposed.
            • Optional Readonlyreadiness?: { _toKube?: (cont: Container) => Probe }

              Determines when the container is ready to serve traffic.

              - no readiness probe is defined
              
            • Optional Readonlyresources?: {
                  cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                  ephemeralStorage?: {
                      limit?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                      request?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                  };
                  memory?: {
                      limit?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                      request?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                  };
              }

              Compute resources (CPU and memory requests and limits) required by the container

              cpu:
              request: 1000 millis
              limit: 1500 millis
              memory:
              request: 512 mebibytes
              limit: 2048 mebibytes
            • Optional ReadonlyrestartPolicy?: ContainerRestartPolicy

              Kubelet will start init containers with restartPolicy=Always in the order with other init containers, but instead of waiting for its completion, it will wait for the container startup completion Currently, only accepted value is Always

              - no restart policy is defined and the pod restart policy is applied
              
            • Optional ReadonlysecurityContext?: {
                  allowPrivilegeEscalation?: boolean;
                  capabilities?: { add?: (...)[]; drop?: (...)[] };
                  ensureNonRoot?: boolean;
                  group?: number;
                  privileged?: boolean;
                  readOnlyRootFilesystem?: boolean;
                  seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                  user?: number;
              }

              SecurityContext defines the security options the container should be run with. If set, the fields override equivalent fields of the pod's security context.

              ensureNonRoot: true
              privileged: false
              readOnlyRootFilesystem: true
              allowPrivilegeEscalation: false
              user: 25000
              group: 26000
              • Optional ReadonlyallowPrivilegeEscalation?: boolean

                Whether a process can gain more privileges than its parent process.

                false
                
              • Optional Readonlycapabilities?: { add?: (...)[]; drop?: (...)[] }

                POSIX capabilities for running containers

                none
                
                • Optional Readonlyadd?: (...)[]

                  Added capabilities

                • Optional Readonlydrop?: (...)[]

                  Removed capabilities

              • Optional ReadonlyensureNonRoot?: boolean

                Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

                true
                
              • Optional Readonlygroup?: number

                The GID to run the entrypoint of the container process.

                - 26000. An arbitrary number bigger than 9999 is selected here.
                This is so that the container is blocked to access host files even if
                somehow it manages to get access to host file system.
              • Optional Readonlyprivileged?: boolean

                Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host.

                false
                
              • Optional ReadonlyreadOnlyRootFilesystem?: boolean

                Whether this container has a read-only root filesystem.

                true
                
              • Optional ReadonlyseccompProfile?: { localhostProfile?: string; type?: SeccompProfileType }

                Container's seccomp profile settings. Only one profile source may be set

                none
                
                • Optional ReadonlylocalhostProfile?: string

                  localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is "Localhost".

                  - empty string
                  
                • Optional Readonlytype?: SeccompProfileType

                  Indicates which kind of seccomp profile will be applied

              • Optional Readonlyuser?: number

                The UID to run the entrypoint of the container process.

                - 25000. An arbitrary number bigger than 9999 is selected here.
                This is so that the container is blocked to access host files even if
                somehow it manages to get access to host file system.
            • Optional Readonlystartup?: { _toKube?: (cont: Container) => Probe }

              StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully

              - If a port is provided, then knocks on that port
              to determine when the container is ready for readiness and
              liveness probe checks.
              Otherwise, no startup probe is defined.
            • Optional ReadonlyvolumeMounts?: VolumeMount[]

              Pod volumes to mount into the container's filesystem. Cannot be updated.

            • Optional ReadonlyworkingDir?: string

              Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.

              - The container runtime's default.
              
          • Optional Readonlycontainers?: ContainerProps[]

            List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod.

            You can add additionnal containers using podSpec.addContainer()

            - No containers. Note that a pod spec must include at least one container.
            
          • Optional Readonlydns?: {
                hostname?: string;
                hostnameAsFQDN?: boolean;
                nameservers?: string[];
                options?: DnsOption[];
                policy?: DnsPolicy;
                searches?: string[];
                subdomain?: string;
            }

            DNS settings for the pod.

            policy: DnsPolicy.CLUSTER_FIRST
            hostnameAsFQDN: false
            • Optional Readonlyhostname?: string

              Specifies the hostname of the Pod.

              - Set to a system-defined value.
              
            • Optional ReadonlyhostnameAsFQDN?: boolean

              If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect.

              false
              
            • Optional Readonlynameservers?: string[]

              A list of IP addresses that will be used as DNS servers for the Pod. There can be at most 3 IP addresses specified. When the policy is set to "NONE", the list must contain at least one IP address, otherwise this property is optional. The servers listed will be combined to the base nameservers generated from the specified DNS policy with duplicate addresses removed.

            • Optional Readonlyoptions?: DnsOption[]

              List of objects where each object may have a name property (required) and a value property (optional). The contents in this property will be merged to the options generated from the specified DNS policy. Duplicate entries are removed.

            • Optional Readonlypolicy?: DnsPolicy

              Set DNS policy for the pod.

              If policy is set to None, other configuration must be supplied.

              DnsPolicy.CLUSTER_FIRST
              
            • Optional Readonlysearches?: string[]

              A list of DNS search domains for hostname lookup in the Pod. When specified, the provided list will be merged into the base search domain names generated from the chosen DNS policy. Duplicate domain names are removed.

              Kubernetes allows for at most 6 search domains.

            • Optional Readonlysubdomain?: string

              If specified, the fully qualified Pod hostname will be "...svc.".

              - No subdomain.
              
          • Optional ReadonlydockerRegistryAuth?: {
                apiGroup?: string;
                apiVersion?: string;
                envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
            }

            A secret containing docker credentials for authenticating to a registry.

            - No auth. Images are assumed to be publicly available.
            
            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • OptionalenvValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue
            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

          • Optional ReadonlyhostAliases?: HostAlias[]

            HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.

            io.k8s.api.core.v1.HostAlias

          • Optional ReadonlyhostNetwork?: boolean

            Host network for the pod.

            false
            
          • Optionalimage?: { pullPolicy?: string; repository?: string; tag?: string }
          • Optional ReadonlyinitContainers?: ContainerProps[]

            List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion.

            Init containers cannot currently be added ,removed or updated.

          • Optional Readonlyisolate?: boolean

            Isolates the pod. This will prevent any ingress or egress connections to / from this pod. You can however allow explicit connections post instantiation by using the .connections property.

            false
            
          • Optional Readonlymetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            Metadata that all persisted resources must have, which includes all objects users must create.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optional ReadonlypodMetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            The pod metadata of this workload.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optionalprobes?: {
                liveness?: { _toKube?: (cont: Container) => Probe };
                readiness?: { _toKube?: (cont: Container) => Probe };
                startup?: { _toKube?: (cont: Container) => Probe };
            }
            • Optional Readonlyliveness?: { _toKube?: (cont: Container) => Probe }

              Periodic probe of container liveness. Container will be restarted if the probe fails.

              - no liveness probe is defined
              
            • Optional Readonlyreadiness?: { _toKube?: (cont: Container) => Probe }

              Determines when the container is ready to serve traffic.

              - no readiness probe is defined
              
            • Optional Readonlystartup?: { _toKube?: (cont: Container) => Probe }

              StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully

              - If a port is provided, then knocks on that port
              to determine when the container is ready for readiness and
              liveness probe checks.
              Otherwise, no startup probe is defined.
          • OptionalreplicaCount?: number
          • Optionalresources?: {
                cpu?: { limit?: number; request?: number };
                memory?: { limit?: number; request?: number };
            }
          • Optional ReadonlyrestartPolicy?: RestartPolicy

            Restart policy for all containers within the pod.

          • Optionalscaling?: {
                cpuUtilPercent?: number;
                hpa?: {
                    maxReplicas?: number;
                    metadata?: {
                        annotations?: { [key: ...]: ... };
                        finalizers?: (...)[];
                        labels?: { [key: ...]: ... };
                        name?: string;
                        namespace?: string;
                        ownerReferences?: (...)[];
                        readonly [key: string]: any;
                    };
                    metrics?: Metric[];
                    minReplicas?: number;
                    scaleDown?: {
                        policies?: (...)[];
                        stabilizationWindow?: {
                            toDays?: ...;
                            toHours?: ...;
                            toHumanString?: ...;
                            toIsoString?: ...;
                            toMilliseconds?: ...;
                            toMinutes?: ...;
                            toSeconds?: ...;
                            unitLabel?: ...;
                        };
                        strategy?: ScalingStrategy;
                    };
                    scaleUp?: {
                        policies?: (...)[];
                        stabilizationWindow?: {
                            toDays?: ...;
                            toHours?: ...;
                            toHumanString?: ...;
                            toIsoString?: ...;
                            toMilliseconds?: ...;
                            toMinutes?: ...;
                            toSeconds?: ...;
                            unitLabel?: ...;
                        };
                        strategy?: ScalingStrategy;
                    };
                    target?: {
                        hasAutoscaler?: boolean;
                        markHasAutoscaler?: () => ...;
                        toScalingTarget?: () => ...;
                    };
                };
                maxReplicas?: number;
                memUtilPercent?: number;
                minReplicas?: number;
                target?: {
                    hasAutoscaler?: boolean;
                    markHasAutoscaler?: () => void;
                    toScalingTarget?: () => ScalingTarget;
                };
            }
            • Optional ReadonlycpuUtilPercent?: number
            • Optional Readonlyhpa?: {
                  maxReplicas?: number;
                  metadata?: {
                      annotations?: { [key: ...]: ... };
                      finalizers?: (...)[];
                      labels?: { [key: ...]: ... };
                      name?: string;
                      namespace?: string;
                      ownerReferences?: (...)[];
                      readonly [key: string]: any;
                  };
                  metrics?: Metric[];
                  minReplicas?: number;
                  scaleDown?: {
                      policies?: (...)[];
                      stabilizationWindow?: {
                          toDays?: ...;
                          toHours?: ...;
                          toHumanString?: ...;
                          toIsoString?: ...;
                          toMilliseconds?: ...;
                          toMinutes?: ...;
                          toSeconds?: ...;
                          unitLabel?: ...;
                      };
                      strategy?: ScalingStrategy;
                  };
                  scaleUp?: {
                      policies?: (...)[];
                      stabilizationWindow?: {
                          toDays?: ...;
                          toHours?: ...;
                          toHumanString?: ...;
                          toIsoString?: ...;
                          toMilliseconds?: ...;
                          toMinutes?: ...;
                          toSeconds?: ...;
                          unitLabel?: ...;
                      };
                      strategy?: ScalingStrategy;
                  };
                  target?: {
                      hasAutoscaler?: boolean;
                      markHasAutoscaler?: () => ...;
                      toScalingTarget?: () => ...;
                  };
              }

              Escape hatch

              • Optional ReadonlymaxReplicas?: number

                The maximum number of replicas that can be scaled up to.

              • Optional Readonlymetadata?: {
                    annotations?: { [key: ...]: ... };
                    finalizers?: (...)[];
                    labels?: { [key: ...]: ... };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: (...)[];
                    readonly [key: string]: any;
                }

                Metadata that all persisted resources must have, which includes all objects users must create.

                • Optional Readonlyannotations?: { [key: ...]: ... }

                  Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

                  - No annotations.
                  
                • Optional Readonlyfinalizers?: (...)[]

                  Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

                  Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

                • Optional Readonlylabels?: { [key: ...]: ... }

                  Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

                  - No labels.
                  
                • Optional Readonlyname?: string

                  The unique, namespace-global, name of this object inside the Kubernetes cluster.

                  Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

                  You can supply custom name allocation logic by overriding the chart.generateObjectName method.

                  If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

                  - an app-unique name generated by the chart
                  
                • Optional Readonlynamespace?: string

                  Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

                  undefined (will be assigned to the 'default' namespace)
                  
                • Optional ReadonlyownerReferences?: (...)[]

                  List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

                  Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

              • Optional Readonlymetrics?: Metric[]

                The metric conditions that trigger a scale up or scale down.

                - If metrics are not provided, then the target resource
                constraints (e.g. cpu limit) will be used as scaling metrics.
              • Optional ReadonlyminReplicas?: number

                The minimum number of replicas that can be scaled down to.

                Can be set to 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.

                1
                
              • Optional ReadonlyscaleDown?: {
                    policies?: (...)[];
                    stabilizationWindow?: {
                        toDays?: ...;
                        toHours?: ...;
                        toHumanString?: ...;
                        toIsoString?: ...;
                        toMilliseconds?: ...;
                        toMinutes?: ...;
                        toSeconds?: ...;
                        unitLabel?: ...;
                    };
                    strategy?: ScalingStrategy;
                }

                The scaling behavior when scaling down.

                - Scale down to minReplica count with a 5 minute stabilization window.
                
                • Optional Readonlypolicies?: (...)[]

                  The scaling policies.

                  * Scale up
                  * Increase no more than 4 pods per 60 seconds
                  * Double the number of pods per 60 seconds
                  * Scale down
                  * Decrease to minReplica count
                • Optional ReadonlystabilizationWindow?: {
                      toDays?: ...;
                      toHours?: ...;
                      toHumanString?: ...;
                      toIsoString?: ...;
                      toMilliseconds?: ...;
                      toMinutes?: ...;
                      toSeconds?: ...;
                      unitLabel?: ...;
                  }

                  Defines the window of past metrics that the autoscaler should consider when calculating wether or not autoscaling should occur.

                  Minimum duration is 1 second, max is 1 hour.

                  stabilizationWindow: Duration.minutes(30)
                  // Autoscaler considers the last 30 minutes of metrics when deciding whether to scale.
                  * On scale down no stabilization is performed.
                  * On scale up stabilization is performed for 5 minutes.
                • Optional Readonlystrategy?: ScalingStrategy

                  The strategy to use when scaling.

                  MAX_CHANGE
                  
              • Optional ReadonlyscaleUp?: {
                    policies?: (...)[];
                    stabilizationWindow?: {
                        toDays?: ...;
                        toHours?: ...;
                        toHumanString?: ...;
                        toIsoString?: ...;
                        toMilliseconds?: ...;
                        toMinutes?: ...;
                        toSeconds?: ...;
                        unitLabel?: ...;
                    };
                    strategy?: ScalingStrategy;
                }

                The scaling behavior when scaling up.

                - Is the higher of:
                * Increase no more than 4 pods per 60 seconds
                * Double the number of pods per 60 seconds
                • Optional Readonlypolicies?: (...)[]

                  The scaling policies.

                  * Scale up
                  * Increase no more than 4 pods per 60 seconds
                  * Double the number of pods per 60 seconds
                  * Scale down
                  * Decrease to minReplica count
                • Optional ReadonlystabilizationWindow?: {
                      toDays?: ...;
                      toHours?: ...;
                      toHumanString?: ...;
                      toIsoString?: ...;
                      toMilliseconds?: ...;
                      toMinutes?: ...;
                      toSeconds?: ...;
                      unitLabel?: ...;
                  }

                  Defines the window of past metrics that the autoscaler should consider when calculating wether or not autoscaling should occur.

                  Minimum duration is 1 second, max is 1 hour.

                  stabilizationWindow: Duration.minutes(30)
                  // Autoscaler considers the last 30 minutes of metrics when deciding whether to scale.
                  * On scale down no stabilization is performed.
                  * On scale up stabilization is performed for 5 minutes.
                • Optional Readonlystrategy?: ScalingStrategy

                  The strategy to use when scaling.

                  MAX_CHANGE
                  
              • Optional Readonlytarget?: {
                    hasAutoscaler?: boolean;
                    markHasAutoscaler?: () => ...;
                    toScalingTarget?: () => ...;
                }

                The workload to scale up or down.

                Scalable workload types:

                • Deployment
                • StatefulSet
                • OptionalhasAutoscaler?: boolean

                  If this is a target of an autoscaler.

                • OptionalmarkHasAutoscaler?: () => ...
                • OptionaltoScalingTarget?: () => ...
            • Optional ReadonlymaxReplicas?: number
            • Optional ReadonlymemUtilPercent?: number
            • Optional ReadonlyminReplicas?: number
            • Optional Readonlytarget?: {
                  hasAutoscaler?: boolean;
                  markHasAutoscaler?: () => void;
                  toScalingTarget?: () => ScalingTarget;
              }
              • OptionalhasAutoscaler?: boolean

                If this is a target of an autoscaler.

              • OptionalmarkHasAutoscaler?: () => void
              • OptionaltoScalingTarget?: () => ScalingTarget
          • Optional ReadonlysecurityContext?: {
                ensureNonRoot?: boolean;
                fsGroup?: number;
                fsGroupChangePolicy?: FsGroupChangePolicy;
                group?: number;
                sysctls?: Sysctl[];
                user?: number;
            }

            SecurityContext holds pod-level security attributes and common container settings.

            fsGroupChangePolicy: FsGroupChangePolicy.FsGroupChangePolicy.ALWAYS
            ensureNonRoot: true
            • Optional ReadonlyensureNonRoot?: boolean

              Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

              true
              
            • Optional ReadonlyfsGroup?: number

              Modify the ownership and permissions of pod volumes to this GID.

              - Volume ownership is not changed.
              
            • Optional ReadonlyfsGroupChangePolicy?: FsGroupChangePolicy

              Defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir.

              FsGroupChangePolicy.ALWAYS
              
            • Optional Readonlygroup?: number

              The GID to run the entrypoint of the container process.

              - Group configured by container runtime
              
            • Optional Readonlysysctls?: Sysctl[]

              Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.

              - No sysctls
              
            • Optional Readonlyuser?: number

              The UID to run the entrypoint of the container process.

              - User specified in image metadata
              
          • Optional Readonlyselect?: boolean

            Automatically allocates a pod label selector for this workload and add it to the pod metadata. This ensures this workload manages pods created by its pod template.

            true
            
          • Optional ReadonlyserviceAccount?: {
                apiGroup?: string;
                apiVersion?: string;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
                toSubjectConfiguration?: () => SubjectConfiguration;
            }

            A service account provides an identity for processes that run in a Pod.

            When you (a human) access the cluster (for example, using kubectl), you are authenticated by the apiserver as a particular User Account (currently this is usually admin, unless your cluster administrator has customized your cluster). Processes in containers inside pods can also contact the apiserver. When they do, they are authenticated as a particular Service Account (for example, default).

            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

            • OptionaltoSubjectConfiguration?: () => SubjectConfiguration
          • Optional ReadonlyshareProcessNamespace?: boolean

            When process namespace sharing is enabled, processes in a container are visible to all other containers in the same pod.

          • Optional Readonlyspread?: boolean

            Automatically spread pods across hostname and zones.

          • Optional ReadonlyterminationGracePeriod?: {
                toDays?: (opts?: TimeConversionOptions) => number;
                toHours?: (opts?: TimeConversionOptions) => number;
                toHumanString?: () => string;
                toIsoString?: () => string;
                toMilliseconds?: (opts?: TimeConversionOptions) => number;
                toMinutes?: (opts?: TimeConversionOptions) => number;
                toSeconds?: (opts?: TimeConversionOptions) => number;
                unitLabel?: () => string;
            }

            Grace period until the pod is terminated

            Duration.seconds(30)
            
            • OptionaltoDays?: (opts?: TimeConversionOptions) => number
            • OptionaltoHours?: (opts?: TimeConversionOptions) => number
            • OptionaltoHumanString?: () => string
            • OptionaltoIsoString?: () => string
            • OptionaltoMilliseconds?: (opts?: TimeConversionOptions) => number
            • OptionaltoMinutes?: (opts?: TimeConversionOptions) => number
            • OptionaltoSeconds?: (opts?: TimeConversionOptions) => number
            • OptionalunitLabel?: () => string
          • OptionalverticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] }
          • Optional Readonlyvolumes?: Volume[]

            List of volumes that can be mounted by containers belonging to the pod.

            You can also add volumes later using podSpec.addVolume()

        • Optional ReadonlydisableResourceNameHashes?: boolean

          The autogenerated resource name by default is suffixed with a stable hash of the construct path. Setting this property to true drops the hash suffix.

          false
          
        • OptionaldomainName?: string
        • OptionalingressAnnotations?: { [key: string]: undefined | string }
        • Optional Readonlylabels?: { [key: string]: undefined | string }

          Labels to apply to all resources in this chart.

          - no common labels
          
        • Optional Readonlynamespace?: string

          The default namespace for all objects defined in this chart (directly or indirectly). This namespace will only apply to objects that don't have a namespace explicitly defined for them.

          - no namespace is synthesized (usually this implies "default")
          
        • Optionalsync?: {
              activeDeadline?: {
                  toDays?: (opts?: TimeConversionOptions) => number;
                  toHours?: (opts?: TimeConversionOptions) => number;
                  toHumanString?: () => string;
                  toIsoString?: () => string;
                  toMilliseconds?: (opts?: TimeConversionOptions) => number;
                  toMinutes?: (opts?: TimeConversionOptions) => number;
                  toSeconds?: (opts?: TimeConversionOptions) => number;
                  unitLabel?: () => string;
              };
              automountServiceAccountToken?: boolean;
              backoffLimit?: number;
              concurrencyPolicy?: ConcurrencyPolicy;
              containers?: ContainerProps[];
              dns?: {
                  hostname?: string;
                  hostnameAsFQDN?: boolean;
                  nameservers?: string[];
                  options?: DnsOption[];
                  policy?: DnsPolicy;
                  searches?: string[];
                  subdomain?: string;
              };
              dockerRegistryAuth?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
              };
              failedJobsRetained?: number;
              hostAliases?: HostAlias[];
              hostNetwork?: boolean;
              image?: { pullPolicy?: string; repository?: string; tag?: string };
              initContainers?: ContainerProps[];
              isolate?: boolean;
              metadata?: {
                  annotations?: { [key: string]: undefined | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              podMetadata?: {
                  annotations?: { [key: string]: undefined
                  | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              restartPolicy?: RestartPolicy;
              schedule?: {
                  day?: string;
                  hour?: string;
                  minute?: string;
                  month?: string;
                  weekDay?: string;
              };
              securityContext?: {
                  ensureNonRoot?: boolean;
                  fsGroup?: number;
                  fsGroupChangePolicy?: FsGroupChangePolicy;
                  group?: number;
                  sysctls?: Sysctl[];
                  user?: number;
              };
              select?: boolean;
              serviceAccount?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
                  toSubjectConfiguration?: () => SubjectConfiguration;
              };
              shareProcessNamespace?: boolean;
              sourceDsn?: null
              | string;
              spread?: boolean;
              startingDeadline?: {
                  toDays?: (opts?: TimeConversionOptions) => number;
                  toHours?: (opts?: TimeConversionOptions) => number;
                  toHumanString?: () => string;
                  toIsoString?: () => string;
                  toMilliseconds?: (opts?: TimeConversionOptions) => number;
                  toMinutes?: (opts?: TimeConversionOptions) => number;
                  toSeconds?: (opts?: TimeConversionOptions) => number;
                  unitLabel?: () => string;
              };
              successfulJobsRetained?: number;
              suspend?: boolean;
              target?: {
                  bastionHost?: string;
                  bastionKey?: string;
                  databaseDsn?: string;
                  dev?: boolean;
              };
              terminationGracePeriod?: {
                  toDays?: (opts?: TimeConversionOptions) => number;
                  toHours?: (opts?: TimeConversionOptions) => number;
                  toHumanString?: () => string;
                  toIsoString?: () => string;
                  toMilliseconds?: (opts?: TimeConversionOptions) => number;
                  toMinutes?: (opts?: TimeConversionOptions) => number;
                  toSeconds?: (opts?: TimeConversionOptions) => number;
                  unitLabel?: () => string;
              };
              timeZone?: string;
              ttlAfterFinished?: {
                  toDays?: (opts?: TimeConversionOptions) => number;
                  toHours?: (opts?: TimeConversionOptions) => number;
                  toHumanString?: () => string;
                  toIsoString?: () => string;
                  toMilliseconds?: (opts?: TimeConversionOptions) => number;
                  toMinutes?: (opts?: TimeConversionOptions) => number;
                  toSeconds?: (opts?: TimeConversionOptions) => number;
                  unitLabel?: () => string;
              };
              volumes?: Volume[];
          }
          • Optional ReadonlyactiveDeadline?: {
                toDays?: (opts?: TimeConversionOptions) => number;
                toHours?: (opts?: TimeConversionOptions) => number;
                toHumanString?: () => string;
                toIsoString?: () => string;
                toMilliseconds?: (opts?: TimeConversionOptions) => number;
                toMinutes?: (opts?: TimeConversionOptions) => number;
                toSeconds?: (opts?: TimeConversionOptions) => number;
                unitLabel?: () => string;
            }

            Specifies the duration the job may be active before the system tries to terminate it.

            - If unset, then there is no deadline.
            
            • OptionaltoDays?: (opts?: TimeConversionOptions) => number
            • OptionaltoHours?: (opts?: TimeConversionOptions) => number
            • OptionaltoHumanString?: () => string
            • OptionaltoIsoString?: () => string
            • OptionaltoMilliseconds?: (opts?: TimeConversionOptions) => number
            • OptionaltoMinutes?: (opts?: TimeConversionOptions) => number
            • OptionaltoSeconds?: (opts?: TimeConversionOptions) => number
            • OptionalunitLabel?: () => string
          • Optional ReadonlyautomountServiceAccountToken?: boolean

            Indicates whether a service account token should be automatically mounted.

          • Optional ReadonlybackoffLimit?: number

            Specifies the number of retries before marking this job failed.

            - If not set, system defaults to 6.
            
          • Optional ReadonlyconcurrencyPolicy?: ConcurrencyPolicy

            Specifies the concurrency policy for the job.

            ConcurrencyPolicy.Forbid
            
          • Optional Readonlycontainers?: ContainerProps[]

            List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod.

            You can add additionnal containers using podSpec.addContainer()

            - No containers. Note that a pod spec must include at least one container.
            
          • Optional Readonlydns?: {
                hostname?: string;
                hostnameAsFQDN?: boolean;
                nameservers?: string[];
                options?: DnsOption[];
                policy?: DnsPolicy;
                searches?: string[];
                subdomain?: string;
            }

            DNS settings for the pod.

            policy: DnsPolicy.CLUSTER_FIRST
            hostnameAsFQDN: false
            • Optional Readonlyhostname?: string

              Specifies the hostname of the Pod.

              - Set to a system-defined value.
              
            • Optional ReadonlyhostnameAsFQDN?: boolean

              If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect.

              false
              
            • Optional Readonlynameservers?: string[]

              A list of IP addresses that will be used as DNS servers for the Pod. There can be at most 3 IP addresses specified. When the policy is set to "NONE", the list must contain at least one IP address, otherwise this property is optional. The servers listed will be combined to the base nameservers generated from the specified DNS policy with duplicate addresses removed.

            • Optional Readonlyoptions?: DnsOption[]

              List of objects where each object may have a name property (required) and a value property (optional). The contents in this property will be merged to the options generated from the specified DNS policy. Duplicate entries are removed.

            • Optional Readonlypolicy?: DnsPolicy

              Set DNS policy for the pod.

              If policy is set to None, other configuration must be supplied.

              DnsPolicy.CLUSTER_FIRST
              
            • Optional Readonlysearches?: string[]

              A list of DNS search domains for hostname lookup in the Pod. When specified, the provided list will be merged into the base search domain names generated from the chosen DNS policy. Duplicate domain names are removed.

              Kubernetes allows for at most 6 search domains.

            • Optional Readonlysubdomain?: string

              If specified, the fully qualified Pod hostname will be "...svc.".

              - No subdomain.
              
          • Optional ReadonlydockerRegistryAuth?: {
                apiGroup?: string;
                apiVersion?: string;
                envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
            }

            A secret containing docker credentials for authenticating to a registry.

            - No auth. Images are assumed to be publicly available.
            
            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • OptionalenvValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue
            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

          • Optional ReadonlyfailedJobsRetained?: number

            Specifies the number of failed jobs history retained. This would retain the Job and the associated Pod resource and can be useful for debugging.

            1
            
          • Optional ReadonlyhostAliases?: HostAlias[]

            HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.

            io.k8s.api.core.v1.HostAlias

          • Optional ReadonlyhostNetwork?: boolean

            Host network for the pod.

            false
            
          • Optional Readonlyimage?: { pullPolicy?: string; repository?: string; tag?: string }
          • Optional ReadonlyinitContainers?: ContainerProps[]

            List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion.

            Init containers cannot currently be added ,removed or updated.

          • Optional Readonlyisolate?: boolean

            Isolates the pod. This will prevent any ingress or egress connections to / from this pod. You can however allow explicit connections post instantiation by using the .connections property.

            false
            
          • Optional Readonlymetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            Metadata that all persisted resources must have, which includes all objects users must create.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optional ReadonlypodMetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            The pod metadata of this workload.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optional ReadonlyrestartPolicy?: RestartPolicy

            Restart policy for all containers within the pod.

          • Optional Readonlyschedule?: {
                day?: string;
                hour?: string;
                minute?: string;
                month?: string;
                weekDay?: string;
            }
            • Optional Readonlyday?: string

              The day of the month to run this rule at

              - Every day of the month
              
            • Optional Readonlyhour?: string

              The hour to run this rule at

              - Every hour
              
            • Optional Readonlyminute?: string

              The minute to run this rule at

              - Every minute
              
            • Optional Readonlymonth?: string

              The month to run this rule at

              - Every month
              
            • Optional ReadonlyweekDay?: string

              The day of the week to run this rule at

              - Any day of the week
              
          • Optional ReadonlysecurityContext?: {
                ensureNonRoot?: boolean;
                fsGroup?: number;
                fsGroupChangePolicy?: FsGroupChangePolicy;
                group?: number;
                sysctls?: Sysctl[];
                user?: number;
            }

            SecurityContext holds pod-level security attributes and common container settings.

            fsGroupChangePolicy: FsGroupChangePolicy.FsGroupChangePolicy.ALWAYS
            ensureNonRoot: true
            • Optional ReadonlyensureNonRoot?: boolean

              Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

              true
              
            • Optional ReadonlyfsGroup?: number

              Modify the ownership and permissions of pod volumes to this GID.

              - Volume ownership is not changed.
              
            • Optional ReadonlyfsGroupChangePolicy?: FsGroupChangePolicy

              Defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir.

              FsGroupChangePolicy.ALWAYS
              
            • Optional Readonlygroup?: number

              The GID to run the entrypoint of the container process.

              - Group configured by container runtime
              
            • Optional Readonlysysctls?: Sysctl[]

              Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.

              - No sysctls
              
            • Optional Readonlyuser?: number

              The UID to run the entrypoint of the container process.

              - User specified in image metadata
              
          • Optional Readonlyselect?: boolean

            Automatically allocates a pod label selector for this workload and add it to the pod metadata. This ensures this workload manages pods created by its pod template.

            true
            
          • Optional ReadonlyserviceAccount?: {
                apiGroup?: string;
                apiVersion?: string;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
                toSubjectConfiguration?: () => SubjectConfiguration;
            }

            A service account provides an identity for processes that run in a Pod.

            When you (a human) access the cluster (for example, using kubectl), you are authenticated by the apiserver as a particular User Account (currently this is usually admin, unless your cluster administrator has customized your cluster). Processes in containers inside pods can also contact the apiserver. When they do, they are authenticated as a particular Service Account (for example, default).

            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

            • OptionaltoSubjectConfiguration?: () => SubjectConfiguration
          • Optional ReadonlyshareProcessNamespace?: boolean

            When process namespace sharing is enabled, processes in a container are visible to all other containers in the same pod.

          • Optional ReadonlysourceDsn?: null | string
          • Optional Readonlyspread?: boolean

            Automatically spread pods across hostname and zones.

          • Optional ReadonlystartingDeadline?: {
                toDays?: (opts?: TimeConversionOptions) => number;
                toHours?: (opts?: TimeConversionOptions) => number;
                toHumanString?: () => string;
                toIsoString?: () => string;
                toMilliseconds?: (opts?: TimeConversionOptions) => number;
                toMinutes?: (opts?: TimeConversionOptions) => number;
                toSeconds?: (opts?: TimeConversionOptions) => number;
                unitLabel?: () => string;
            }

            Kubernetes attempts to start cron jobs at its schedule time, but this is not guaranteed. This deadline specifies how much time can pass after a schedule point, for which kubernetes can still start the job. For example, if this is set to 100 seconds, kubernetes is allowed to start the job at a maximum 100 seconds after the scheduled time.

            Note that the Kubernetes CronJobController checks for things every 10 seconds, for this reason, a deadline below 10 seconds is not allowed, as it may cause your job to never be scheduled.

            In addition, kubernetes will stop scheduling jobs if more than 100 schedules were missed (for any reason). This property also controls what time interval should kubernetes consider when counting for missed schedules.

            For example, suppose a CronJob is set to schedule a new Job every one minute beginning at 08:30:00, and its startingDeadline field is not set. If the CronJob controller happens to be down from 08:29:00 to 10:21:00, the job will not start as the number of missed jobs which missed their schedule is greater than 100. However, if startingDeadline is set to 200 seconds, kubernetes will only count 3 missed schedules, and thus start a new execution at 10:22:00.

            Duration.seconds(10)
            
            • OptionaltoDays?: (opts?: TimeConversionOptions) => number
            • OptionaltoHours?: (opts?: TimeConversionOptions) => number
            • OptionaltoHumanString?: () => string
            • OptionaltoIsoString?: () => string
            • OptionaltoMilliseconds?: (opts?: TimeConversionOptions) => number
            • OptionaltoMinutes?: (opts?: TimeConversionOptions) => number
            • OptionaltoSeconds?: (opts?: TimeConversionOptions) => number
            • OptionalunitLabel?: () => string
          • Optional ReadonlysuccessfulJobsRetained?: number

            Specifies the number of successful jobs history retained. This would retain the Job and the associated Pod resource and can be useful for debugging.

            3
            
          • Optional Readonlysuspend?: boolean

            Specifies if the cron job should be suspended. Only applies to future executions, current ones are remained untouched.

            false
            
          • Optional Readonlytarget?: {
                bastionHost?: string;
                bastionKey?: string;
                databaseDsn?: string;
                dev?: boolean;
            }
          • Optional ReadonlyterminationGracePeriod?: {
                toDays?: (opts?: TimeConversionOptions) => number;
                toHours?: (opts?: TimeConversionOptions) => number;
                toHumanString?: () => string;
                toIsoString?: () => string;
                toMilliseconds?: (opts?: TimeConversionOptions) => number;
                toMinutes?: (opts?: TimeConversionOptions) => number;
                toSeconds?: (opts?: TimeConversionOptions) => number;
                unitLabel?: () => string;
            }

            Grace period until the pod is terminated

            Duration.seconds(30)
            
            • OptionaltoDays?: (opts?: TimeConversionOptions) => number
            • OptionaltoHours?: (opts?: TimeConversionOptions) => number
            • OptionaltoHumanString?: () => string
            • OptionaltoIsoString?: () => string
            • OptionaltoMilliseconds?: (opts?: TimeConversionOptions) => number
            • OptionaltoMinutes?: (opts?: TimeConversionOptions) => number
            • OptionaltoSeconds?: (opts?: TimeConversionOptions) => number
            • OptionalunitLabel?: () => string
          • Optional ReadonlytimeZone?: string

            Specifies the timezone for the job. This helps aligining the schedule to follow the specified timezone.

            - Timezone of kube-controller-manager process.
            
          • Optional ReadonlyttlAfterFinished?: {
                toDays?: (opts?: TimeConversionOptions) => number;
                toHours?: (opts?: TimeConversionOptions) => number;
                toHumanString?: () => string;
                toIsoString?: () => string;
                toMilliseconds?: (opts?: TimeConversionOptions) => number;
                toMinutes?: (opts?: TimeConversionOptions) => number;
                toSeconds?: (opts?: TimeConversionOptions) => number;
                unitLabel?: () => string;
            }

            Limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.

            - If this field is unset, the Job won't be automatically deleted.
            
            • OptionaltoDays?: (opts?: TimeConversionOptions) => number
            • OptionaltoHours?: (opts?: TimeConversionOptions) => number
            • OptionaltoHumanString?: () => string
            • OptionaltoIsoString?: () => string
            • OptionaltoMilliseconds?: (opts?: TimeConversionOptions) => number
            • OptionaltoMinutes?: (opts?: TimeConversionOptions) => number
            • OptionaltoSeconds?: (opts?: TimeConversionOptions) => number
            • OptionalunitLabel?: () => string
          • Optional Readonlyvolumes?: Volume[]

            List of volumes that can be mounted by containers belonging to the pod.

            You can also add volumes later using podSpec.addVolume()

        • OptionalwebImage?: { pullPolicy?: string; repository?: string; tag?: string }
        • Optionalwsgi?: {
              automountServiceAccountToken?: boolean;
              containerDefaults?: {
                  args?: string[];
                  command?: string[];
                  envFrom?: EnvFrom[];
                  envVariables?: {
                      [key: string]: undefined | { value?: any; valueFrom?: any };
                  };
                  image?: string;
                  imagePullPolicy?: ImagePullPolicy;
                  lifecycle?: {
                      postStart?: { _toKube?: (cont: ...) => ... };
                      preStop?: { _toKube?: (cont: ...) => ... };
                  };
                  liveness?: { _toKube?: (cont: Container) => Probe };
                  name?: string;
                  port?: number;
                  portNumber?: number;
                  ports?: ContainerPort[];
                  readiness?: { _toKube?: (cont: Container) => Probe };
                  resources?: {
                      cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                      ephemeralStorage?: {
                          limit?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                          request?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                      };
                      memory?: {
                          limit?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                          request?: {
                              asString?: ...;
                              toGibibytes?: ...;
                              toKibibytes?: ...;
                              toMebibytes?: ...;
                              toPebibytes?: ...;
                              toTebibytes?: ...;
                          };
                      };
                  };
                  restartPolicy?: ContainerRestartPolicy;
                  securityContext?: {
                      allowPrivilegeEscalation?: boolean;
                      capabilities?: { add?: (...)[]; drop?: (...)[] };
                      ensureNonRoot?: boolean;
                      group?: number;
                      privileged?: boolean;
                      readOnlyRootFilesystem?: boolean;
                      seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                      user?: number;
                  };
                  startup?: { _toKube?: (cont: Container) => Probe };
                  volumeMounts?: VolumeMount[];
                  workingDir?: string;
              };
              containers?: ContainerProps[];
              dns?: {
                  hostname?: string;
                  hostnameAsFQDN?: boolean;
                  nameservers?: string[];
                  options?: DnsOption[];
                  policy?: DnsPolicy;
                  searches?: string[];
                  subdomain?: string;
              };
              dockerRegistryAuth?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
              };
              hostAliases?: HostAlias[];
              hostNetwork?: boolean;
              image?: { pullPolicy?: string; repository?: string; tag?: string };
              initContainers?: ContainerProps[];
              isolate?: boolean;
              metadata?: {
                  annotations?: { [key: string]: undefined | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              podMetadata?: {
                  annotations?: { [key: string]: undefined
                  | string };
                  finalizers?: string[];
                  labels?: { [key: string]: undefined | string };
                  name?: string;
                  namespace?: string;
                  ownerReferences?: OwnerReference[];
                  readonly [key: string]: any;
              };
              probes?: {
                  liveness?: { _toKube?: (cont: Container) => Probe };
                  readiness?: { _toKube?: (cont: Container) => Probe };
                  startup?: { _toKube?: (cont: Container) => Probe };
              };
              replicaCount?: number;
              resources?: {
                  cpu?: { limit?: number; request?: number };
                  memory?: { limit?: number; request?: number };
              };
              restartPolicy?: RestartPolicy;
              scaling?: {
                  cpuUtilPercent?: number;
                  hpa?: {
                      maxReplicas?: number;
                      metadata?: {
                          annotations?: { [key: ...]: ... };
                          finalizers?: (...)[];
                          labels?: { [key: ...]: ... };
                          name?: string;
                          namespace?: string;
                          ownerReferences?: (...)[];
                          readonly [key: string]: any;
                      };
                      metrics?: Metric[];
                      minReplicas?: number;
                      scaleDown?: {
                          policies?: (...)[];
                          stabilizationWindow?: {
                              toDays?: ...;
                              toHours?: ...;
                              toHumanString?: ...;
                              toIsoString?: ...;
                              toMilliseconds?: ...;
                              toMinutes?: ...;
                              toSeconds?: ...;
                              unitLabel?: ...;
                          };
                          strategy?: ScalingStrategy;
                      };
                      scaleUp?: {
                          policies?: (...)[];
                          stabilizationWindow?: {
                              toDays?: ...;
                              toHours?: ...;
                              toHumanString?: ...;
                              toIsoString?: ...;
                              toMilliseconds?: ...;
                              toMinutes?: ...;
                              toSeconds?: ...;
                              unitLabel?: ...;
                          };
                          strategy?: ScalingStrategy;
                      };
                      target?: {
                          hasAutoscaler?: boolean;
                          markHasAutoscaler?: () => ...;
                          toScalingTarget?: () => ...;
                      };
                  };
                  maxReplicas?: number;
                  memUtilPercent?: number;
                  minReplicas?: number;
                  target?: {
                      hasAutoscaler?: boolean;
                      markHasAutoscaler?: () => void;
                      toScalingTarget?: () => ScalingTarget;
                  };
              };
              securityContext?: {
                  ensureNonRoot?: boolean;
                  fsGroup?: number;
                  fsGroupChangePolicy?: FsGroupChangePolicy;
                  group?: number;
                  sysctls?: Sysctl[];
                  user?: number;
              };
              select?: boolean;
              serviceAccount?: {
                  apiGroup?: string;
                  apiVersion?: string;
                  kind?: string;
                  name?: string;
                  node?: {
                      addDependency?: (...deps: IDependable[]) => void;
                      addMetadata?: (
                          type: string,
                          data: any,
                          options?: MetadataOptions,
                      ) => void;
                      addr?: string;
                      addValidation?: (validation: IValidation) => void;
                      children?: IConstruct[];
                      defaultChild?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      dependencies?: IConstruct[];
                      findAll?: (order?: ConstructOrder) => IConstruct[];
                      findChild?: (id: string) => IConstruct;
                      getAllContext?: (defaults?: object) => any;
                      getContext?: (key: string) => any;
                      id?: string;
                      lock?: () => void;
                      locked?: boolean;
                      metadata?: MetadataEntry[];
                      path?: string;
                      root?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scope?: {
                          node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                      };
                      scopes?: IConstruct[];
                      setContext?: (key: string, value: any) => void;
                      tryFindChild?: (id: string) => undefined | IConstruct;
                      tryGetContext?: (key: string) => any;
                      tryRemoveChild?: (childName: string) => boolean;
                      validate?: () => string[];
                  };
                  resourceName?: string;
                  resourceType?: string;
                  toSubjectConfiguration?: () => SubjectConfiguration;
              };
              shareProcessNamespace?: boolean;
              spread?: boolean;
              terminationGracePeriod?: {
                  toDays?: (opts?: TimeConversionOptions) => number;
                  toHours?: (opts?: TimeConversionOptions) => number;
                  toHumanString?: () => string;
                  toIsoString?: () => string;
                  toMilliseconds?: (opts?: TimeConversionOptions) => number;
                  toMinutes?: (opts?: TimeConversionOptions) => number;
                  toSeconds?: (opts?: TimeConversionOptions) => number;
                  unitLabel?: () => string;
              };
              threads?: number;
              verticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] };
              volumes?: Volume[];
              workers?: number;
          }
          • Optional ReadonlyautomountServiceAccountToken?: boolean

            Indicates whether a service account token should be automatically mounted.

          • OptionalcontainerDefaults?: {
                args?: string[];
                command?: string[];
                envFrom?: EnvFrom[];
                envVariables?: {
                    [key: string]: undefined | { value?: any; valueFrom?: any };
                };
                image?: string;
                imagePullPolicy?: ImagePullPolicy;
                lifecycle?: {
                    postStart?: { _toKube?: (cont: ...) => ... };
                    preStop?: { _toKube?: (cont: ...) => ... };
                };
                liveness?: { _toKube?: (cont: Container) => Probe };
                name?: string;
                port?: number;
                portNumber?: number;
                ports?: ContainerPort[];
                readiness?: { _toKube?: (cont: Container) => Probe };
                resources?: {
                    cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                    ephemeralStorage?: {
                        limit?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                        request?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                    };
                    memory?: {
                        limit?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                        request?: {
                            asString?: ...;
                            toGibibytes?: ...;
                            toKibibytes?: ...;
                            toMebibytes?: ...;
                            toPebibytes?: ...;
                            toTebibytes?: ...;
                        };
                    };
                };
                restartPolicy?: ContainerRestartPolicy;
                securityContext?: {
                    allowPrivilegeEscalation?: boolean;
                    capabilities?: { add?: (...)[]; drop?: (...)[] };
                    ensureNonRoot?: boolean;
                    group?: number;
                    privileged?: boolean;
                    readOnlyRootFilesystem?: boolean;
                    seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                    user?: number;
                };
                startup?: { _toKube?: (cont: Container) => Probe };
                volumeMounts?: VolumeMount[];
                workingDir?: string;
            }
            • Optional Readonlyargs?: string[]

              Arguments to the entrypoint. The docker image's CMD is used if command is not provided.

              Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.

              Cannot be updated.

            • Optional Readonlycommand?: string[]

              Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

              - The docker image's ENTRYPOINT.
              
            • Optional ReadonlyenvFrom?: EnvFrom[]

              List of sources to populate environment variables in the container. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by the envVariables property with a duplicate key will take precedence.

              - No sources.
              
            • Optional ReadonlyenvVariables?: { [key: string]: undefined | { value?: any; valueFrom?: any } }

              Environment variables to set in the container.

              - No environment variables.
              
            • Optional Readonlyimage?: string

              Docker image name.

            • Optional ReadonlyimagePullPolicy?: ImagePullPolicy

              Image pull policy for this container

              ImagePullPolicy.ALWAYS
              
            • Optional Readonlylifecycle?: {
                  postStart?: { _toKube?: (cont: ...) => ... };
                  preStop?: { _toKube?: (cont: ...) => ... };
              }

              Describes actions that the management system should take in response to container lifecycle events.

              • Optional ReadonlypostStart?: { _toKube?: (cont: ...) => ... }

                This hook is executed immediately after a container is created. However, there is no guarantee that the hook will execute before the container ENTRYPOINT.

                - No post start handler.
                
              • Optional ReadonlypreStop?: { _toKube?: (cont: ...) => ... }

                This hook is called immediately before a container is terminated due to an API request or management event such as a liveness/startup probe failure, preemption, resource contention and others. A call to the PreStop hook fails if the container is already in a terminated or completed state and the hook must complete before the TERM signal to stop the container can be sent. The Pod's termination grace period countdown begins before the PreStop hook is executed, so regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. No parameters are passed to the handler.

            • Optional Readonlyliveness?: { _toKube?: (cont: Container) => Probe }

              Periodic probe of container liveness. Container will be restarted if the probe fails.

              - no liveness probe is defined
              
            • Optional Readonlyname?: string

              Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.

              'main'
              
            • Optional Readonlyport?: number
              • use portNumber.
            • Optional ReadonlyportNumber?: number

              Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.

              This is a convinience property if all you need a single TCP numbered port. In case more advanced configuartion is required, use the ports property.

              This port is added to the list of ports mentioned in the ports property.

              • Only the ports mentiond in the ports property are exposed.
            • Optional Readonlyports?: ContainerPort[]

              List of ports to expose from this container.

              • Only the port mentioned in the portNumber property is exposed.
            • Optional Readonlyreadiness?: { _toKube?: (cont: Container) => Probe }

              Determines when the container is ready to serve traffic.

              - no readiness probe is defined
              
            • Optional Readonlyresources?: {
                  cpu?: { limit?: { amount?: ... }; request?: { amount?: ... } };
                  ephemeralStorage?: {
                      limit?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                      request?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                  };
                  memory?: {
                      limit?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                      request?: {
                          asString?: ...;
                          toGibibytes?: ...;
                          toKibibytes?: ...;
                          toMebibytes?: ...;
                          toPebibytes?: ...;
                          toTebibytes?: ...;
                      };
                  };
              }

              Compute resources (CPU and memory requests and limits) required by the container

              cpu:
              request: 1000 millis
              limit: 1500 millis
              memory:
              request: 512 mebibytes
              limit: 2048 mebibytes
            • Optional ReadonlyrestartPolicy?: ContainerRestartPolicy

              Kubelet will start init containers with restartPolicy=Always in the order with other init containers, but instead of waiting for its completion, it will wait for the container startup completion Currently, only accepted value is Always

              - no restart policy is defined and the pod restart policy is applied
              
            • Optional ReadonlysecurityContext?: {
                  allowPrivilegeEscalation?: boolean;
                  capabilities?: { add?: (...)[]; drop?: (...)[] };
                  ensureNonRoot?: boolean;
                  group?: number;
                  privileged?: boolean;
                  readOnlyRootFilesystem?: boolean;
                  seccompProfile?: { localhostProfile?: string; type?: SeccompProfileType };
                  user?: number;
              }

              SecurityContext defines the security options the container should be run with. If set, the fields override equivalent fields of the pod's security context.

              ensureNonRoot: true
              privileged: false
              readOnlyRootFilesystem: true
              allowPrivilegeEscalation: false
              user: 25000
              group: 26000
              • Optional ReadonlyallowPrivilegeEscalation?: boolean

                Whether a process can gain more privileges than its parent process.

                false
                
              • Optional Readonlycapabilities?: { add?: (...)[]; drop?: (...)[] }

                POSIX capabilities for running containers

                none
                
                • Optional Readonlyadd?: (...)[]

                  Added capabilities

                • Optional Readonlydrop?: (...)[]

                  Removed capabilities

              • Optional ReadonlyensureNonRoot?: boolean

                Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

                true
                
              • Optional Readonlygroup?: number

                The GID to run the entrypoint of the container process.

                - 26000. An arbitrary number bigger than 9999 is selected here.
                This is so that the container is blocked to access host files even if
                somehow it manages to get access to host file system.
              • Optional Readonlyprivileged?: boolean

                Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host.

                false
                
              • Optional ReadonlyreadOnlyRootFilesystem?: boolean

                Whether this container has a read-only root filesystem.

                true
                
              • Optional ReadonlyseccompProfile?: { localhostProfile?: string; type?: SeccompProfileType }

                Container's seccomp profile settings. Only one profile source may be set

                none
                
                • Optional ReadonlylocalhostProfile?: string

                  localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is "Localhost".

                  - empty string
                  
                • Optional Readonlytype?: SeccompProfileType

                  Indicates which kind of seccomp profile will be applied

              • Optional Readonlyuser?: number

                The UID to run the entrypoint of the container process.

                - 25000. An arbitrary number bigger than 9999 is selected here.
                This is so that the container is blocked to access host files even if
                somehow it manages to get access to host file system.
            • Optional Readonlystartup?: { _toKube?: (cont: Container) => Probe }

              StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully

              - If a port is provided, then knocks on that port
              to determine when the container is ready for readiness and
              liveness probe checks.
              Otherwise, no startup probe is defined.
            • Optional ReadonlyvolumeMounts?: VolumeMount[]

              Pod volumes to mount into the container's filesystem. Cannot be updated.

            • Optional ReadonlyworkingDir?: string

              Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.

              - The container runtime's default.
              
          • Optional Readonlycontainers?: ContainerProps[]

            List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod.

            You can add additionnal containers using podSpec.addContainer()

            - No containers. Note that a pod spec must include at least one container.
            
          • Optional Readonlydns?: {
                hostname?: string;
                hostnameAsFQDN?: boolean;
                nameservers?: string[];
                options?: DnsOption[];
                policy?: DnsPolicy;
                searches?: string[];
                subdomain?: string;
            }

            DNS settings for the pod.

            policy: DnsPolicy.CLUSTER_FIRST
            hostnameAsFQDN: false
            • Optional Readonlyhostname?: string

              Specifies the hostname of the Pod.

              - Set to a system-defined value.
              
            • Optional ReadonlyhostnameAsFQDN?: boolean

              If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters to FQDN. If a pod does not have FQDN, this has no effect.

              false
              
            • Optional Readonlynameservers?: string[]

              A list of IP addresses that will be used as DNS servers for the Pod. There can be at most 3 IP addresses specified. When the policy is set to "NONE", the list must contain at least one IP address, otherwise this property is optional. The servers listed will be combined to the base nameservers generated from the specified DNS policy with duplicate addresses removed.

            • Optional Readonlyoptions?: DnsOption[]

              List of objects where each object may have a name property (required) and a value property (optional). The contents in this property will be merged to the options generated from the specified DNS policy. Duplicate entries are removed.

            • Optional Readonlypolicy?: DnsPolicy

              Set DNS policy for the pod.

              If policy is set to None, other configuration must be supplied.

              DnsPolicy.CLUSTER_FIRST
              
            • Optional Readonlysearches?: string[]

              A list of DNS search domains for hostname lookup in the Pod. When specified, the provided list will be merged into the base search domain names generated from the chosen DNS policy. Duplicate domain names are removed.

              Kubernetes allows for at most 6 search domains.

            • Optional Readonlysubdomain?: string

              If specified, the fully qualified Pod hostname will be "...svc.".

              - No subdomain.
              
          • Optional ReadonlydockerRegistryAuth?: {
                apiGroup?: string;
                apiVersion?: string;
                envValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
            }

            A secret containing docker credentials for authenticating to a registry.

            - No auth. Images are assumed to be publicly available.
            
            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • OptionalenvValue?: (key: string, options?: EnvValueFromSecretOptions) => EnvValue
            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

          • Optional ReadonlyhostAliases?: HostAlias[]

            HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.

            io.k8s.api.core.v1.HostAlias

          • Optional ReadonlyhostNetwork?: boolean

            Host network for the pod.

            false
            
          • Optionalimage?: { pullPolicy?: string; repository?: string; tag?: string }
          • Optional ReadonlyinitContainers?: ContainerProps[]

            List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion.

            Init containers cannot currently be added ,removed or updated.

          • Optional Readonlyisolate?: boolean

            Isolates the pod. This will prevent any ingress or egress connections to / from this pod. You can however allow explicit connections post instantiation by using the .connections property.

            false
            
          • Optional Readonlymetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            Metadata that all persisted resources must have, which includes all objects users must create.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optional ReadonlypodMetadata?: {
                annotations?: { [key: string]: undefined | string };
                finalizers?: string[];
                labels?: { [key: string]: undefined | string };
                name?: string;
                namespace?: string;
                ownerReferences?: OwnerReference[];
                readonly [key: string]: any;
            }

            The pod metadata of this workload.

            • Optional Readonlyannotations?: { [key: string]: undefined | string }

              Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

              - No annotations.
              
            • Optional Readonlyfinalizers?: string[]

              Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

              Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

            • Optional Readonlylabels?: { [key: string]: undefined | string }

              Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

              - No labels.
              
            • Optional Readonlyname?: string

              The unique, namespace-global, name of this object inside the Kubernetes cluster.

              Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

              You can supply custom name allocation logic by overriding the chart.generateObjectName method.

              If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

              - an app-unique name generated by the chart
              
            • Optional Readonlynamespace?: string

              Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

              undefined (will be assigned to the 'default' namespace)
              
            • Optional ReadonlyownerReferences?: OwnerReference[]

              List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

              Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

          • Optionalprobes?: {
                liveness?: { _toKube?: (cont: Container) => Probe };
                readiness?: { _toKube?: (cont: Container) => Probe };
                startup?: { _toKube?: (cont: Container) => Probe };
            }
            • Optional Readonlyliveness?: { _toKube?: (cont: Container) => Probe }

              Periodic probe of container liveness. Container will be restarted if the probe fails.

              - no liveness probe is defined
              
            • Optional Readonlyreadiness?: { _toKube?: (cont: Container) => Probe }

              Determines when the container is ready to serve traffic.

              - no readiness probe is defined
              
            • Optional Readonlystartup?: { _toKube?: (cont: Container) => Probe }

              StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully

              - If a port is provided, then knocks on that port
              to determine when the container is ready for readiness and
              liveness probe checks.
              Otherwise, no startup probe is defined.
          • OptionalreplicaCount?: number
          • Optionalresources?: {
                cpu?: { limit?: number; request?: number };
                memory?: { limit?: number; request?: number };
            }
          • Optional ReadonlyrestartPolicy?: RestartPolicy

            Restart policy for all containers within the pod.

          • Optionalscaling?: {
                cpuUtilPercent?: number;
                hpa?: {
                    maxReplicas?: number;
                    metadata?: {
                        annotations?: { [key: ...]: ... };
                        finalizers?: (...)[];
                        labels?: { [key: ...]: ... };
                        name?: string;
                        namespace?: string;
                        ownerReferences?: (...)[];
                        readonly [key: string]: any;
                    };
                    metrics?: Metric[];
                    minReplicas?: number;
                    scaleDown?: {
                        policies?: (...)[];
                        stabilizationWindow?: {
                            toDays?: ...;
                            toHours?: ...;
                            toHumanString?: ...;
                            toIsoString?: ...;
                            toMilliseconds?: ...;
                            toMinutes?: ...;
                            toSeconds?: ...;
                            unitLabel?: ...;
                        };
                        strategy?: ScalingStrategy;
                    };
                    scaleUp?: {
                        policies?: (...)[];
                        stabilizationWindow?: {
                            toDays?: ...;
                            toHours?: ...;
                            toHumanString?: ...;
                            toIsoString?: ...;
                            toMilliseconds?: ...;
                            toMinutes?: ...;
                            toSeconds?: ...;
                            unitLabel?: ...;
                        };
                        strategy?: ScalingStrategy;
                    };
                    target?: {
                        hasAutoscaler?: boolean;
                        markHasAutoscaler?: () => ...;
                        toScalingTarget?: () => ...;
                    };
                };
                maxReplicas?: number;
                memUtilPercent?: number;
                minReplicas?: number;
                target?: {
                    hasAutoscaler?: boolean;
                    markHasAutoscaler?: () => void;
                    toScalingTarget?: () => ScalingTarget;
                };
            }
            • Optional ReadonlycpuUtilPercent?: number
            • Optional Readonlyhpa?: {
                  maxReplicas?: number;
                  metadata?: {
                      annotations?: { [key: ...]: ... };
                      finalizers?: (...)[];
                      labels?: { [key: ...]: ... };
                      name?: string;
                      namespace?: string;
                      ownerReferences?: (...)[];
                      readonly [key: string]: any;
                  };
                  metrics?: Metric[];
                  minReplicas?: number;
                  scaleDown?: {
                      policies?: (...)[];
                      stabilizationWindow?: {
                          toDays?: ...;
                          toHours?: ...;
                          toHumanString?: ...;
                          toIsoString?: ...;
                          toMilliseconds?: ...;
                          toMinutes?: ...;
                          toSeconds?: ...;
                          unitLabel?: ...;
                      };
                      strategy?: ScalingStrategy;
                  };
                  scaleUp?: {
                      policies?: (...)[];
                      stabilizationWindow?: {
                          toDays?: ...;
                          toHours?: ...;
                          toHumanString?: ...;
                          toIsoString?: ...;
                          toMilliseconds?: ...;
                          toMinutes?: ...;
                          toSeconds?: ...;
                          unitLabel?: ...;
                      };
                      strategy?: ScalingStrategy;
                  };
                  target?: {
                      hasAutoscaler?: boolean;
                      markHasAutoscaler?: () => ...;
                      toScalingTarget?: () => ...;
                  };
              }

              Escape hatch

              • Optional ReadonlymaxReplicas?: number

                The maximum number of replicas that can be scaled up to.

              • Optional Readonlymetadata?: {
                    annotations?: { [key: ...]: ... };
                    finalizers?: (...)[];
                    labels?: { [key: ...]: ... };
                    name?: string;
                    namespace?: string;
                    ownerReferences?: (...)[];
                    readonly [key: string]: any;
                }

                Metadata that all persisted resources must have, which includes all objects users must create.

                • Optional Readonlyannotations?: { [key: ...]: ... }

                  Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

                  - No annotations.
                  
                • Optional Readonlyfinalizers?: (...)[]

                  Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.

                  Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

                • Optional Readonlylabels?: { [key: ...]: ... }

                  Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services.

                  - No labels.
                  
                • Optional Readonlyname?: string

                  The unique, namespace-global, name of this object inside the Kubernetes cluster.

                  Normally, you shouldn't specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.

                  You can supply custom name allocation logic by overriding the chart.generateObjectName method.

                  If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won't be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.

                  - an app-unique name generated by the chart
                  
                • Optional Readonlynamespace?: string

                  Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

                  undefined (will be assigned to the 'default' namespace)
                  
                • Optional ReadonlyownerReferences?: (...)[]

                  List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

                  Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don't need to and can allow Kubernetes to automatically manage the relationships.

              • Optional Readonlymetrics?: Metric[]

                The metric conditions that trigger a scale up or scale down.

                - If metrics are not provided, then the target resource
                constraints (e.g. cpu limit) will be used as scaling metrics.
              • Optional ReadonlyminReplicas?: number

                The minimum number of replicas that can be scaled down to.

                Can be set to 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.

                1
                
              • Optional ReadonlyscaleDown?: {
                    policies?: (...)[];
                    stabilizationWindow?: {
                        toDays?: ...;
                        toHours?: ...;
                        toHumanString?: ...;
                        toIsoString?: ...;
                        toMilliseconds?: ...;
                        toMinutes?: ...;
                        toSeconds?: ...;
                        unitLabel?: ...;
                    };
                    strategy?: ScalingStrategy;
                }

                The scaling behavior when scaling down.

                - Scale down to minReplica count with a 5 minute stabilization window.
                
                • Optional Readonlypolicies?: (...)[]

                  The scaling policies.

                  * Scale up
                  * Increase no more than 4 pods per 60 seconds
                  * Double the number of pods per 60 seconds
                  * Scale down
                  * Decrease to minReplica count
                • Optional ReadonlystabilizationWindow?: {
                      toDays?: ...;
                      toHours?: ...;
                      toHumanString?: ...;
                      toIsoString?: ...;
                      toMilliseconds?: ...;
                      toMinutes?: ...;
                      toSeconds?: ...;
                      unitLabel?: ...;
                  }

                  Defines the window of past metrics that the autoscaler should consider when calculating wether or not autoscaling should occur.

                  Minimum duration is 1 second, max is 1 hour.

                  stabilizationWindow: Duration.minutes(30)
                  // Autoscaler considers the last 30 minutes of metrics when deciding whether to scale.
                  * On scale down no stabilization is performed.
                  * On scale up stabilization is performed for 5 minutes.
                • Optional Readonlystrategy?: ScalingStrategy

                  The strategy to use when scaling.

                  MAX_CHANGE
                  
              • Optional ReadonlyscaleUp?: {
                    policies?: (...)[];
                    stabilizationWindow?: {
                        toDays?: ...;
                        toHours?: ...;
                        toHumanString?: ...;
                        toIsoString?: ...;
                        toMilliseconds?: ...;
                        toMinutes?: ...;
                        toSeconds?: ...;
                        unitLabel?: ...;
                    };
                    strategy?: ScalingStrategy;
                }

                The scaling behavior when scaling up.

                - Is the higher of:
                * Increase no more than 4 pods per 60 seconds
                * Double the number of pods per 60 seconds
                • Optional Readonlypolicies?: (...)[]

                  The scaling policies.

                  * Scale up
                  * Increase no more than 4 pods per 60 seconds
                  * Double the number of pods per 60 seconds
                  * Scale down
                  * Decrease to minReplica count
                • Optional ReadonlystabilizationWindow?: {
                      toDays?: ...;
                      toHours?: ...;
                      toHumanString?: ...;
                      toIsoString?: ...;
                      toMilliseconds?: ...;
                      toMinutes?: ...;
                      toSeconds?: ...;
                      unitLabel?: ...;
                  }

                  Defines the window of past metrics that the autoscaler should consider when calculating wether or not autoscaling should occur.

                  Minimum duration is 1 second, max is 1 hour.

                  stabilizationWindow: Duration.minutes(30)
                  // Autoscaler considers the last 30 minutes of metrics when deciding whether to scale.
                  * On scale down no stabilization is performed.
                  * On scale up stabilization is performed for 5 minutes.
                • Optional Readonlystrategy?: ScalingStrategy

                  The strategy to use when scaling.

                  MAX_CHANGE
                  
              • Optional Readonlytarget?: {
                    hasAutoscaler?: boolean;
                    markHasAutoscaler?: () => ...;
                    toScalingTarget?: () => ...;
                }

                The workload to scale up or down.

                Scalable workload types:

                • Deployment
                • StatefulSet
                • OptionalhasAutoscaler?: boolean

                  If this is a target of an autoscaler.

                • OptionalmarkHasAutoscaler?: () => ...
                • OptionaltoScalingTarget?: () => ...
            • Optional ReadonlymaxReplicas?: number
            • Optional ReadonlymemUtilPercent?: number
            • Optional ReadonlyminReplicas?: number
            • Optional Readonlytarget?: {
                  hasAutoscaler?: boolean;
                  markHasAutoscaler?: () => void;
                  toScalingTarget?: () => ScalingTarget;
              }
              • OptionalhasAutoscaler?: boolean

                If this is a target of an autoscaler.

              • OptionalmarkHasAutoscaler?: () => void
              • OptionaltoScalingTarget?: () => ScalingTarget
          • Optional ReadonlysecurityContext?: {
                ensureNonRoot?: boolean;
                fsGroup?: number;
                fsGroupChangePolicy?: FsGroupChangePolicy;
                group?: number;
                sysctls?: Sysctl[];
                user?: number;
            }

            SecurityContext holds pod-level security attributes and common container settings.

            fsGroupChangePolicy: FsGroupChangePolicy.FsGroupChangePolicy.ALWAYS
            ensureNonRoot: true
            • Optional ReadonlyensureNonRoot?: boolean

              Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does.

              true
              
            • Optional ReadonlyfsGroup?: number

              Modify the ownership and permissions of pod volumes to this GID.

              - Volume ownership is not changed.
              
            • Optional ReadonlyfsGroupChangePolicy?: FsGroupChangePolicy

              Defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir.

              FsGroupChangePolicy.ALWAYS
              
            • Optional Readonlygroup?: number

              The GID to run the entrypoint of the container process.

              - Group configured by container runtime
              
            • Optional Readonlysysctls?: Sysctl[]

              Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.

              - No sysctls
              
            • Optional Readonlyuser?: number

              The UID to run the entrypoint of the container process.

              - User specified in image metadata
              
          • Optional Readonlyselect?: boolean

            Automatically allocates a pod label selector for this workload and add it to the pod metadata. This ensures this workload manages pods created by its pod template.

            true
            
          • Optional ReadonlyserviceAccount?: {
                apiGroup?: string;
                apiVersion?: string;
                kind?: string;
                name?: string;
                node?: {
                    addDependency?: (...deps: IDependable[]) => void;
                    addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                    addr?: string;
                    addValidation?: (validation: IValidation) => void;
                    children?: IConstruct[];
                    defaultChild?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    dependencies?: IConstruct[];
                    findAll?: (order?: ConstructOrder) => IConstruct[];
                    findChild?: (id: string) => IConstruct;
                    getAllContext?: (defaults?: object) => any;
                    getContext?: (key: string) => any;
                    id?: string;
                    lock?: () => void;
                    locked?: boolean;
                    metadata?: MetadataEntry[];
                    path?: string;
                    root?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scope?: {
                        node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                    };
                    scopes?: IConstruct[];
                    setContext?: (key: string, value: any) => void;
                    tryFindChild?: (id: string) => undefined | IConstruct;
                    tryGetContext?: (key: string) => any;
                    tryRemoveChild?: (childName: string) => boolean;
                    validate?: () => string[];
                };
                resourceName?: string;
                resourceType?: string;
                toSubjectConfiguration?: () => SubjectConfiguration;
            }

            A service account provides an identity for processes that run in a Pod.

            When you (a human) access the cluster (for example, using kubectl), you are authenticated by the apiserver as a particular User Account (currently this is usually admin, unless your cluster administrator has customized your cluster). Processes in containers inside pods can also contact the apiserver. When they do, they are authenticated as a particular Service Account (for example, default).

            • Optional ReadonlyapiGroup?: string

              The group portion of the API version (e.g. authorization.k8s.io).

            • Optional ReadonlyapiVersion?: string

              The object's API version (e.g. "authorization.k8s.io/v1")

            • Optional Readonlykind?: string

              The object kind (e.g. "Deployment").

            • Optional Readonlyname?: string

              The Kubernetes name of this resource.

            • Optional Readonlynode?: {
                  addDependency?: (...deps: IDependable[]) => void;
                  addMetadata?: (type: string, data: any, options?: MetadataOptions) => void;
                  addr?: string;
                  addValidation?: (validation: IValidation) => void;
                  children?: IConstruct[];
                  defaultChild?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  dependencies?: IConstruct[];
                  findAll?: (order?: ConstructOrder) => IConstruct[];
                  findChild?: (id: string) => IConstruct;
                  getAllContext?: (defaults?: object) => any;
                  getContext?: (key: string) => any;
                  id?: string;
                  lock?: () => void;
                  locked?: boolean;
                  metadata?: MetadataEntry[];
                  path?: string;
                  root?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scope?: {
                      node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                  };
                  scopes?: IConstruct[];
                  setContext?: (key: string, value: any) => void;
                  tryFindChild?: (id: string) => undefined | IConstruct;
                  tryGetContext?: (key: string) => any;
                  tryRemoveChild?: (childName: string) => boolean;
                  validate?: () => string[];
              }

              The tree node.

              • OptionaladdDependency?: (...deps: IDependable[]) => void
              • OptionaladdMetadata?: (type: string, data: any, options?: MetadataOptions) => void
              • Optionaladdr?: string
              • OptionaladdValidation?: (validation: IValidation) => void
              • Optionalchildren?: IConstruct[]
              • OptionaldefaultChild?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionaldependencies?: IConstruct[]
              • OptionalfindAll?: (order?: ConstructOrder) => IConstruct[]
              • OptionalfindChild?: (id: string) => IConstruct
              • OptionalgetAllContext?: (defaults?: object) => any
              • OptionalgetContext?: (key: string) => any
              • Optional Readonlyid?: string

                The id of this construct within the current scope.

                This is a scope-unique id. To obtain an app-unique id for this construct, use addr.

              • Optionallock?: () => void
              • Optionallocked?: boolean
              • Optionalmetadata?: MetadataEntry[]
              • Optionalpath?: string
              • Optionalroot?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }
                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optional Readonlyscope?: {
                    node?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined;
                }

                Returns the scope in which this construct is defined.

                The value is undefined at the root of the construct scope tree.

                • Optional Readonlynode?: { readonly scope?: { readonly node?: ... | undefined; } | undefined; readonly id?: string | undefined; readonly path?: string | undefined; readonly addr?: string | undefined; tryFindChild?: ((id: string) => IConstruct | undefined) | undefined; ... 18 more ...; lock?: (() => void) | undefined; } | undefined

                  The tree node.

              • Optionalscopes?: IConstruct[]
              • OptionalsetContext?: (key: string, value: any) => void
              • OptionaltryFindChild?: (id: string) => undefined | IConstruct
              • OptionaltryGetContext?: (key: string) => any
              • OptionaltryRemoveChild?: (childName: string) => boolean
              • Optionalvalidate?: () => string[]
            • Optional ReadonlyresourceName?: string

              The unique, namespace-global, name of an object inside the Kubernetes cluster.

              If this is omitted, the ApiResource should represent all objects of the given type.

            • Optional ReadonlyresourceType?: string

              The name of a resource type as it appears in the relevant API endpoint.

            • OptionaltoSubjectConfiguration?: () => SubjectConfiguration
          • Optional ReadonlyshareProcessNamespace?: boolean

            When process namespace sharing is enabled, processes in a container are visible to all other containers in the same pod.

          • Optional Readonlyspread?: boolean

            Automatically spread pods across hostname and zones.

          • Optional ReadonlyterminationGracePeriod?: {
                toDays?: (opts?: TimeConversionOptions) => number;
                toHours?: (opts?: TimeConversionOptions) => number;
                toHumanString?: () => string;
                toIsoString?: () => string;
                toMilliseconds?: (opts?: TimeConversionOptions) => number;
                toMinutes?: (opts?: TimeConversionOptions) => number;
                toSeconds?: (opts?: TimeConversionOptions) => number;
                unitLabel?: () => string;
            }

            Grace period until the pod is terminated

            Duration.seconds(30)
            
            • OptionaltoDays?: (opts?: TimeConversionOptions) => number
            • OptionaltoHours?: (opts?: TimeConversionOptions) => number
            • OptionaltoHumanString?: () => string
            • OptionaltoIsoString?: () => string
            • OptionaltoMilliseconds?: (opts?: TimeConversionOptions) => number
            • OptionaltoMinutes?: (opts?: TimeConversionOptions) => number
            • OptionaltoSeconds?: (opts?: TimeConversionOptions) => number
            • OptionalunitLabel?: () => string
          • Optionalthreads?: number
          • OptionalverticalScaling?: { enabled?: boolean; policies?: ContainerPolicy[] }
          • Optional Readonlyvolumes?: Volume[]

            List of volumes that can be mounted by containers belonging to the pod.

            You can also add volumes later using podSpec.addVolume()

          • Optionalworkers?: number

      Returns CrisisCleanupChart