Package-level declarations

Types

Link copied to clipboard
data class CapacityProviderAutoScalingGroupProvider(val autoScalingGroupArn: String, val managedDraining: CapacityProviderAutoScalingGroupProviderManagedDraining? = null, val managedScaling: CapacityProviderManagedScaling? = null, val managedTerminationProtection: CapacityProviderAutoScalingGroupProviderManagedTerminationProtection? = null)
Link copied to clipboard
data class CapacityProviderManagedScaling(val instanceWarmupPeriod: Int? = null, val maximumScalingStepSize: Int? = null, val minimumScalingStepSize: Int? = null, val status: CapacityProviderManagedScalingStatus? = null, val targetCapacity: Int? = null)

The managed scaling settings for the Auto Scaling group capacity provider.

Link copied to clipboard
data class ClusterCapacityProviderStrategyItem(val base: Int? = null, val capacityProvider: String? = null, val weight: Int? = null)

The `CapacityProviderStrategyItem` property specifies the details of the default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.

Link copied to clipboard
data class ClusterConfiguration(val executeCommandConfiguration: ClusterExecuteCommandConfiguration? = null, val managedStorageConfiguration: ClusterManagedStorageConfiguration? = null)

The execute command and managed storage configuration for the cluster.

Link copied to clipboard
data class ClusterExecuteCommandConfiguration(val kmsKeyId: String? = null, val logConfiguration: ClusterExecuteCommandLogConfiguration? = null, val logging: String? = null)

The details of the execute command configuration.

Link copied to clipboard
data class ClusterExecuteCommandLogConfiguration(val cloudWatchEncryptionEnabled: Boolean? = null, val cloudWatchLogGroupName: String? = null, val s3BucketName: String? = null, val s3EncryptionEnabled: Boolean? = null, val s3KeyPrefix: String? = null)

The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket.

Link copied to clipboard
data class ClusterManagedStorageConfiguration(val fargateEphemeralStorageKmsKeyId: String? = null, val kmsKeyId: String? = null)

The managed storage configuration for the cluster.

Link copied to clipboard
data class ClusterServiceConnectDefaults(val namespace: String? = null)

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the `enabled` parameter to `true` in the `ServiceConnectConfiguration`. You can set the namespace of each service individually in the `ServiceConnectConfiguration` to override this default parameter. Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class ClusterSettings(val name: String? = null, val value: String? = null)

The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights with enhanced observability or CloudWatch Container Insights for a cluster. Container Insights with enhanced observability provides all the Container Insights metrics, plus additional task and container metrics. This version supports enhanced observability for Amazon ECS clusters using the Amazon EC2 and Fargate launch types. After you configure Container Insights with enhanced observability on Amazon ECS, Container Insights auto-collects detailed infrastructure telemetry from the cluster level down to the container level in your environment and displays these critical performance data in curated dashboards removing the heavy lifting in observability set-up. For more information, see Monitor Amazon ECS containers using Container Insights with enhanced observability in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class GetCapacityProviderResult(val autoScalingGroupProvider: CapacityProviderAutoScalingGroupProvider? = null, val tags: List<Tag>? = null)
Link copied to clipboard
data class GetClusterResult(val arn: String? = null, val capacityProviders: List<String>? = null, val clusterSettings: List<ClusterSettings>? = null, val configuration: ClusterConfiguration? = null, val defaultCapacityProviderStrategy: List<ClusterCapacityProviderStrategyItem>? = null, val tags: List<Tag>? = null)
Link copied to clipboard
data class GetPrimaryTaskSetResult(val taskSetId: String? = null)
Link copied to clipboard
data class GetServiceResult(val availabilityZoneRebalancing: ServiceAvailabilityZoneRebalancing? = null, val capacityProviderStrategy: List<ServiceCapacityProviderStrategyItem>? = null, val deploymentConfiguration: ServiceDeploymentConfiguration? = null, val deploymentController: ServiceDeploymentController? = null, val desiredCount: Int? = null, val enableEcsManagedTags: Boolean? = null, val enableExecuteCommand: Boolean? = null, val healthCheckGracePeriodSeconds: Int? = null, val loadBalancers: List<ServiceLoadBalancer>? = null, val name: String? = null, val networkConfiguration: ServiceNetworkConfiguration? = null, val placementConstraints: List<ServicePlacementConstraint>? = null, val placementStrategies: List<ServicePlacementStrategy>? = null, val platformVersion: String? = null, val propagateTags: ServicePropagateTags? = null, val serviceArn: String? = null, val serviceRegistries: List<ServiceRegistry>? = null, val tags: List<Tag>? = null, val taskDefinition: String? = null, val vpcLatticeConfigurations: List<ServiceVpcLatticeConfiguration>? = null)
Link copied to clipboard
data class GetTaskDefinitionResult(val tags: List<Tag>? = null, val taskDefinitionArn: String? = null)
Link copied to clipboard
data class GetTaskSetResult(val id: String? = null, val scale: TaskSetScale? = null, val tags: List<Tag>? = null)
Link copied to clipboard
data class ServiceAwsVpcConfiguration(val assignPublicIp: ServiceAwsVpcConfigurationAssignPublicIp? = null, val securityGroups: List<String>? = null, val subnets: List<String>? = null)

An object representing the networking details for a task or service. For example `awsVpcConfiguration={subnets=["subnet-12344321"],securityGroups=["sg-12344321"]}`.

Link copied to clipboard
data class ServiceCapacityProviderStrategyItem(val base: Int? = null, val capacityProvider: String? = null, val weight: Int? = null)

The details of a capacity provider strategy. A capacity provider strategy can be set when using the `RunTask` or `CreateService` APIs or as the default capacity provider strategy for a cluster with the `CreateCluster` API. Only capacity providers that are already associated with a cluster and have an `ACTIVE` or `UPDATING` status can be used in a capacity provider strategy. The `PutClusterCapacityProviders` API is used to associate a capacity provider with a cluster. If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the `CreateCapacityProvider` API operation. To use an FARGATElong capacity provider, specify either the `FARGATE` or `FARGATE_SPOT` capacity providers. The FARGATElong capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

Link copied to clipboard
data class ServiceConnectClientAlias(val dnsName: String? = null, val port: Int)

Each alias ("endpoint") is a fully-qualified name and port number that other tasks ("clients") can use to connect to this service. Each name and port mapping must be unique within the namespace. Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class ServiceConnectConfiguration(val enabled: Boolean, val logConfiguration: ServiceLogConfiguration? = null, val namespace: String? = null, val services: List<ServiceConnectService>? = null)

The Service Connect configuration of your Amazon ECS service. The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class ServiceConnectService(val clientAliases: List<ServiceConnectClientAlias>? = null, val discoveryName: String? = null, val ingressPortOverride: Int? = null, val portName: String, val timeout: ServiceTimeoutConfiguration? = null, val tls: ServiceConnectTlsConfiguration? = null)

The Service Connect service object configuration. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class ServiceConnectTlsCertificateAuthority(val awsPcaAuthorityArn: String? = null)

The certificate root authority that secures your service.

Link copied to clipboard
data class ServiceConnectTlsConfiguration(val issuerCertificateAuthority: ServiceConnectTlsCertificateAuthority, val kmsKey: String? = null, val roleArn: String? = null)

The key that encrypts and decrypts your resources for Service Connect TLS.

Link copied to clipboard
data class ServiceDeploymentAlarms(val alarmNames: List<String>, val enable: Boolean, val rollback: Boolean)

One of the methods which provide a way for you to quickly identify when a deployment has failed, and then to optionally roll back the failure to the last working deployment. When the alarms are generated, Amazon ECS sets the service deployment to failed. Set the rollback parameter to have Amazon ECS to roll back your service to the last completed deployment after a failure. You can only use the `DeploymentAlarms` method to detect failures when the `DeploymentController` is set to `ECS` (rolling update). For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class ServiceDeploymentCircuitBreaker(val enable: Boolean, val rollback: Boolean)

The deployment circuit breaker can only be used for services using the rolling update (`ECS`) deployment type. The deployment circuit breaker determines whether a service deployment will fail if the service can't reach a steady state. If it is turned on, a service deployment will transition to a failed state and stop launching new tasks. You can also configure Amazon ECS to roll back your service to the last completed deployment after a failure. For more information, see Rolling update in the Amazon Elastic Container Service Developer Guide. For more information about API failure reasons, see API failure reasons in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class ServiceDeploymentConfiguration(val alarms: ServiceDeploymentAlarms? = null, val deploymentCircuitBreaker: ServiceDeploymentCircuitBreaker? = null, val maximumPercent: Int? = null, val minimumHealthyPercent: Int? = null)

Optional deployment parameters that control how many tasks run during a deployment and the ordering of stopping and starting tasks.

Link copied to clipboard

The deployment controller to use for the service.

Link copied to clipboard
data class ServiceEbsTagSpecification(val propagateTags: ServiceEbsTagSpecificationPropagateTags? = null, val resourceType: String, val tags: List<ServiceTag>? = null)

The tag specifications of an Amazon EBS volume.

Link copied to clipboard
data class ServiceLoadBalancer(val containerName: String? = null, val containerPort: Int? = null, val loadBalancerName: String? = null, val targetGroupArn: String? = null)

The `LoadBalancer` property specifies details on a load balancer that is used with a service. If the service is using the `CODE_DEPLOY` deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When you are creating an ACDlong deployment group, you specify two target groups (referred to as a `targetGroupPair`). Each target group binds to a separate task set in the deployment. The load balancer can also have up to two listeners, a required listener for production traffic and an optional listener that allows you to test new revisions of the service before routing production traffic to it. Services with tasks that use the `awsvpc` network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers are not supported. Also, when you create any target groups for these services, you must choose `ip` as the target type, not `instance`. Tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance.

Link copied to clipboard
data class ServiceLogConfiguration(val logDriver: String? = null, val options: Map<String, String>? = null, val secretOptions: List<ServiceSecret>? = null)

The log configuration for the container. This parameter maps to `LogConfig` in the docker container create command and the `--log-driver` option to docker run. By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver configuration in the container definition. Understand the following when specifying a log configuration for your containers.

Link copied to clipboard
data class ServiceManagedEbsVolumeConfiguration(val encrypted: Boolean? = null, val filesystemType: String? = null, val iops: Int? = null, val kmsKeyId: String? = null, val roleArn: String, val sizeInGiB: Int? = null, val snapshotId: String? = null, val tagSpecifications: List<ServiceEbsTagSpecification>? = null, val throughput: Int? = null, val volumeInitializationRate: Int? = null, val volumeType: String? = null)

The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. For information about the supported launch types and operating systems, see Supported operating systems and launch types in theAmazon Elastic Container Service Developer Guide. Many of these parameters map 1:1 with the Amazon EBS `CreateVolume` API request parameters.

Link copied to clipboard
data class ServiceNetworkConfiguration(val awsvpcConfiguration: ServiceAwsVpcConfiguration? = null)

The network configuration for a task or service.

Link copied to clipboard
data class ServicePlacementConstraint(val expression: String? = null, val type: ServicePlacementConstraintType)

An object representing a constraint on task placement. For more information, see Task placement constraints in the Amazon Elastic Container Service Developer Guide. If you're using the Fargate launch type, task placement constraints aren't supported.

Link copied to clipboard
data class ServicePlacementStrategy(val field: String? = null, val type: ServicePlacementStrategyType)

The task placement strategy for a task or service. For more information, see Task placement strategies in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class ServiceRegistry(val containerName: String? = null, val containerPort: Int? = null, val port: Int? = null, val registryArn: String? = null)

The details for the service registry. Each service may be associated with one service registry. Multiple service registries for each service are not supported. When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment. New tasks are registered and deregistered to the updated service registry configuration.

Link copied to clipboard
data class ServiceSecret(val name: String, val valueFrom: String)

An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:

Link copied to clipboard
data class ServiceTag(val key: String? = null, val value: String? = null)

The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them. The following basic restrictions apply to tags:

Link copied to clipboard
data class ServiceTimeoutConfiguration(val idleTimeoutSeconds: Int? = null, val perRequestTimeoutSeconds: Int? = null)

An object that represents the timeout configurations for Service Connect. If `idleTimeout` is set to a time that is less than `perRequestTimeout`, the connection will close when the `idleTimeout` is reached and not the `perRequestTimeout`.

Link copied to clipboard
data class ServiceVolumeConfiguration(val managedEbsVolume: ServiceManagedEbsVolumeConfiguration? = null, val name: String)

The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume.

Link copied to clipboard
data class ServiceVpcLatticeConfiguration(val portName: String, val roleArn: String, val targetGroupArn: String)

The VPC Lattice configuration for your service that holds the information for the target group(s) Amazon ECS tasks will be registered to.

Link copied to clipboard
data class TaskDefinitionAuthorizationConfig(val accessPointId: String? = null, val iam: TaskDefinitionAuthorizationConfigIam? = null)

The authorization configuration details for the Amazon EFS file system.

Link copied to clipboard
data class TaskDefinitionContainerDefinition(val command: List<String>? = null, val cpu: Int? = null, val credentialSpecs: List<String>? = null, val dependsOn: List<TaskDefinitionContainerDependency>? = null, val disableNetworking: Boolean? = null, val dnsSearchDomains: List<String>? = null, val dnsServers: List<String>? = null, val dockerLabels: Map<String, String>? = null, val dockerSecurityOptions: List<String>? = null, val entryPoint: List<String>? = null, val environment: List<TaskDefinitionKeyValuePair>? = null, val environmentFiles: List<TaskDefinitionEnvironmentFile>? = null, val essential: Boolean? = null, val extraHosts: List<TaskDefinitionHostEntry>? = null, val firelensConfiguration: TaskDefinitionFirelensConfiguration? = null, val healthCheck: TaskDefinitionHealthCheck? = null, val hostname: String? = null, val image: String, val interactive: Boolean? = null, val links: List<String>? = null, val linuxParameters: TaskDefinitionLinuxParameters? = null, val logConfiguration: TaskDefinitionLogConfiguration? = null, val memory: Int? = null, val memoryReservation: Int? = null, val mountPoints: List<TaskDefinitionMountPoint>? = null, val name: String, val portMappings: List<TaskDefinitionPortMapping>? = null, val privileged: Boolean? = null, val pseudoTerminal: Boolean? = null, val readonlyRootFilesystem: Boolean? = null, val repositoryCredentials: TaskDefinitionRepositoryCredentials? = null, val resourceRequirements: List<TaskDefinitionResourceRequirement>? = null, val restartPolicy: TaskDefinitionRestartPolicy? = null, val secrets: List<TaskDefinitionSecret>? = null, val startTimeout: Int? = null, val stopTimeout: Int? = null, val systemControls: List<TaskDefinitionSystemControl>? = null, val ulimits: List<TaskDefinitionUlimit>? = null, val user: String? = null, val versionConsistency: TaskDefinitionContainerDefinitionVersionConsistency? = null, val volumesFrom: List<TaskDefinitionVolumeFrom>? = null, val workingDirectory: String? = null)

The `ContainerDefinition` property specifies a container definition. Container definitions are used in task definitions to describe the different containers that are launched as part of a task.

Link copied to clipboard
data class TaskDefinitionContainerDependency(val condition: String? = null, val containerName: String? = null)

The `ContainerDependency` property specifies the dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. Your Amazon ECS container instances require at least version 1.26.0 of the container agent to enable container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the `ecs-init` package. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide. For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later.

Link copied to clipboard
data class TaskDefinitionDevice(val containerPath: String? = null, val hostPath: String? = null, val permissions: List<String>? = null)

The `Device` property specifies an object representing a container instance host device.

Link copied to clipboard
data class TaskDefinitionDockerVolumeConfiguration(val autoprovision: Boolean? = null, val driver: String? = null, val driverOpts: Map<String, String>? = null, val labels: Map<String, String>? = null, val scope: String? = null)

The `DockerVolumeConfiguration` property specifies a Docker volume configuration and is used when you use Docker volumes. Docker volumes are only supported when you are using the EC2 launch type. Windows containers only support the use of the `local` driver. To use bind mounts, specify a `host` instead.

Link copied to clipboard
data class TaskDefinitionEfsVolumeConfiguration(val authorizationConfig: TaskDefinitionAuthorizationConfig? = null, val filesystemId: String, val rootDirectory: String? = null, val transitEncryption: TaskDefinitionEfsVolumeConfigurationTransitEncryption? = null, val transitEncryptionPort: Int? = null)

This parameter is specified when you're using an Amazon Elastic File System file system for task storage. For more information, see Amazon EFS volumes in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class TaskDefinitionEnvironmentFile(val type: String? = null, val value: String? = null)

A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a `.env` file extension. Each line in an environment file should contain an environment variable in `VARIABLE=VALUE` format. Lines beginning with `#` are treated as comments and are ignored. If there are environment variables specified using the `environment` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see Use a file to pass environment variables to a container in the Amazon Elastic Container Service Developer Guide. Environment variable files are objects in Amazon S3 and all Amazon S3 security considerations apply. You must use the following platforms for the Fargate launch type:

Link copied to clipboard
data class TaskDefinitionEphemeralStorage(val sizeInGiB: Int? = null)

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on FARGATElong. For more information, see Using data volumes in tasks in the Amazon ECS Developer Guide;. For tasks using the Fargate launch type, the task requires the following platforms:

Link copied to clipboard
data class TaskDefinitionFirelensConfiguration(val options: Map<String, String>? = null, val type: String? = null)

The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see Custom log routing in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class TaskDefinitionFSxAuthorizationConfig(val credentialsParameter: String, val domain: String)

The authorization configuration details for Amazon FSx for Windows File Server file system. See FSxWindowsFileServerVolumeConfiguration in the Amazon ECS API Reference. For more information and the input format, see Amazon FSx for Windows File Server Volumes in the Amazon Elastic Container Service Developer Guide.

data class TaskDefinitionFSxWindowsFileServerVolumeConfiguration(val authorizationConfig: TaskDefinitionFSxAuthorizationConfig? = null, val fileSystemId: String, val rootDirectory: String)

This parameter is specified when you're using Amazon FSx for Windows File Server file system for task storage. For more information and the input format, see Amazon FSx for Windows File Server volumes in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class TaskDefinitionHealthCheck(val command: List<String>? = null, val interval: Int? = null, val retries: Int? = null, val startPeriod: Int? = null, val timeout: Int? = null)

The `HealthCheck` property specifies an object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the `HEALTHCHECK` parameter of docker run. The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image. If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it. The following are notes about container health check support:

Link copied to clipboard
data class TaskDefinitionHostEntry(val hostname: String? = null, val ipAddress: String? = null)

The `HostEntry` property specifies a hostname and an IP address that are added to the `/etc/hosts` file of a container through the `extraHosts` parameter of its `ContainerDefinition` resource.

Link copied to clipboard
data class TaskDefinitionHostVolumeProperties(val sourcePath: String? = null)

The `HostVolumeProperties` property specifies details on a container instance bind mount host volume.

Link copied to clipboard
data class TaskDefinitionInferenceAccelerator(val deviceName: String? = null, val deviceType: String? = null)

Details on an Elastic Inference accelerator. For more information, see Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class TaskDefinitionKernelCapabilities(val add: List<String>? = null, val drop: List<String>? = null)

The Linux capabilities to add or remove from the default Docker configuration for a container defined in the task definition. For more detailed information about these Linux capabilities, see the capabilities(7) Linux manual page. The following describes how Docker processes the Linux capabilities specified in the `add` and `drop` request parameters. For information about the latest behavior, see Docker Compose: order of cap_drop and cap_add in the Docker Community Forum.

Link copied to clipboard
data class TaskDefinitionKeyValuePair(val name: String? = null, val value: String? = null)

A key-value pair object.

Link copied to clipboard
data class TaskDefinitionLinuxParameters(val capabilities: TaskDefinitionKernelCapabilities? = null, val devices: List<TaskDefinitionDevice>? = null, val initProcessEnabled: Boolean? = null, val maxSwap: Int? = null, val sharedMemorySize: Int? = null, val swappiness: Int? = null, val tmpfs: List<TaskDefinitionTmpfs>? = null)

The Linux-specific options that are applied to the container, such as Linux KernelCapabilities.

Link copied to clipboard
data class TaskDefinitionLogConfiguration(val logDriver: String, val options: Map<String, String>? = null, val secretOptions: List<TaskDefinitionSecret>? = null)

The `LogConfiguration` property specifies log configuration options to send to a custom log driver for the container.

Link copied to clipboard
data class TaskDefinitionMountPoint(val containerPath: String? = null, val readOnly: Boolean? = null, val sourceVolume: String? = null)

The details for a volume mount point that's used in a container definition.

Link copied to clipboard
data class TaskDefinitionPlacementConstraint(val expression: String? = null, val type: String)

The constraint on task placement in the task definition. For more information, see Task placement constraints in the Amazon Elastic Container Service Developer Guide. Task placement constraints aren't supported for tasks run on FARGATElong.

Link copied to clipboard
data class TaskDefinitionPortMapping(val appProtocol: TaskDefinitionPortMappingAppProtocol? = null, val containerPort: Int? = null, val containerPortRange: String? = null, val hostPort: Int? = null, val name: String? = null, val protocol: String? = null)

The `PortMapping` property specifies a port mapping. Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition. If you are using containers in a task with the `awsvpc` or `host` network mode, exposed ports should be specified using `containerPort`. The `hostPort` can be left blank or it must be the same value as the `containerPort`. After a task reaches the `RUNNING` status, manual and automatic host and container port assignments are visible in the `networkBindings` section of DescribeTasks API responses.

Link copied to clipboard
data class TaskDefinitionProxyConfiguration(val containerName: String, val proxyConfigurationProperties: List<TaskDefinitionKeyValuePair>? = null, val type: String? = null)

The configuration details for the App Mesh proxy. For tasks that use the EC2 launch type, the container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the `ecs-init` package to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized AMI version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`. For more information, see Amazon ECS-optimized Linux AMI

Link copied to clipboard
data class TaskDefinitionRepositoryCredentials(val credentialsParameter: String? = null)

The repository credentials for private registry authentication.

Link copied to clipboard
data class TaskDefinitionResourceRequirement(val type: String, val value: String)

The type and amount of a resource to assign to a container. The supported resource types are GPUs and Elastic Inference accelerators. For more information, see Working with GPUs on Amazon ECS or Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide

Link copied to clipboard
data class TaskDefinitionRestartPolicy(val enabled: Boolean? = null, val ignoredExitCodes: List<Int>? = null, val restartAttemptPeriod: Int? = null)

You can enable a restart policy for each container defined in your task definition, to overcome transient failures faster and maintain task availability. When you enable a restart policy for a container, Amazon ECS can restart the container if it exits, without needing to replace the task. For more information, see Restart individual containers in Amazon ECS tasks with container restart policies in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class TaskDefinitionRuntimePlatform(val cpuArchitecture: String? = null, val operatingSystemFamily: String? = null)

Information about the platform for the Amazon ECS service or task. For more information about `RuntimePlatform`, see RuntimePlatform in the Amazon Elastic Container Service Developer Guide.

Link copied to clipboard
data class TaskDefinitionSecret(val name: String, val valueFrom: String)

An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:

Link copied to clipboard
data class TaskDefinitionSystemControl(val namespace: String? = null, val value: String? = null)

A list of namespaced kernel parameters to set in the container. This parameter maps to `Sysctls` in the docker container create command and the `--sysctl` option to docker run. 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:

Link copied to clipboard
data class TaskDefinitionTmpfs(val containerPath: String? = null, val mountOptions: List<String>? = null, val size: Int)

The container path, mount options, and size of the tmpfs mount.

Link copied to clipboard
data class TaskDefinitionUlimit(val hardLimit: Int, val name: String, val softLimit: Int)

The `ulimit` settings to pass to the container. Amazon ECS tasks hosted on FARGATElong use the default resource limit values set by the operating system with the exception of the `nofile` resource limit parameter which FARGATElong overrides. The `nofile` resource limit sets a restriction on the number of open files that a container can use. The default `nofile` soft limit is `65535` and the default hard limit is `65535`. You can specify the `ulimit` settings for a container in a task definition.

Link copied to clipboard
data class TaskDefinitionVolume(val configuredAtLaunch: Boolean? = null, val dockerVolumeConfiguration: TaskDefinitionDockerVolumeConfiguration? = null, val efsVolumeConfiguration: TaskDefinitionEfsVolumeConfiguration? = null, val fSxWindowsFileServerVolumeConfiguration: TaskDefinitionFSxWindowsFileServerVolumeConfiguration? = null, val host: TaskDefinitionHostVolumeProperties? = null, val name: String? = null)

The data volume configuration for tasks launched using this task definition. Specifying a volume configuration in a task definition is optional. The volume configuration may contain multiple volumes but only one volume configured at launch is supported. Each volume defined in the volume configuration may only specify a `name` and one of either `configuredAtLaunch`, `dockerVolumeConfiguration`, `efsVolumeConfiguration`, `fsxWindowsFileServerVolumeConfiguration`, or `host`. If an empty volume configuration is specified, by default Amazon ECS uses a host volume. For more information, see Using data volumes in tasks.

Link copied to clipboard
data class TaskDefinitionVolumeFrom(val readOnly: Boolean? = null, val sourceContainer: String? = null)

Details on a data volume from another container in the same task definition.

Link copied to clipboard
data class TaskSetAwsVpcConfiguration(val assignPublicIp: TaskSetAwsVpcConfigurationAssignPublicIp? = null, val securityGroups: List<String>? = null, val subnets: List<String>)

The VPC subnets and security groups associated with a task. All specified subnets and security groups must be from the same VPC.

Link copied to clipboard
data class TaskSetCapacityProviderStrategyItem(val base: Int? = null, val capacityProvider: String? = null, val weight: Int? = null)
Link copied to clipboard
data class TaskSetLoadBalancer(val containerName: String? = null, val containerPort: Int? = null, val targetGroupArn: String? = null)

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.

Link copied to clipboard
data class TaskSetNetworkConfiguration(val awsVpcConfiguration: TaskSetAwsVpcConfiguration? = null)

An object representing the network configuration for a task or service.

Link copied to clipboard
data class TaskSetScale(val unit: TaskSetScaleUnit? = null, val value: Double? = null)
Link copied to clipboard
data class TaskSetServiceRegistry(val containerName: String? = null, val containerPort: Int? = null, val port: Int? = null, val registryArn: String? = null)