All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.awsnative.batch.kotlin.inputs.JobDefinitionPodPropertiesArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.batch.kotlin.inputs

import com.pulumi.awsnative.batch.inputs.JobDefinitionPodPropertiesArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property containers The properties of the container that's used on the Amazon EKS pod.
 * @property dnsPolicy The DNS policy for the pod. The default value is `ClusterFirst` . If the `hostNetwork` parameter is not specified, the default is `ClusterFirstWithHostNet` . `ClusterFirst` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node. For more information, see [Pod's DNS policy](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) in the *Kubernetes documentation* .
 * Valid values: `Default` | `ClusterFirst` | `ClusterFirstWithHostNet`
 * @property hostNetwork Indicates if the pod uses the hosts' network IP address. The default value is `true` . Setting this to `false` enables the Kubernetes pod networking model. Most AWS Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see [Host namespaces](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) and [Pod networking](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) in the *Kubernetes documentation* .
 * @property imagePullSecrets
 * @property initContainers These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
 * > This object is limited to 10 elements
 * @property metadata Metadata about the Kubernetes pod. For more information, see [Understanding Kubernetes Objects](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) in the *Kubernetes documentation* .
 * @property serviceAccountName The name of the service account that's used to run the pod. For more information, see [Kubernetes service accounts](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) and [Configure a Kubernetes service account to assume an IAM role](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) in the *Amazon EKS User Guide* and [Configure service accounts for pods](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) in the *Kubernetes documentation* .
 * @property shareProcessNamespace Indicates if the processes in a container are shared, or visible, to other containers in the same pod. For more information, see [Share Process Namespace between Containers in a Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) .
 * @property volumes Specifies the volumes for a job definition that uses Amazon EKS resources.
 */
public data class JobDefinitionPodPropertiesArgs(
    public val containers: Output>? = null,
    public val dnsPolicy: Output? = null,
    public val hostNetwork: Output? = null,
    public val imagePullSecrets: Output>? = null,
    public val initContainers: Output>? = null,
    public val metadata: Output? = null,
    public val serviceAccountName: Output? = null,
    public val shareProcessNamespace: Output? = null,
    public val volumes: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.batch.inputs.JobDefinitionPodPropertiesArgs =
        com.pulumi.awsnative.batch.inputs.JobDefinitionPodPropertiesArgs.builder()
            .containers(
                containers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .dnsPolicy(dnsPolicy?.applyValue({ args0 -> args0 }))
            .hostNetwork(hostNetwork?.applyValue({ args0 -> args0 }))
            .imagePullSecrets(
                imagePullSecrets?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .initContainers(
                initContainers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .metadata(metadata?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .serviceAccountName(serviceAccountName?.applyValue({ args0 -> args0 }))
            .shareProcessNamespace(shareProcessNamespace?.applyValue({ args0 -> args0 }))
            .volumes(
                volumes?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [JobDefinitionPodPropertiesArgs].
 */
@PulumiTagMarker
public class JobDefinitionPodPropertiesArgsBuilder internal constructor() {
    private var containers: Output>? = null

    private var dnsPolicy: Output? = null

    private var hostNetwork: Output? = null

    private var imagePullSecrets: Output>? = null

    private var initContainers: Output>? = null

    private var metadata: Output? = null

    private var serviceAccountName: Output? = null

    private var shareProcessNamespace: Output? = null

    private var volumes: Output>? = null

    /**
     * @param value The properties of the container that's used on the Amazon EKS pod.
     */
    @JvmName("txcoyugtmcwcscyn")
    public suspend fun containers(`value`: Output>) {
        this.containers = value
    }

    @JvmName("gnlqpnldfoigytmf")
    public suspend fun containers(vararg values: Output) {
        this.containers = Output.all(values.asList())
    }

    /**
     * @param values The properties of the container that's used on the Amazon EKS pod.
     */
    @JvmName("ydnujfaoxhvhmjdd")
    public suspend fun containers(values: List>) {
        this.containers = Output.all(values)
    }

    /**
     * @param value The DNS policy for the pod. The default value is `ClusterFirst` . If the `hostNetwork` parameter is not specified, the default is `ClusterFirstWithHostNet` . `ClusterFirst` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node. For more information, see [Pod's DNS policy](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) in the *Kubernetes documentation* .
     * Valid values: `Default` | `ClusterFirst` | `ClusterFirstWithHostNet`
     */
    @JvmName("dfdmichglceypjsx")
    public suspend fun dnsPolicy(`value`: Output) {
        this.dnsPolicy = value
    }

    /**
     * @param value Indicates if the pod uses the hosts' network IP address. The default value is `true` . Setting this to `false` enables the Kubernetes pod networking model. Most AWS Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see [Host namespaces](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) and [Pod networking](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) in the *Kubernetes documentation* .
     */
    @JvmName("respiagegfkbamwb")
    public suspend fun hostNetwork(`value`: Output) {
        this.hostNetwork = value
    }

    /**
     * @param value
     */
    @JvmName("gjfkplwioujbwfni")
    public suspend fun imagePullSecrets(`value`: Output>) {
        this.imagePullSecrets = value
    }

    @JvmName("ckyyhephscgwkbqj")
    public suspend fun imagePullSecrets(vararg values: Output) {
        this.imagePullSecrets = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("pwuswleynuuowxhh")
    public suspend fun imagePullSecrets(values: List>) {
        this.imagePullSecrets = Output.all(values)
    }

    /**
     * @param value These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
     * > This object is limited to 10 elements
     */
    @JvmName("wyxwvlsdifhrpphl")
    public suspend fun initContainers(`value`: Output>) {
        this.initContainers = value
    }

    @JvmName("mhaapggqjknfabwk")
    public suspend fun initContainers(vararg values: Output) {
        this.initContainers = Output.all(values.asList())
    }

    /**
     * @param values These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
     * > This object is limited to 10 elements
     */
    @JvmName("glkwbwejaviqotrp")
    public suspend fun initContainers(values: List>) {
        this.initContainers = Output.all(values)
    }

    /**
     * @param value Metadata about the Kubernetes pod. For more information, see [Understanding Kubernetes Objects](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) in the *Kubernetes documentation* .
     */
    @JvmName("gipsaaktcwmeytag")
    public suspend fun metadata(`value`: Output) {
        this.metadata = value
    }

    /**
     * @param value The name of the service account that's used to run the pod. For more information, see [Kubernetes service accounts](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) and [Configure a Kubernetes service account to assume an IAM role](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) in the *Amazon EKS User Guide* and [Configure service accounts for pods](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) in the *Kubernetes documentation* .
     */
    @JvmName("rktkuhbnpynmusdk")
    public suspend fun serviceAccountName(`value`: Output) {
        this.serviceAccountName = value
    }

    /**
     * @param value Indicates if the processes in a container are shared, or visible, to other containers in the same pod. For more information, see [Share Process Namespace between Containers in a Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) .
     */
    @JvmName("kgnogrubjgibqquc")
    public suspend fun shareProcessNamespace(`value`: Output) {
        this.shareProcessNamespace = value
    }

    /**
     * @param value Specifies the volumes for a job definition that uses Amazon EKS resources.
     */
    @JvmName("bulybrfjcpndtcvl")
    public suspend fun volumes(`value`: Output>) {
        this.volumes = value
    }

    @JvmName("ismbwjfhbjdddotg")
    public suspend fun volumes(vararg values: Output) {
        this.volumes = Output.all(values.asList())
    }

    /**
     * @param values Specifies the volumes for a job definition that uses Amazon EKS resources.
     */
    @JvmName("gesagedccrhddsxx")
    public suspend fun volumes(values: List>) {
        this.volumes = Output.all(values)
    }

    /**
     * @param value The properties of the container that's used on the Amazon EKS pod.
     */
    @JvmName("gbuicubdblynvgnb")
    public suspend fun containers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.containers = mapped
    }

    /**
     * @param argument The properties of the container that's used on the Amazon EKS pod.
     */
    @JvmName("qcsljhuumbnrjjpd")
    public suspend fun containers(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            JobDefinitionEksContainerArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.containers = mapped
    }

    /**
     * @param argument The properties of the container that's used on the Amazon EKS pod.
     */
    @JvmName("xhpmijfbhgunmyir")
    public suspend fun containers(vararg argument: suspend JobDefinitionEksContainerArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            JobDefinitionEksContainerArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.containers = mapped
    }

    /**
     * @param argument The properties of the container that's used on the Amazon EKS pod.
     */
    @JvmName("poggtgafeorvtahc")
    public suspend fun containers(argument: suspend JobDefinitionEksContainerArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            JobDefinitionEksContainerArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.containers = mapped
    }

    /**
     * @param values The properties of the container that's used on the Amazon EKS pod.
     */
    @JvmName("mindgbvuhyhgnjaq")
    public suspend fun containers(vararg values: JobDefinitionEksContainerArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.containers = mapped
    }

    /**
     * @param value The DNS policy for the pod. The default value is `ClusterFirst` . If the `hostNetwork` parameter is not specified, the default is `ClusterFirstWithHostNet` . `ClusterFirst` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node. For more information, see [Pod's DNS policy](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) in the *Kubernetes documentation* .
     * Valid values: `Default` | `ClusterFirst` | `ClusterFirstWithHostNet`
     */
    @JvmName("iedbayliecongtup")
    public suspend fun dnsPolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dnsPolicy = mapped
    }

    /**
     * @param value Indicates if the pod uses the hosts' network IP address. The default value is `true` . Setting this to `false` enables the Kubernetes pod networking model. Most AWS Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see [Host namespaces](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) and [Pod networking](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) in the *Kubernetes documentation* .
     */
    @JvmName("gmdgykrwktfcbfua")
    public suspend fun hostNetwork(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hostNetwork = mapped
    }

    /**
     * @param value
     */
    @JvmName("ygqfkaqupwnjscui")
    public suspend fun imagePullSecrets(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.imagePullSecrets = mapped
    }

    /**
     * @param argument
     */
    @JvmName("nwhcronqunirkwqt")
    public suspend fun imagePullSecrets(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            JobDefinitionImagePullSecretArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.imagePullSecrets = mapped
    }

    /**
     * @param argument
     */
    @JvmName("lsuqgbkqlqqcfcxo")
    public suspend fun imagePullSecrets(vararg argument: suspend JobDefinitionImagePullSecretArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            JobDefinitionImagePullSecretArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.imagePullSecrets = mapped
    }

    /**
     * @param argument
     */
    @JvmName("uknwllyryuhhoruf")
    public suspend fun imagePullSecrets(argument: suspend JobDefinitionImagePullSecretArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            JobDefinitionImagePullSecretArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.imagePullSecrets = mapped
    }

    /**
     * @param values
     */
    @JvmName("ccypiefxnofyblqq")
    public suspend fun imagePullSecrets(vararg values: JobDefinitionImagePullSecretArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.imagePullSecrets = mapped
    }

    /**
     * @param value These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
     * > This object is limited to 10 elements
     */
    @JvmName("uufmeytdgfwxivxb")
    public suspend fun initContainers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.initContainers = mapped
    }

    /**
     * @param argument These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
     * > This object is limited to 10 elements
     */
    @JvmName("vmpulglpqujlantq")
    public suspend fun initContainers(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            JobDefinitionEksContainerArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.initContainers = mapped
    }

    /**
     * @param argument These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
     * > This object is limited to 10 elements
     */
    @JvmName("istowycltyasthft")
    public suspend fun initContainers(vararg argument: suspend JobDefinitionEksContainerArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            JobDefinitionEksContainerArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.initContainers = mapped
    }

    /**
     * @param argument These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
     * > This object is limited to 10 elements
     */
    @JvmName("jpuyqimgvlcooegl")
    public suspend fun initContainers(argument: suspend JobDefinitionEksContainerArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            JobDefinitionEksContainerArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.initContainers = mapped
    }

    /**
     * @param values These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see [Init Containers](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in the *Kubernetes documentation* .
     * > This object is limited to 10 elements
     */
    @JvmName("gqgvkrfbpwcdkvef")
    public suspend fun initContainers(vararg values: JobDefinitionEksContainerArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.initContainers = mapped
    }

    /**
     * @param value Metadata about the Kubernetes pod. For more information, see [Understanding Kubernetes Objects](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) in the *Kubernetes documentation* .
     */
    @JvmName("odfaxfjnpffabmij")
    public suspend fun metadata(`value`: JobDefinitionMetadataArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metadata = mapped
    }

    /**
     * @param argument Metadata about the Kubernetes pod. For more information, see [Understanding Kubernetes Objects](https://docs.aws.amazon.com/https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) in the *Kubernetes documentation* .
     */
    @JvmName("qjoofpxiykynujti")
    public suspend fun metadata(argument: suspend JobDefinitionMetadataArgsBuilder.() -> Unit) {
        val toBeMapped = JobDefinitionMetadataArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.metadata = mapped
    }

    /**
     * @param value The name of the service account that's used to run the pod. For more information, see [Kubernetes service accounts](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) and [Configure a Kubernetes service account to assume an IAM role](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) in the *Amazon EKS User Guide* and [Configure service accounts for pods](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) in the *Kubernetes documentation* .
     */
    @JvmName("xuuctfcedrwajrrl")
    public suspend fun serviceAccountName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceAccountName = mapped
    }

    /**
     * @param value Indicates if the processes in a container are shared, or visible, to other containers in the same pod. For more information, see [Share Process Namespace between Containers in a Pod](https://docs.aws.amazon.com/https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) .
     */
    @JvmName("mesifekqsvcwgydy")
    public suspend fun shareProcessNamespace(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.shareProcessNamespace = mapped
    }

    /**
     * @param value Specifies the volumes for a job definition that uses Amazon EKS resources.
     */
    @JvmName("tnidlxekksiybrjy")
    public suspend fun volumes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.volumes = mapped
    }

    /**
     * @param argument Specifies the volumes for a job definition that uses Amazon EKS resources.
     */
    @JvmName("gcyskpagstvdhcet")
    public suspend fun volumes(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            JobDefinitionEksVolumeArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.volumes = mapped
    }

    /**
     * @param argument Specifies the volumes for a job definition that uses Amazon EKS resources.
     */
    @JvmName("jigxiutknotoeknr")
    public suspend fun volumes(vararg argument: suspend JobDefinitionEksVolumeArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            JobDefinitionEksVolumeArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.volumes = mapped
    }

    /**
     * @param argument Specifies the volumes for a job definition that uses Amazon EKS resources.
     */
    @JvmName("tgtackntvcqtxnql")
    public suspend fun volumes(argument: suspend JobDefinitionEksVolumeArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(JobDefinitionEksVolumeArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.volumes = mapped
    }

    /**
     * @param values Specifies the volumes for a job definition that uses Amazon EKS resources.
     */
    @JvmName("ydsugqayrakqmvle")
    public suspend fun volumes(vararg values: JobDefinitionEksVolumeArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.volumes = mapped
    }

    internal fun build(): JobDefinitionPodPropertiesArgs = JobDefinitionPodPropertiesArgs(
        containers = containers,
        dnsPolicy = dnsPolicy,
        hostNetwork = hostNetwork,
        imagePullSecrets = imagePullSecrets,
        initContainers = initContainers,
        metadata = metadata,
        serviceAccountName = serviceAccountName,
        shareProcessNamespace = shareProcessNamespace,
        volumes = volumes,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy