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

com.pulumi.awsnative.ecs.kotlin.inputs.TaskDefinitionSystemControlArgs.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.ecs.kotlin.inputs

import com.pulumi.awsnative.ecs.inputs.TaskDefinitionSystemControlArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.
 *  We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages:
 *   +  For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect.
 *   +  For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported.
 *  If you're setting an IPC resource namespace to use for the containers in the task, the following conditions apply to your system controls. For more information, see [IPC mode](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_ipcmode).
 *   +  For tasks that use the ``host`` IPC mode, IPC namespace ``systemControls`` aren't supported.
 *   +  For tasks that use the ``task`` IPC mode, IPC namespace ``systemControls`` values apply to all containers within a task.
 *   This parameter is not supported for Windows containers.
 *    This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.
 * @property namespace The namespaced kernel parameter to set a ``value`` for.
 * @property value The namespaced kernel parameter to set a ``value`` for.
 *  Valid IPC namespace values: ``"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"``, and ``Sysctls`` that start with ``"fs.mqueue.*"``
 *  Valid network namespace values: ``Sysctls`` that start with ``"net.*"``
 *  All of these values are supported by Fargate.
 */
public data class TaskDefinitionSystemControlArgs(
    public val namespace: Output? = null,
    public val `value`: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ecs.inputs.TaskDefinitionSystemControlArgs =
        com.pulumi.awsnative.ecs.inputs.TaskDefinitionSystemControlArgs.builder()
            .namespace(namespace?.applyValue({ args0 -> args0 }))
            .`value`(`value`?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [TaskDefinitionSystemControlArgs].
 */
@PulumiTagMarker
public class TaskDefinitionSystemControlArgsBuilder internal constructor() {
    private var namespace: Output? = null

    private var `value`: Output? = null

    /**
     * @param value The namespaced kernel parameter to set a ``value`` for.
     */
    @JvmName("knlchhwlwghimatv")
    public suspend fun namespace(`value`: Output) {
        this.namespace = value
    }

    /**
     * @param value The namespaced kernel parameter to set a ``value`` for.
     *  Valid IPC namespace values: ``"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"``, and ``Sysctls`` that start with ``"fs.mqueue.*"``
     *  Valid network namespace values: ``Sysctls`` that start with ``"net.*"``
     *  All of these values are supported by Fargate.
     */
    @JvmName("tlurmixpsmixnytt")
    public suspend fun `value`(`value`: Output) {
        this.`value` = value
    }

    /**
     * @param value The namespaced kernel parameter to set a ``value`` for.
     */
    @JvmName("ofgjvxbwylsyumwj")
    public suspend fun namespace(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namespace = mapped
    }

    /**
     * @param value The namespaced kernel parameter to set a ``value`` for.
     *  Valid IPC namespace values: ``"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"``, and ``Sysctls`` that start with ``"fs.mqueue.*"``
     *  Valid network namespace values: ``Sysctls`` that start with ``"net.*"``
     *  All of these values are supported by Fargate.
     */
    @JvmName("brqnhwaqgcotqeiw")
    public suspend fun `value`(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.`value` = mapped
    }

    internal fun build(): TaskDefinitionSystemControlArgs = TaskDefinitionSystemControlArgs(
        namespace = namespace,
        `value` = `value`,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy