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

com.pulumi.awsnative.events.kotlin.outputs.RuleEcsParameters.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: 0.122.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.events.kotlin.outputs

import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @property capacityProviderStrategy The capacity provider strategy to use for the task.
 * If a `capacityProviderStrategy` is specified, the `launchType` parameter must be omitted. If no `capacityProviderStrategy` or launchType is specified, the `defaultCapacityProviderStrategy` for the cluster is used.
 * @property enableEcsManagedTags Specifies whether to enable Amazon ECS managed tags for the task. For more information, see [Tagging Your Amazon ECS Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the Amazon Elastic Container Service Developer Guide.
 * @property enableExecuteCommand Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task.
 * @property group Specifies an ECS task group for the task. The maximum length is 255 characters.
 * @property launchType Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. The `FARGATE` value is supported only in the Regions where AWS Fargate with Amazon ECS is supported. For more information, see [AWS Fargate on Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS-Fargate.html) in the *Amazon Elastic Container Service Developer Guide* .
 * @property networkConfiguration Use this structure if the Amazon ECS task uses the `awsvpc` network mode. This structure specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. This structure is required if `LaunchType` is `FARGATE` because the `awsvpc` mode is required for Fargate tasks.
 * If you specify `NetworkConfiguration` when the target ECS task does not use the `awsvpc` network mode, the task fails.
 * @property placementConstraints An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime).
 * @property placementStrategies The placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task.
 * @property platformVersion Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as `1.1.0` .
 * This structure is used only if `LaunchType` is `FARGATE` . For more information about valid platform versions, see [AWS Fargate Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide* .
 * @property propagateTags Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the TagResource API action.
 * @property referenceId The reference ID to use for the task.
 * @property tagList The metadata that you apply to the task to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. To learn more, see [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-tags) in the Amazon ECS API Reference.
 * @property taskCount The number of tasks to create based on `TaskDefinition` . The default is 1.
 * @property taskDefinitionArn The ARN of the task definition to use if the event target is an Amazon ECS task.
 */
public data class RuleEcsParameters(
    public val capacityProviderStrategy: List? = null,
    public val enableEcsManagedTags: Boolean? = null,
    public val enableExecuteCommand: Boolean? = null,
    public val group: String? = null,
    public val launchType: String? = null,
    public val networkConfiguration: RuleNetworkConfiguration? = null,
    public val placementConstraints: List? = null,
    public val placementStrategies: List? = null,
    public val platformVersion: String? = null,
    public val propagateTags: String? = null,
    public val referenceId: String? = null,
    public val tagList: List? = null,
    public val taskCount: Int? = null,
    public val taskDefinitionArn: String,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.awsnative.events.outputs.RuleEcsParameters): RuleEcsParameters = RuleEcsParameters(
            capacityProviderStrategy = javaType.capacityProviderStrategy().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.events.kotlin.outputs.RuleCapacityProviderStrategyItem.Companion.toKotlin(args0)
                })
            }),
            enableEcsManagedTags = javaType.enableEcsManagedTags().map({ args0 -> args0 }).orElse(null),
            enableExecuteCommand = javaType.enableExecuteCommand().map({ args0 -> args0 }).orElse(null),
            group = javaType.group().map({ args0 -> args0 }).orElse(null),
            launchType = javaType.launchType().map({ args0 -> args0 }).orElse(null),
            networkConfiguration = javaType.networkConfiguration().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.events.kotlin.outputs.RuleNetworkConfiguration.Companion.toKotlin(args0)
                })
            }).orElse(null),
            placementConstraints = javaType.placementConstraints().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.events.kotlin.outputs.RulePlacementConstraint.Companion.toKotlin(args0)
                })
            }),
            placementStrategies = javaType.placementStrategies().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.events.kotlin.outputs.RulePlacementStrategy.Companion.toKotlin(args0)
                })
            }),
            platformVersion = javaType.platformVersion().map({ args0 -> args0 }).orElse(null),
            propagateTags = javaType.propagateTags().map({ args0 -> args0 }).orElse(null),
            referenceId = javaType.referenceId().map({ args0 -> args0 }).orElse(null),
            tagList = javaType.tagList().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.events.kotlin.outputs.RuleTag.Companion.toKotlin(args0)
                })
            }),
            taskCount = javaType.taskCount().map({ args0 -> args0 }).orElse(null),
            taskDefinitionArn = javaType.taskDefinitionArn(),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy