Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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