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

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

import com.pulumi.awsnative.ecs.TaskSetArgs.builder
import com.pulumi.awsnative.ecs.kotlin.enums.TaskSetLaunchType
import com.pulumi.awsnative.ecs.kotlin.inputs.TaskSetLoadBalancerArgs
import com.pulumi.awsnative.ecs.kotlin.inputs.TaskSetLoadBalancerArgsBuilder
import com.pulumi.awsnative.ecs.kotlin.inputs.TaskSetNetworkConfigurationArgs
import com.pulumi.awsnative.ecs.kotlin.inputs.TaskSetNetworkConfigurationArgsBuilder
import com.pulumi.awsnative.ecs.kotlin.inputs.TaskSetScaleArgs
import com.pulumi.awsnative.ecs.kotlin.inputs.TaskSetScaleArgsBuilder
import com.pulumi.awsnative.ecs.kotlin.inputs.TaskSetServiceRegistryArgs
import com.pulumi.awsnative.ecs.kotlin.inputs.TaskSetServiceRegistryArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.htmlin the Amazon Elastic Container Service Developer Guide.
 * @property cluster The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.
 * @property externalId An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute set to the provided value.
 * @property launchType The launch type that new tasks in the task set will use. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html in the Amazon Elastic Container Service Developer Guide.
 * @property loadBalancers A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
 * @property networkConfiguration The network configuration for the task set.
 * @property platformVersion The platform version that the tasks in the task set should use. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used by default.
 * @property scale A floating-point percentage of the desired number of tasks to place and keep running in the task set.
 * @property service The short name or full Amazon Resource Name (ARN) of the service to create the task set in.
 * @property serviceRegistries The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.
 * @property tags The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.
 * The following basic restrictions apply to tags:
 * - Maximum number of tags per resource - 50
 * - For each resource, each tag key must be unique, and each tag key can have only one value.
 * - Maximum key length - 128 Unicode characters in UTF-8
 * - Maximum value length - 256 Unicode characters in UTF-8
 * - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
 * - Tag keys and values are case-sensitive.
 * - Do not use `aws:` , `AWS:` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
 * @property taskDefinition The short name or full Amazon Resource Name (ARN) of the task definition for the tasks in the task set to use.
 */
public data class TaskSetArgs(
    public val cluster: Output? = null,
    public val externalId: Output? = null,
    public val launchType: Output? = null,
    public val loadBalancers: Output>? = null,
    public val networkConfiguration: Output? = null,
    public val platformVersion: Output? = null,
    public val scale: Output? = null,
    public val service: Output? = null,
    public val serviceRegistries: Output>? = null,
    public val tags: Output>? = null,
    public val taskDefinition: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ecs.TaskSetArgs =
        com.pulumi.awsnative.ecs.TaskSetArgs.builder()
            .cluster(cluster?.applyValue({ args0 -> args0 }))
            .externalId(externalId?.applyValue({ args0 -> args0 }))
            .launchType(launchType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .loadBalancers(
                loadBalancers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .networkConfiguration(
                networkConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .platformVersion(platformVersion?.applyValue({ args0 -> args0 }))
            .scale(scale?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .service(service?.applyValue({ args0 -> args0 }))
            .serviceRegistries(
                serviceRegistries?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .taskDefinition(taskDefinition?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [TaskSetArgs].
 */
@PulumiTagMarker
public class TaskSetArgsBuilder internal constructor() {
    private var cluster: Output? = null

    private var externalId: Output? = null

    private var launchType: Output? = null

    private var loadBalancers: Output>? = null

    private var networkConfiguration: Output? = null

    private var platformVersion: Output? = null

    private var scale: Output? = null

    private var service: Output? = null

    private var serviceRegistries: Output>? = null

    private var tags: Output>? = null

    private var taskDefinition: Output? = null

    /**
     * @param value The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.
     */
    @JvmName("cvgnikjffwgctmlj")
    public suspend fun cluster(`value`: Output) {
        this.cluster = value
    }

    /**
     * @param value An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute set to the provided value.
     */
    @JvmName("wfkkraqjrdyfymts")
    public suspend fun externalId(`value`: Output) {
        this.externalId = value
    }

    /**
     * @param value The launch type that new tasks in the task set will use. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html in the Amazon Elastic Container Service Developer Guide.
     */
    @JvmName("gsbvityhyjxkioem")
    public suspend fun launchType(`value`: Output) {
        this.launchType = value
    }

    /**
     * @param value A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
     */
    @JvmName("bfajinfsjfecdgkm")
    public suspend fun loadBalancers(`value`: Output>) {
        this.loadBalancers = value
    }

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

    /**
     * @param values A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
     */
    @JvmName("elquifwdjavlutei")
    public suspend fun loadBalancers(values: List>) {
        this.loadBalancers = Output.all(values)
    }

    /**
     * @param value The network configuration for the task set.
     */
    @JvmName("tnwjvbvucxlgjteh")
    public suspend fun networkConfiguration(`value`: Output) {
        this.networkConfiguration = value
    }

    /**
     * @param value The platform version that the tasks in the task set should use. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used by default.
     */
    @JvmName("abrtynxtwsnfawgj")
    public suspend fun platformVersion(`value`: Output) {
        this.platformVersion = value
    }

    /**
     * @param value A floating-point percentage of the desired number of tasks to place and keep running in the task set.
     */
    @JvmName("melcpdlrvqjkqfml")
    public suspend fun scale(`value`: Output) {
        this.scale = value
    }

    /**
     * @param value The short name or full Amazon Resource Name (ARN) of the service to create the task set in.
     */
    @JvmName("gspkwwwbwvfixdpo")
    public suspend fun service(`value`: Output) {
        this.service = value
    }

    /**
     * @param value The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.
     */
    @JvmName("hpyqhwmekssoqvbn")
    public suspend fun serviceRegistries(`value`: Output>) {
        this.serviceRegistries = value
    }

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

    /**
     * @param values The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.
     */
    @JvmName("wdrbrqsiqrroqaks")
    public suspend fun serviceRegistries(values: List>) {
        this.serviceRegistries = Output.all(values)
    }

    /**
     * @param value The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.
     * The following basic restrictions apply to tags:
     * - Maximum number of tags per resource - 50
     * - For each resource, each tag key must be unique, and each tag key can have only one value.
     * - Maximum key length - 128 Unicode characters in UTF-8
     * - Maximum value length - 256 Unicode characters in UTF-8
     * - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
     * - Tag keys and values are case-sensitive.
     * - Do not use `aws:` , `AWS:` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
     */
    @JvmName("edxntuejnobrlcch")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.
     * The following basic restrictions apply to tags:
     * - Maximum number of tags per resource - 50
     * - For each resource, each tag key must be unique, and each tag key can have only one value.
     * - Maximum key length - 128 Unicode characters in UTF-8
     * - Maximum value length - 256 Unicode characters in UTF-8
     * - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
     * - Tag keys and values are case-sensitive.
     * - Do not use `aws:` , `AWS:` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
     */
    @JvmName("suutcqawbupnvvxv")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The short name or full Amazon Resource Name (ARN) of the task definition for the tasks in the task set to use.
     */
    @JvmName("emuietuulosyebgx")
    public suspend fun taskDefinition(`value`: Output) {
        this.taskDefinition = value
    }

    /**
     * @param value The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.
     */
    @JvmName("stkqfjnbyristdsc")
    public suspend fun cluster(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cluster = mapped
    }

    /**
     * @param value An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute set to the provided value.
     */
    @JvmName("iynnefuhfhofuhea")
    public suspend fun externalId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalId = mapped
    }

    /**
     * @param value The launch type that new tasks in the task set will use. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html in the Amazon Elastic Container Service Developer Guide.
     */
    @JvmName("liduppkygwsgohfv")
    public suspend fun launchType(`value`: TaskSetLaunchType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.launchType = mapped
    }

    /**
     * @param value A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
     */
    @JvmName("bqjuaumfpliplyfi")
    public suspend fun loadBalancers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancers = mapped
    }

    /**
     * @param argument A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
     */
    @JvmName("mfoqjblnbqclkyrq")
    public suspend fun loadBalancers(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            TaskSetLoadBalancerArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.loadBalancers = mapped
    }

    /**
     * @param argument A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
     */
    @JvmName("cqiwecbbdcwkadwf")
    public suspend fun loadBalancers(vararg argument: suspend TaskSetLoadBalancerArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            TaskSetLoadBalancerArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.loadBalancers = mapped
    }

    /**
     * @param argument A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
     */
    @JvmName("sbxshqsguwurcqdy")
    public suspend fun loadBalancers(argument: suspend TaskSetLoadBalancerArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TaskSetLoadBalancerArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.loadBalancers = mapped
    }

    /**
     * @param values A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.
     */
    @JvmName("ckyjamtsitototkp")
    public suspend fun loadBalancers(vararg values: TaskSetLoadBalancerArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.loadBalancers = mapped
    }

    /**
     * @param value The network configuration for the task set.
     */
    @JvmName("tdkmwbdaxukfxeyx")
    public suspend fun networkConfiguration(`value`: TaskSetNetworkConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkConfiguration = mapped
    }

    /**
     * @param argument The network configuration for the task set.
     */
    @JvmName("mdtoxvcncuklpttk")
    public suspend fun networkConfiguration(argument: suspend TaskSetNetworkConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = TaskSetNetworkConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.networkConfiguration = mapped
    }

    /**
     * @param value The platform version that the tasks in the task set should use. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used by default.
     */
    @JvmName("hrrklocabfasjrgy")
    public suspend fun platformVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.platformVersion = mapped
    }

    /**
     * @param value A floating-point percentage of the desired number of tasks to place and keep running in the task set.
     */
    @JvmName("vlybprkgvtsmisii")
    public suspend fun scale(`value`: TaskSetScaleArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scale = mapped
    }

    /**
     * @param argument A floating-point percentage of the desired number of tasks to place and keep running in the task set.
     */
    @JvmName("ptnogiglcpxlihfs")
    public suspend fun scale(argument: suspend TaskSetScaleArgsBuilder.() -> Unit) {
        val toBeMapped = TaskSetScaleArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.scale = mapped
    }

    /**
     * @param value The short name or full Amazon Resource Name (ARN) of the service to create the task set in.
     */
    @JvmName("gstmjhghrowyeouu")
    public suspend fun service(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.service = mapped
    }

    /**
     * @param value The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.
     */
    @JvmName("wxcenquyrteqogaw")
    public suspend fun serviceRegistries(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceRegistries = mapped
    }

    /**
     * @param argument The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.
     */
    @JvmName("fqpaltbbeabppxmi")
    public suspend fun serviceRegistries(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            TaskSetServiceRegistryArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.serviceRegistries = mapped
    }

    /**
     * @param argument The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.
     */
    @JvmName("eqysdkkcpsearfxr")
    public suspend fun serviceRegistries(vararg argument: suspend TaskSetServiceRegistryArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            TaskSetServiceRegistryArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.serviceRegistries = mapped
    }

    /**
     * @param argument The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.
     */
    @JvmName("tctssxpwacxodttk")
    public suspend fun serviceRegistries(argument: suspend TaskSetServiceRegistryArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TaskSetServiceRegistryArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.serviceRegistries = mapped
    }

    /**
     * @param values The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.
     */
    @JvmName("qecramrdsougwijg")
    public suspend fun serviceRegistries(vararg values: TaskSetServiceRegistryArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.serviceRegistries = mapped
    }

    /**
     * @param value The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.
     * The following basic restrictions apply to tags:
     * - Maximum number of tags per resource - 50
     * - For each resource, each tag key must be unique, and each tag key can have only one value.
     * - Maximum key length - 128 Unicode characters in UTF-8
     * - Maximum value length - 256 Unicode characters in UTF-8
     * - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
     * - Tag keys and values are case-sensitive.
     * - Do not use `aws:` , `AWS:` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
     */
    @JvmName("rhuqdfcfcpdsjtot")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.
     * The following basic restrictions apply to tags:
     * - Maximum number of tags per resource - 50
     * - For each resource, each tag key must be unique, and each tag key can have only one value.
     * - Maximum key length - 128 Unicode characters in UTF-8
     * - Maximum value length - 256 Unicode characters in UTF-8
     * - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
     * - Tag keys and values are case-sensitive.
     * - Do not use `aws:` , `AWS:` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
     */
    @JvmName("jredyqyakfcdyqft")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.
     * The following basic restrictions apply to tags:
     * - Maximum number of tags per resource - 50
     * - For each resource, each tag key must be unique, and each tag key can have only one value.
     * - Maximum key length - 128 Unicode characters in UTF-8
     * - Maximum value length - 256 Unicode characters in UTF-8
     * - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
     * - Tag keys and values are case-sensitive.
     * - Do not use `aws:` , `AWS:` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
     */
    @JvmName("tjcgxanbhfoctcmd")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.
     * The following basic restrictions apply to tags:
     * - Maximum number of tags per resource - 50
     * - For each resource, each tag key must be unique, and each tag key can have only one value.
     * - Maximum key length - 128 Unicode characters in UTF-8
     * - Maximum value length - 256 Unicode characters in UTF-8
     * - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
     * - Tag keys and values are case-sensitive.
     * - Do not use `aws:` , `AWS:` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
     */
    @JvmName("tbdlthemekrcxost")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.
     * The following basic restrictions apply to tags:
     * - Maximum number of tags per resource - 50
     * - For each resource, each tag key must be unique, and each tag key can have only one value.
     * - Maximum key length - 128 Unicode characters in UTF-8
     * - Maximum value length - 256 Unicode characters in UTF-8
     * - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
     * - Tag keys and values are case-sensitive.
     * - Do not use `aws:` , `AWS:` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
     */
    @JvmName("nfhamoneidcjofeb")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The short name or full Amazon Resource Name (ARN) of the task definition for the tasks in the task set to use.
     */
    @JvmName("rfctlcdwijdpkxov")
    public suspend fun taskDefinition(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.taskDefinition = mapped
    }

    internal fun build(): TaskSetArgs = TaskSetArgs(
        cluster = cluster,
        externalId = externalId,
        launchType = launchType,
        loadBalancers = loadBalancers,
        networkConfiguration = networkConfiguration,
        platformVersion = platformVersion,
        scale = scale,
        service = service,
        serviceRegistries = serviceRegistries,
        tags = tags,
        taskDefinition = taskDefinition,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy