/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.ecs.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class RegisterTaskDefinitionRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* You must specify a family for a task definition. You can use it track multiple versions of the same
* task definition. The family is used as a name for your task definition. Up to 255 letters (uppercase
* and lowercase), numbers, underscores, and hyphens are allowed.
*
* The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All * containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in * the Amazon Elastic Container Service Developer Guide. *
*/ private String taskRoleArn; /** ** The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission * to make Amazon Web Services API calls on your behalf. The task execution IAM role is required depending on the * requirements of your task. For more information, see Amazon ECS task * execution IAM role in the Amazon Elastic Container Service Developer Guide. *
*/ private String executionRoleArn; /** *
* The Docker networking mode to use for the containers in the task. The valid values are none,
* bridge, awsvpc, and host. If no network mode is specified, the default is
* bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on Amazon
* EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances,
* <default> or awsvpc can be used. If the network mode is set to none,
* you cannot specify port mappings in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer the highest networking
* performance for containers because they use the EC2 network stack instead of the virtualized network stack
* provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped directly to
* the corresponding host port (for the host network mode) or the attached elastic network interface
* port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0). It is
* considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you must
* specify a NetworkConfiguration value when you create a service or run a task with the task definition. For
* more information, see Task Networking in
* the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a single
* container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. *
*/ private String networkMode; /** ** A list of container definitions in JSON format that describe the different containers that make up your task. *
*/ private com.amazonaws.internal.SdkInternalList* A list of volume definitions in JSON format that containers in your task might use. *
*/ private com.amazonaws.internal.SdkInternalList* An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints for * each task. This limit includes constraints in the task definition and those specified at runtime. *
*/ private com.amazonaws.internal.SdkInternalList* The task launch type that Amazon ECS validates the task definition against. A client exception is returned if the * task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter * is omitted from the response. *
*/ private com.amazonaws.internal.SdkInternalList
* The number of CPU units used by the task. It can be expressed as an integer using CPU units (for example,
* 1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in a task
* definition. String values are converted to an integer indicating the CPU units when the task definition is
* registered.
*
* Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level * resources for Windows containers. *
*
* If you're using the EC2 launch type, this field is optional. Supported values are between 128 CPU
* units (0.125 vCPUs) and 10240 CPU units (10 vCPUs). If you do not specify
* a value, the parameter is ignored.
*
* If you're using the Fargate launch type, this field is required and you must use one of the following values,
* which determines your range of supported values for the memory parameter:
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
*
* 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
*
* 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6
* GB), 7168 (7 GB), 8192 (8 GB)
*
* 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)
*
* 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
*
* 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB (for example ,
* 1024) or as a string using GB (for example, 1GB or 1 GB) in a task
* definition. String values are converted to an integer indicating the MiB when the task definition is registered.
*
* Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level * resources for Windows containers. *
** If using the EC2 launch type, this field is optional. *
*
* If using the Fargate launch type, this field is required and you must use one of the following values. This
* determines your range of supported values for the cpu parameter.
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
*
* 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
*
* 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available
* cpu values: 1024 (1 vCPU)
*
* Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2
* vCPU)
*
* Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4
* vCPU)
*
* Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of * a key and an optional value. You define both of them. *
** 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 Amazon Web Services 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.
*
* The process namespace to use for the containers in the task. The valid values are host or
* task. If host is specified, then all containers within the tasks that specified the
* host PID mode on the same container instance share the same process namespace with the host Amazon
* EC2 instance. If task is specified, all containers within the specified task share the same process
* namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run
* reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*
* The IPC resource namespace to use for the containers in the task. The valid values are host,
* task, or none. If host is specified, then all containers within the tasks
* that specified the host IPC mode on the same container instance share the same IPC resources with
* the host Amazon EC2 instance. If task is specified, all containers within the specified task share
* the same IPC resources. If none is specified, then IPC resources within the containers of a task are
* private and not shared with other containers in a task or on the container instance. If no value is specified,
* then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more
* information, see IPC settings in
* the Docker run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace
* expose. For more information, see Docker
* security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in the task,
* the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are not
* supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will apply
* to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
** The configuration details for the App Mesh proxy. *
*
* For tasks hosted on Amazon EC2 instances, 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 AMI
* versions in the Amazon Elastic Container Service Developer Guide.
*
* The Elastic Inference accelerators to use for the containers in the task. *
*/ private com.amazonaws.internal.SdkInternalList* 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 Fargate. For more information, see Fargate task storage in * the Amazon ECS User Guide for Fargate. *
** For tasks using the Fargate launch type, the task requires the following platforms: *
*
* Linux platform version 1.4.0 or later.
*
* Windows platform version 1.0.0 or later.
*
* The operating system that your tasks definitions run on. A platform family is specified only for tasks using the * Fargate launch type. *
*
* When you specify a task definition in a service, this value must match the runtimePlatform value of
* the service.
*
* You must specify a family for a task definition. You can use it track multiple versions of the same
* task definition. The family is used as a name for your task definition. Up to 255 letters (uppercase
* and lowercase), numbers, underscores, and hyphens are allowed.
*
family for a task definition. You can use it track multiple versions of
* the same task definition. The family is used as a name for your task definition. Up to 255
* letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.
*/
public void setFamily(String family) {
this.family = family;
}
/**
*
* You must specify a family for a task definition. You can use it track multiple versions of the same
* task definition. The family is used as a name for your task definition. Up to 255 letters (uppercase
* and lowercase), numbers, underscores, and hyphens are allowed.
*
family for a task definition. You can use it track multiple versions of
* the same task definition. The family is used as a name for your task definition. Up to 255
* letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.
*/
public String getFamily() {
return this.family;
}
/**
*
* You must specify a family for a task definition. You can use it track multiple versions of the same
* task definition. The family is used as a name for your task definition. Up to 255 letters (uppercase
* and lowercase), numbers, underscores, and hyphens are allowed.
*
family for a task definition. You can use it track multiple versions of
* the same task definition. The family is used as a name for your task definition. Up to 255
* letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RegisterTaskDefinitionRequest withFamily(String family) {
setFamily(family);
return this;
}
/**
* * The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All * containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in * the Amazon Elastic Container Service Developer Guide. *
* * @param taskRoleArn * The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. * All containers in this task are granted the permissions that are specified in this role. For more * information, see IAM Roles for * Tasks in the Amazon Elastic Container Service Developer Guide. */ public void setTaskRoleArn(String taskRoleArn) { this.taskRoleArn = taskRoleArn; } /** ** The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All * containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in * the Amazon Elastic Container Service Developer Guide. *
* * @return The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can * assume. All containers in this task are granted the permissions that are specified in this role. For more * information, see IAM Roles for * Tasks in the Amazon Elastic Container Service Developer Guide. */ public String getTaskRoleArn() { return this.taskRoleArn; } /** ** The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All * containers in this task are granted the permissions that are specified in this role. For more information, see IAM Roles for Tasks in * the Amazon Elastic Container Service Developer Guide. *
* * @param taskRoleArn * The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. * All containers in this task are granted the permissions that are specified in this role. For more * information, see IAM Roles for * Tasks in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withTaskRoleArn(String taskRoleArn) { setTaskRoleArn(taskRoleArn); return this; } /** ** The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission * to make Amazon Web Services API calls on your behalf. The task execution IAM role is required depending on the * requirements of your task. For more information, see Amazon ECS task * execution IAM role in the Amazon Elastic Container Service Developer Guide. *
* * @param executionRoleArn * The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent * permission to make Amazon Web Services API calls on your behalf. The task execution IAM role is required * depending on the requirements of your task. For more information, see Amazon ECS * task execution IAM role in the Amazon Elastic Container Service Developer Guide. */ public void setExecutionRoleArn(String executionRoleArn) { this.executionRoleArn = executionRoleArn; } /** ** The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission * to make Amazon Web Services API calls on your behalf. The task execution IAM role is required depending on the * requirements of your task. For more information, see Amazon ECS task * execution IAM role in the Amazon Elastic Container Service Developer Guide. *
* * @return The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent * permission to make Amazon Web Services API calls on your behalf. The task execution IAM role is required * depending on the requirements of your task. For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service Developer Guide. */ public String getExecutionRoleArn() { return this.executionRoleArn; } /** ** The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission * to make Amazon Web Services API calls on your behalf. The task execution IAM role is required depending on the * requirements of your task. For more information, see Amazon ECS task * execution IAM role in the Amazon Elastic Container Service Developer Guide. *
* * @param executionRoleArn * The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent * permission to make Amazon Web Services API calls on your behalf. The task execution IAM role is required * depending on the requirements of your task. For more information, see Amazon ECS * task execution IAM role in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withExecutionRoleArn(String executionRoleArn) { setExecutionRoleArn(executionRoleArn); return this; } /** *
* The Docker networking mode to use for the containers in the task. The valid values are none,
* bridge, awsvpc, and host. If no network mode is specified, the default is
* bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on Amazon
* EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances,
* <default> or awsvpc can be used. If the network mode is set to none,
* you cannot specify port mappings in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer the highest networking
* performance for containers because they use the EC2 network stack instead of the virtualized network stack
* provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped directly to
* the corresponding host port (for the host network mode) or the attached elastic network interface
* port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0). It is
* considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you must
* specify a NetworkConfiguration value when you create a service or run a task with the task definition. For
* more information, see Task Networking in
* the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a single
* container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. *
* * @param networkMode * The Docker networking mode to use for the containers in the task. The valid values arenone,
* bridge, awsvpc, and host. If no network mode is specified, the
* default is bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on
* Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows
* instances, <default> or awsvpc can be used. If the network mode is set to
* none, you cannot specify port mappings in your container definitions, and the tasks
* containers do not have external connectivity. The host and awsvpc network modes
* offer the highest networking performance for containers because they use the EC2 network stack instead of
* the virtualized network stack provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped
* directly to the corresponding host port (for the host network mode) or the attached elastic
* network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic
* host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0).
* It is considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you
* must specify a NetworkConfiguration value when you create a service or run a task with the task
* definition. For more information, see Task
* Networking in the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a
* single container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. * @see NetworkMode */ public void setNetworkMode(String networkMode) { this.networkMode = networkMode; } /** *
* The Docker networking mode to use for the containers in the task. The valid values are none,
* bridge, awsvpc, and host. If no network mode is specified, the default is
* bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on Amazon
* EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances,
* <default> or awsvpc can be used. If the network mode is set to none,
* you cannot specify port mappings in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer the highest networking
* performance for containers because they use the EC2 network stack instead of the virtualized network stack
* provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped directly to
* the corresponding host port (for the host network mode) or the attached elastic network interface
* port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0). It is
* considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you must
* specify a NetworkConfiguration value when you create a service or run a task with the task definition. For
* more information, see Task Networking in
* the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a single
* container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. *
* * @return The Docker networking mode to use for the containers in the task. The valid values arenone,
* bridge, awsvpc, and host. If no network mode is specified, the
* default is bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks
* on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows
* instances, <default> or awsvpc can be used. If the network mode is set to
* none, you cannot specify port mappings in your container definitions, and the tasks
* containers do not have external connectivity. The host and awsvpc network modes
* offer the highest networking performance for containers because they use the EC2 network stack instead of
* the virtualized network stack provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped
* directly to the corresponding host port (for the host network mode) or the attached elastic
* network interface port (for the awsvpc network mode), so you cannot take advantage of
* dynamic host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0).
* It is considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you
* must specify a NetworkConfiguration value when you create a service or run a task with the task
* definition. For more information, see Task
* Networking in the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a
* single container instance when port mappings are used.
*
* For more information, see Network settings in the * Docker run reference. * @see NetworkMode */ public String getNetworkMode() { return this.networkMode; } /** *
* The Docker networking mode to use for the containers in the task. The valid values are none,
* bridge, awsvpc, and host. If no network mode is specified, the default is
* bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on Amazon
* EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances,
* <default> or awsvpc can be used. If the network mode is set to none,
* you cannot specify port mappings in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer the highest networking
* performance for containers because they use the EC2 network stack instead of the virtualized network stack
* provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped directly to
* the corresponding host port (for the host network mode) or the attached elastic network interface
* port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0). It is
* considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you must
* specify a NetworkConfiguration value when you create a service or run a task with the task definition. For
* more information, see Task Networking in
* the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a single
* container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. *
* * @param networkMode * The Docker networking mode to use for the containers in the task. The valid values arenone,
* bridge, awsvpc, and host. If no network mode is specified, the
* default is bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on
* Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows
* instances, <default> or awsvpc can be used. If the network mode is set to
* none, you cannot specify port mappings in your container definitions, and the tasks
* containers do not have external connectivity. The host and awsvpc network modes
* offer the highest networking performance for containers because they use the EC2 network stack instead of
* the virtualized network stack provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped
* directly to the corresponding host port (for the host network mode) or the attached elastic
* network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic
* host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0).
* It is considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you
* must specify a NetworkConfiguration value when you create a service or run a task with the task
* definition. For more information, see Task
* Networking in the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a
* single container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. * @return Returns a reference to this object so that method calls can be chained together. * @see NetworkMode */ public RegisterTaskDefinitionRequest withNetworkMode(String networkMode) { setNetworkMode(networkMode); return this; } /** *
* The Docker networking mode to use for the containers in the task. The valid values are none,
* bridge, awsvpc, and host. If no network mode is specified, the default is
* bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on Amazon
* EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances,
* <default> or awsvpc can be used. If the network mode is set to none,
* you cannot specify port mappings in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer the highest networking
* performance for containers because they use the EC2 network stack instead of the virtualized network stack
* provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped directly to
* the corresponding host port (for the host network mode) or the attached elastic network interface
* port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0). It is
* considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you must
* specify a NetworkConfiguration value when you create a service or run a task with the task definition. For
* more information, see Task Networking in
* the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a single
* container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. *
* * @param networkMode * The Docker networking mode to use for the containers in the task. The valid values arenone,
* bridge, awsvpc, and host. If no network mode is specified, the
* default is bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on
* Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows
* instances, <default> or awsvpc can be used. If the network mode is set to
* none, you cannot specify port mappings in your container definitions, and the tasks
* containers do not have external connectivity. The host and awsvpc network modes
* offer the highest networking performance for containers because they use the EC2 network stack instead of
* the virtualized network stack provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped
* directly to the corresponding host port (for the host network mode) or the attached elastic
* network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic
* host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0).
* It is considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you
* must specify a NetworkConfiguration value when you create a service or run a task with the task
* definition. For more information, see Task
* Networking in the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a
* single container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. * @see NetworkMode */ public void setNetworkMode(NetworkMode networkMode) { withNetworkMode(networkMode); } /** *
* The Docker networking mode to use for the containers in the task. The valid values are none,
* bridge, awsvpc, and host. If no network mode is specified, the default is
* bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on Amazon
* EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances,
* <default> or awsvpc can be used. If the network mode is set to none,
* you cannot specify port mappings in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer the highest networking
* performance for containers because they use the EC2 network stack instead of the virtualized network stack
* provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped directly to
* the corresponding host port (for the host network mode) or the attached elastic network interface
* port (for the awsvpc network mode), so you cannot take advantage of dynamic host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0). It is
* considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you must
* specify a NetworkConfiguration value when you create a service or run a task with the task definition. For
* more information, see Task Networking in
* the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a single
* container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. *
* * @param networkMode * The Docker networking mode to use for the containers in the task. The valid values arenone,
* bridge, awsvpc, and host. If no network mode is specified, the
* default is bridge.
*
* For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For Amazon ECS tasks on
* Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows
* instances, <default> or awsvpc can be used. If the network mode is set to
* none, you cannot specify port mappings in your container definitions, and the tasks
* containers do not have external connectivity. The host and awsvpc network modes
* offer the highest networking performance for containers because they use the EC2 network stack instead of
* the virtualized network stack provided by the bridge mode.
*
* With the host and awsvpc network modes, exposed container ports are mapped
* directly to the corresponding host port (for the host network mode) or the attached elastic
* network interface port (for the awsvpc network mode), so you cannot take advantage of dynamic
* host port mappings.
*
* When using the host network mode, you should not run containers using the root user (UID 0).
* It is considered best practice to use a non-root user.
*
* If the network mode is awsvpc, the task is allocated an elastic network interface, and you
* must specify a NetworkConfiguration value when you create a service or run a task with the task
* definition. For more information, see Task
* Networking in the Amazon Elastic Container Service Developer Guide.
*
* If the network mode is host, you cannot run multiple instantiations of the same task on a
* single container instance when port mappings are used.
*
* For more information, see Network * settings in the Docker run reference. * @return Returns a reference to this object so that method calls can be chained together. * @see NetworkMode */ public RegisterTaskDefinitionRequest withNetworkMode(NetworkMode networkMode) { this.networkMode = networkMode.toString(); return this; } /** *
* A list of container definitions in JSON format that describe the different containers that make up your task. *
* * @return A list of container definitions in JSON format that describe the different containers that make up your * task. */ public java.util.List* A list of container definitions in JSON format that describe the different containers that make up your task. *
* * @param containerDefinitions * A list of container definitions in JSON format that describe the different containers that make up your * task. */ public void setContainerDefinitions(java.util.Collection* A list of container definitions in JSON format that describe the different containers that make up your task. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setContainerDefinitions(java.util.Collection)} or {@link #withContainerDefinitions(java.util.Collection)} * if you want to override the existing values. *
* * @param containerDefinitions * A list of container definitions in JSON format that describe the different containers that make up your * task. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withContainerDefinitions(ContainerDefinition... containerDefinitions) { if (this.containerDefinitions == null) { setContainerDefinitions(new com.amazonaws.internal.SdkInternalList* A list of container definitions in JSON format that describe the different containers that make up your task. *
* * @param containerDefinitions * A list of container definitions in JSON format that describe the different containers that make up your * task. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withContainerDefinitions(java.util.Collection* A list of volume definitions in JSON format that containers in your task might use. *
* * @return A list of volume definitions in JSON format that containers in your task might use. */ public java.util.List* A list of volume definitions in JSON format that containers in your task might use. *
* * @param volumes * A list of volume definitions in JSON format that containers in your task might use. */ public void setVolumes(java.util.Collection* A list of volume definitions in JSON format that containers in your task might use. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setVolumes(java.util.Collection)} or {@link #withVolumes(java.util.Collection)} if you want to override * the existing values. *
* * @param volumes * A list of volume definitions in JSON format that containers in your task might use. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withVolumes(Volume... volumes) { if (this.volumes == null) { setVolumes(new com.amazonaws.internal.SdkInternalList* A list of volume definitions in JSON format that containers in your task might use. *
* * @param volumes * A list of volume definitions in JSON format that containers in your task might use. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withVolumes(java.util.Collection* An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints for * each task. This limit includes constraints in the task definition and those specified at runtime. *
* * @return An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints * for each task. This limit includes constraints in the task definition and those specified at runtime. */ public java.util.List* An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints for * each task. This limit includes constraints in the task definition and those specified at runtime. *
* * @param placementConstraints * An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints * for each task. This limit includes constraints in the task definition and those specified at runtime. */ public void setPlacementConstraints(java.util.Collection* An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints for * each task. This limit includes constraints in the task definition and those specified at runtime. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setPlacementConstraints(java.util.Collection)} or {@link #withPlacementConstraints(java.util.Collection)} * if you want to override the existing values. *
* * @param placementConstraints * An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints * for each task. This limit includes constraints in the task definition and those specified at runtime. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withPlacementConstraints(TaskDefinitionPlacementConstraint... placementConstraints) { if (this.placementConstraints == null) { setPlacementConstraints(new com.amazonaws.internal.SdkInternalList* An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints for * each task. This limit includes constraints in the task definition and those specified at runtime. *
* * @param placementConstraints * An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints * for each task. This limit includes constraints in the task definition and those specified at runtime. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withPlacementConstraints(java.util.Collection* The task launch type that Amazon ECS validates the task definition against. A client exception is returned if the * task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter * is omitted from the response. *
* * @return The task launch type that Amazon ECS validates the task definition against. A client exception is * returned if the task definition doesn't validate against the compatibilities specified. If no value is * specified, the parameter is omitted from the response. * @see Compatibility */ public java.util.List* The task launch type that Amazon ECS validates the task definition against. A client exception is returned if the * task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter * is omitted from the response. *
* * @param requiresCompatibilities * The task launch type that Amazon ECS validates the task definition against. A client exception is returned * if the task definition doesn't validate against the compatibilities specified. If no value is specified, * the parameter is omitted from the response. * @see Compatibility */ public void setRequiresCompatibilities(java.util.Collection* The task launch type that Amazon ECS validates the task definition against. A client exception is returned if the * task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter * is omitted from the response. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setRequiresCompatibilities(java.util.Collection)} or * {@link #withRequiresCompatibilities(java.util.Collection)} if you want to override the existing values. *
* * @param requiresCompatibilities * The task launch type that Amazon ECS validates the task definition against. A client exception is returned * if the task definition doesn't validate against the compatibilities specified. If no value is specified, * the parameter is omitted from the response. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public RegisterTaskDefinitionRequest withRequiresCompatibilities(String... requiresCompatibilities) { if (this.requiresCompatibilities == null) { setRequiresCompatibilities(new com.amazonaws.internal.SdkInternalList* The task launch type that Amazon ECS validates the task definition against. A client exception is returned if the * task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter * is omitted from the response. *
* * @param requiresCompatibilities * The task launch type that Amazon ECS validates the task definition against. A client exception is returned * if the task definition doesn't validate against the compatibilities specified. If no value is specified, * the parameter is omitted from the response. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public RegisterTaskDefinitionRequest withRequiresCompatibilities(java.util.Collection* The task launch type that Amazon ECS validates the task definition against. A client exception is returned if the * task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter * is omitted from the response. *
* * @param requiresCompatibilities * The task launch type that Amazon ECS validates the task definition against. A client exception is returned * if the task definition doesn't validate against the compatibilities specified. If no value is specified, * the parameter is omitted from the response. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public RegisterTaskDefinitionRequest withRequiresCompatibilities(Compatibility... requiresCompatibilities) { com.amazonaws.internal.SdkInternalList
* The number of CPU units used by the task. It can be expressed as an integer using CPU units (for example,
* 1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in a task
* definition. String values are converted to an integer indicating the CPU units when the task definition is
* registered.
*
* Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level * resources for Windows containers. *
*
* If you're using the EC2 launch type, this field is optional. Supported values are between 128 CPU
* units (0.125 vCPUs) and 10240 CPU units (10 vCPUs). If you do not specify
* a value, the parameter is ignored.
*
* If you're using the Fargate launch type, this field is required and you must use one of the following values,
* which determines your range of supported values for the memory parameter:
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
*
* 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
*
* 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6
* GB), 7168 (7 GB), 8192 (8 GB)
*
* 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)
*
* 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
*
* 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in
* a task definition. String values are converted to an integer indicating the CPU units when the task
* definition is registered. * Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying * container-level resources for Windows containers. *
*
* If you're using the EC2 launch type, this field is optional. Supported values are between 128
* CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs). If you do
* not specify a value, the parameter is ignored.
*
* If you're using the Fargate launch type, this field is required and you must use one of the following
* values, which determines your range of supported values for the memory parameter:
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
*
* 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
*
* 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
*
* 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024
* (1 GB)
*
* 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024
* (1 GB)
*
* 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* The number of CPU units used by the task. It can be expressed as an integer using CPU units (for example,
* 1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in a task
* definition. String values are converted to an integer indicating the CPU units when the task definition is
* registered.
*
* Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level * resources for Windows containers. *
*
* If you're using the EC2 launch type, this field is optional. Supported values are between 128 CPU
* units (0.125 vCPUs) and 10240 CPU units (10 vCPUs). If you do not specify
* a value, the parameter is ignored.
*
* If you're using the Fargate launch type, this field is required and you must use one of the following values,
* which determines your range of supported values for the memory parameter:
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
*
* 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
*
* 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6
* GB), 7168 (7 GB), 8192 (8 GB)
*
* 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)
*
* 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
*
* 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu)
* in a task definition. String values are converted to an integer indicating the CPU units when the task
* definition is registered. * Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying * container-level resources for Windows containers. *
*
* If you're using the EC2 launch type, this field is optional. Supported values are between
* 128 CPU units (0.125 vCPUs) and 10240 CPU units (10
* vCPUs). If you do not specify a value, the parameter is ignored.
*
* If you're using the Fargate launch type, this field is required and you must use one of the following
* values, which determines your range of supported values for the memory parameter:
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
*
* 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
*
* 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
*
* 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024
* (1 GB)
*
* 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024
* (1 GB)
*
* 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* The number of CPU units used by the task. It can be expressed as an integer using CPU units (for example,
* 1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in a task
* definition. String values are converted to an integer indicating the CPU units when the task definition is
* registered.
*
* Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level * resources for Windows containers. *
*
* If you're using the EC2 launch type, this field is optional. Supported values are between 128 CPU
* units (0.125 vCPUs) and 10240 CPU units (10 vCPUs). If you do not specify
* a value, the parameter is ignored.
*
* If you're using the Fargate launch type, this field is required and you must use one of the following values,
* which determines your range of supported values for the memory parameter:
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
*
* 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
*
* 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6
* GB), 7168 (7 GB), 8192 (8 GB)
*
* 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)
*
* 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
*
* 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in
* a task definition. String values are converted to an integer indicating the CPU units when the task
* definition is registered. * Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying * container-level resources for Windows containers. *
*
* If you're using the EC2 launch type, this field is optional. Supported values are between 128
* CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs). If you do
* not specify a value, the parameter is ignored.
*
* If you're using the Fargate launch type, this field is required and you must use one of the following
* values, which determines your range of supported values for the memory parameter:
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
*
* 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)
*
* 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
*
* 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024
* (1 GB)
*
* 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024
* (1 GB)
*
* 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments
*
* This option requires Linux platform 1.4.0 or later.
*
* The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB (for example ,
* 1024) or as a string using GB (for example, 1GB or 1 GB) in a task
* definition. String values are converted to an integer indicating the MiB when the task definition is registered.
*
* Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level * resources for Windows containers. *
** If using the EC2 launch type, this field is optional. *
*
* If using the Fargate launch type, this field is required and you must use one of the following values. This
* determines your range of supported values for the cpu parameter.
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
*
* 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
*
* 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available
* cpu values: 1024 (1 vCPU)
*
* Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2
* vCPU)
*
* Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4
* vCPU)
*
* Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
1024) or as a string using GB (for example, 1GB or 1 GB) in a task
* definition. String values are converted to an integer indicating the MiB when the task definition is
* registered. * Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying * container-level resources for Windows containers. *
** If using the EC2 launch type, this field is optional. *
*
* If using the Fargate launch type, this field is required and you must use one of the following values.
* This determines your range of supported values for the cpu parameter.
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
*
* 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
*
* 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available
* cpu values: 1024 (1 vCPU)
*
* Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values:
* 2048 (2 vCPU)
*
* Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values:
* 4096 (4 vCPU)
*
* Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB (for example ,
* 1024) or as a string using GB (for example, 1GB or 1 GB) in a task
* definition. String values are converted to an integer indicating the MiB when the task definition is registered.
*
* Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level * resources for Windows containers. *
** If using the EC2 launch type, this field is optional. *
*
* If using the Fargate launch type, this field is required and you must use one of the following values. This
* determines your range of supported values for the cpu parameter.
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
*
* 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
*
* 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available
* cpu values: 1024 (1 vCPU)
*
* Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2
* vCPU)
*
* Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4
* vCPU)
*
* Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
1024) or as a string using GB (for example, 1GB or 1 GB) in a
* task definition. String values are converted to an integer indicating the MiB when the task definition is
* registered. * Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying * container-level resources for Windows containers. *
** If using the EC2 launch type, this field is optional. *
*
* If using the Fargate launch type, this field is required and you must use one of the following values.
* This determines your range of supported values for the cpu parameter.
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
*
* 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
*
* 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available
* cpu values: 1024 (1 vCPU)
*
* Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values:
* 2048 (2 vCPU)
*
* Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values:
* 4096 (4 vCPU)
*
* Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB (for example ,
* 1024) or as a string using GB (for example, 1GB or 1 GB) in a task
* definition. String values are converted to an integer indicating the MiB when the task definition is registered.
*
* Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level * resources for Windows containers. *
** If using the EC2 launch type, this field is optional. *
*
* If using the Fargate launch type, this field is required and you must use one of the following values. This
* determines your range of supported values for the cpu parameter.
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
*
* 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
*
* 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available
* cpu values: 1024 (1 vCPU)
*
* Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2
* vCPU)
*
* Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4
* vCPU)
*
* Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
1024) or as a string using GB (for example, 1GB or 1 GB) in a task
* definition. String values are converted to an integer indicating the MiB when the task definition is
* registered. * Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying * container-level resources for Windows containers. *
** If using the EC2 launch type, this field is optional. *
*
* If using the Fargate launch type, this field is required and you must use one of the following values.
* This determines your range of supported values for the cpu parameter.
*
* The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. *
*
* 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
*
* 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
*
* 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available
* cpu values: 1024 (1 vCPU)
*
* Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values:
* 2048 (2 vCPU)
*
* Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values:
* 4096 (4 vCPU)
*
* Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)
*
* This option requires Linux platform 1.4.0 or later.
*
* The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of * a key and an optional value. You define both of them. *
** 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 Amazon Web Services 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.
*
* 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 Amazon Web Services 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.
*
* The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of * a key and an optional value. You define both of them. *
** 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 Amazon Web Services 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.
*
* 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 Amazon Web Services 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.
*
* The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of * a key and an optional value. You define both of them. *
** 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 Amazon Web Services 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.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *
* * @param tags * The metadata that you apply to the task definition to help you categorize and organize them. Each tag * consists of a key and an optional value. You define both of them. ** 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 Amazon Web Services 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.
*
* The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of * a key and an optional value. You define both of them. *
** 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 Amazon Web Services 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.
*
* 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 Amazon Web Services 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.
*
* The process namespace to use for the containers in the task. The valid values are host or
* task. If host is specified, then all containers within the tasks that specified the
* host PID mode on the same container instance share the same process namespace with the host Amazon
* EC2 instance. If task is specified, all containers within the specified task share the same process
* namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run
* reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host or
* task. If host is specified, then all containers within the tasks that specified
* the host PID mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers within the specified task
* share the same process namespace. If no value is specified, the default is a private namespace. For more
* information, see PID
* settings in the Docker run reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @see PidMode */ public void setPidMode(String pidMode) { this.pidMode = pidMode; } /** *
* The process namespace to use for the containers in the task. The valid values are host or
* task. If host is specified, then all containers within the tasks that specified the
* host PID mode on the same container instance share the same process namespace with the host Amazon
* EC2 instance. If task is specified, all containers within the specified task share the same process
* namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run
* reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host or
* task. If host is specified, then all containers within the tasks that specified
* the host PID mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers within the specified task
* share the same process namespace. If no value is specified, the default is a private namespace. For more
* information, see PID
* settings in the Docker run reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @see PidMode */ public String getPidMode() { return this.pidMode; } /** *
* The process namespace to use for the containers in the task. The valid values are host or
* task. If host is specified, then all containers within the tasks that specified the
* host PID mode on the same container instance share the same process namespace with the host Amazon
* EC2 instance. If task is specified, all containers within the specified task share the same process
* namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run
* reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host or
* task. If host is specified, then all containers within the tasks that specified
* the host PID mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers within the specified task
* share the same process namespace. If no value is specified, the default is a private namespace. For more
* information, see PID
* settings in the Docker run reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @return Returns a reference to this object so that method calls can be chained together. * @see PidMode */ public RegisterTaskDefinitionRequest withPidMode(String pidMode) { setPidMode(pidMode); return this; } /** *
* The process namespace to use for the containers in the task. The valid values are host or
* task. If host is specified, then all containers within the tasks that specified the
* host PID mode on the same container instance share the same process namespace with the host Amazon
* EC2 instance. If task is specified, all containers within the specified task share the same process
* namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run
* reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host or
* task. If host is specified, then all containers within the tasks that specified
* the host PID mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers within the specified task
* share the same process namespace. If no value is specified, the default is a private namespace. For more
* information, see PID
* settings in the Docker run reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @see PidMode */ public void setPidMode(PidMode pidMode) { withPidMode(pidMode); } /** *
* The process namespace to use for the containers in the task. The valid values are host or
* task. If host is specified, then all containers within the tasks that specified the
* host PID mode on the same container instance share the same process namespace with the host Amazon
* EC2 instance. If task is specified, all containers within the specified task share the same process
* namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run
* reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host or
* task. If host is specified, then all containers within the tasks that specified
* the host PID mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers within the specified task
* share the same process namespace. If no value is specified, the default is a private namespace. For more
* information, see PID
* settings in the Docker run reference.
*
* If the host PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker security.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @return Returns a reference to this object so that method calls can be chained together. * @see PidMode */ public RegisterTaskDefinitionRequest withPidMode(PidMode pidMode) { this.pidMode = pidMode.toString(); return this; } /** *
* The IPC resource namespace to use for the containers in the task. The valid values are host,
* task, or none. If host is specified, then all containers within the tasks
* that specified the host IPC mode on the same container instance share the same IPC resources with
* the host Amazon EC2 instance. If task is specified, all containers within the specified task share
* the same IPC resources. If none is specified, then IPC resources within the containers of a task are
* private and not shared with other containers in a task or on the container instance. If no value is specified,
* then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more
* information, see IPC settings in
* the Docker run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace
* expose. For more information, see Docker
* security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in the task,
* the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are not
* supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will apply
* to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host,
* task, or none. If host is specified, then all containers within the
* tasks that specified the host IPC mode on the same container instance share the same IPC
* resources with the host Amazon EC2 instance. If task is specified, all containers within the
* specified task share the same IPC resources. If none is specified, then IPC resources within
* the containers of a task are private and not shared with other containers in a task or on the container
* instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon
* setting on the container instance. For more information, see IPC settings in the Docker
* run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in
* the task, the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are
* not supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will
* apply to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @see IpcMode */ public void setIpcMode(String ipcMode) { this.ipcMode = ipcMode; } /** *
* The IPC resource namespace to use for the containers in the task. The valid values are host,
* task, or none. If host is specified, then all containers within the tasks
* that specified the host IPC mode on the same container instance share the same IPC resources with
* the host Amazon EC2 instance. If task is specified, all containers within the specified task share
* the same IPC resources. If none is specified, then IPC resources within the containers of a task are
* private and not shared with other containers in a task or on the container instance. If no value is specified,
* then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more
* information, see IPC settings in
* the Docker run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace
* expose. For more information, see Docker
* security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in the task,
* the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are not
* supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will apply
* to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host,
* task, or none. If host is specified, then all containers within
* the tasks that specified the host IPC mode on the same container instance share the same IPC
* resources with the host Amazon EC2 instance. If task is specified, all containers within the
* specified task share the same IPC resources. If none is specified, then IPC resources within
* the containers of a task are private and not shared with other containers in a task or on the container
* instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon
* setting on the container instance. For more information, see IPC settings in the Docker
* run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in
* the task, the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are
* not supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will
* apply to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @see IpcMode */ public String getIpcMode() { return this.ipcMode; } /** *
* The IPC resource namespace to use for the containers in the task. The valid values are host,
* task, or none. If host is specified, then all containers within the tasks
* that specified the host IPC mode on the same container instance share the same IPC resources with
* the host Amazon EC2 instance. If task is specified, all containers within the specified task share
* the same IPC resources. If none is specified, then IPC resources within the containers of a task are
* private and not shared with other containers in a task or on the container instance. If no value is specified,
* then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more
* information, see IPC settings in
* the Docker run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace
* expose. For more information, see Docker
* security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in the task,
* the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are not
* supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will apply
* to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host,
* task, or none. If host is specified, then all containers within the
* tasks that specified the host IPC mode on the same container instance share the same IPC
* resources with the host Amazon EC2 instance. If task is specified, all containers within the
* specified task share the same IPC resources. If none is specified, then IPC resources within
* the containers of a task are private and not shared with other containers in a task or on the container
* instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon
* setting on the container instance. For more information, see IPC settings in the Docker
* run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in
* the task, the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are
* not supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will
* apply to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @return Returns a reference to this object so that method calls can be chained together. * @see IpcMode */ public RegisterTaskDefinitionRequest withIpcMode(String ipcMode) { setIpcMode(ipcMode); return this; } /** *
* The IPC resource namespace to use for the containers in the task. The valid values are host,
* task, or none. If host is specified, then all containers within the tasks
* that specified the host IPC mode on the same container instance share the same IPC resources with
* the host Amazon EC2 instance. If task is specified, all containers within the specified task share
* the same IPC resources. If none is specified, then IPC resources within the containers of a task are
* private and not shared with other containers in a task or on the container instance. If no value is specified,
* then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more
* information, see IPC settings in
* the Docker run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace
* expose. For more information, see Docker
* security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in the task,
* the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are not
* supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will apply
* to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host,
* task, or none. If host is specified, then all containers within the
* tasks that specified the host IPC mode on the same container instance share the same IPC
* resources with the host Amazon EC2 instance. If task is specified, all containers within the
* specified task share the same IPC resources. If none is specified, then IPC resources within
* the containers of a task are private and not shared with other containers in a task or on the container
* instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon
* setting on the container instance. For more information, see IPC settings in the Docker
* run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in
* the task, the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are
* not supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will
* apply to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @see IpcMode */ public void setIpcMode(IpcMode ipcMode) { withIpcMode(ipcMode); } /** *
* The IPC resource namespace to use for the containers in the task. The valid values are host,
* task, or none. If host is specified, then all containers within the tasks
* that specified the host IPC mode on the same container instance share the same IPC resources with
* the host Amazon EC2 instance. If task is specified, all containers within the specified task share
* the same IPC resources. If none is specified, then IPC resources within the containers of a task are
* private and not shared with other containers in a task or on the container instance. If no value is specified,
* then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more
* information, see IPC settings in
* the Docker run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace
* expose. For more information, see Docker
* security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in the task,
* the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are not
* supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will apply
* to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
*host,
* task, or none. If host is specified, then all containers within the
* tasks that specified the host IPC mode on the same container instance share the same IPC
* resources with the host Amazon EC2 instance. If task is specified, all containers within the
* specified task share the same IPC resources. If none is specified, then IPC resources within
* the containers of a task are private and not shared with other containers in a task or on the container
* instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon
* setting on the container instance. For more information, see IPC settings in the Docker
* run reference.
*
* If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker security.
*
* If you are setting namespaced kernel parameters using systemControls for the containers in
* the task, the following will apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
*
* For tasks that use the host IPC mode, IPC namespace related systemControls are
* not supported.
*
* For tasks that use the task IPC mode, IPC namespace related systemControls will
* apply to all containers within a task.
*
* This parameter is not supported for Windows containers or tasks run on Fargate. *
* @return Returns a reference to this object so that method calls can be chained together. * @see IpcMode */ public RegisterTaskDefinitionRequest withIpcMode(IpcMode ipcMode) { this.ipcMode = ipcMode.toString(); return this; } /** ** The configuration details for the App Mesh proxy. *
*
* For tasks hosted on Amazon EC2 instances, 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 AMI
* versions in the Amazon Elastic Container Service Developer Guide.
*
* For tasks hosted on Amazon EC2 instances, 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 AMI versions in the Amazon Elastic Container Service Developer Guide.
*/
public void setProxyConfiguration(ProxyConfiguration proxyConfiguration) {
this.proxyConfiguration = proxyConfiguration;
}
/**
*
* The configuration details for the App Mesh proxy. *
*
* For tasks hosted on Amazon EC2 instances, 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 AMI
* versions in the Amazon Elastic Container Service Developer Guide.
*
* For tasks hosted on Amazon EC2 instances, 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 AMI versions in the Amazon Elastic Container Service Developer Guide.
*/
public ProxyConfiguration getProxyConfiguration() {
return this.proxyConfiguration;
}
/**
*
* The configuration details for the App Mesh proxy. *
*
* For tasks hosted on Amazon EC2 instances, 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 AMI
* versions in the Amazon Elastic Container Service Developer Guide.
*
* For tasks hosted on Amazon EC2 instances, 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 AMI versions in the Amazon Elastic Container Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RegisterTaskDefinitionRequest withProxyConfiguration(ProxyConfiguration proxyConfiguration) {
setProxyConfiguration(proxyConfiguration);
return this;
}
/**
*
* The Elastic Inference accelerators to use for the containers in the task. *
* * @return The Elastic Inference accelerators to use for the containers in the task. */ public java.util.List* The Elastic Inference accelerators to use for the containers in the task. *
* * @param inferenceAccelerators * The Elastic Inference accelerators to use for the containers in the task. */ public void setInferenceAccelerators(java.util.Collection* The Elastic Inference accelerators to use for the containers in the task. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setInferenceAccelerators(java.util.Collection)} or * {@link #withInferenceAccelerators(java.util.Collection)} if you want to override the existing values. *
* * @param inferenceAccelerators * The Elastic Inference accelerators to use for the containers in the task. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withInferenceAccelerators(InferenceAccelerator... inferenceAccelerators) { if (this.inferenceAccelerators == null) { setInferenceAccelerators(new com.amazonaws.internal.SdkInternalList* The Elastic Inference accelerators to use for the containers in the task. *
* * @param inferenceAccelerators * The Elastic Inference accelerators to use for the containers in the task. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterTaskDefinitionRequest withInferenceAccelerators(java.util.Collection* 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 Fargate. For more information, see Fargate task storage in * the Amazon ECS User Guide for Fargate. *
** For tasks using the Fargate launch type, the task requires the following platforms: *
*
* Linux platform version 1.4.0 or later.
*
* Windows platform version 1.0.0 or later.
*
* For tasks using the Fargate launch type, the task requires the following platforms: *
*
* Linux platform version 1.4.0 or later.
*
* Windows platform version 1.0.0 or later.
*
* 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 Fargate. For more information, see Fargate task storage in * the Amazon ECS User Guide for Fargate. *
** For tasks using the Fargate launch type, the task requires the following platforms: *
*
* Linux platform version 1.4.0 or later.
*
* Windows platform version 1.0.0 or later.
*
* For tasks using the Fargate launch type, the task requires the following platforms: *
*
* Linux platform version 1.4.0 or later.
*
* Windows platform version 1.0.0 or later.
*
* 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 Fargate. For more information, see Fargate task storage in * the Amazon ECS User Guide for Fargate. *
** For tasks using the Fargate launch type, the task requires the following platforms: *
*
* Linux platform version 1.4.0 or later.
*
* Windows platform version 1.0.0 or later.
*
* For tasks using the Fargate launch type, the task requires the following platforms: *
*
* Linux platform version 1.4.0 or later.
*
* Windows platform version 1.0.0 or later.
*
* The operating system that your tasks definitions run on. A platform family is specified only for tasks using the * Fargate launch type. *
*
* When you specify a task definition in a service, this value must match the runtimePlatform value of
* the service.
*
* When you specify a task definition in a service, this value must match the runtimePlatform
* value of the service.
*/
public void setRuntimePlatform(RuntimePlatform runtimePlatform) {
this.runtimePlatform = runtimePlatform;
}
/**
*
* The operating system that your tasks definitions run on. A platform family is specified only for tasks using the * Fargate launch type. *
*
* When you specify a task definition in a service, this value must match the runtimePlatform value of
* the service.
*
* When you specify a task definition in a service, this value must match the runtimePlatform
* value of the service.
*/
public RuntimePlatform getRuntimePlatform() {
return this.runtimePlatform;
}
/**
*
* The operating system that your tasks definitions run on. A platform family is specified only for tasks using the * Fargate launch type. *
*
* When you specify a task definition in a service, this value must match the runtimePlatform value of
* the service.
*
* When you specify a task definition in a service, this value must match the runtimePlatform
* value of the service.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public RegisterTaskDefinitionRequest withRuntimePlatform(RuntimePlatform runtimePlatform) {
setRuntimePlatform(runtimePlatform);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getFamily() != null)
sb.append("Family: ").append(getFamily()).append(",");
if (getTaskRoleArn() != null)
sb.append("TaskRoleArn: ").append(getTaskRoleArn()).append(",");
if (getExecutionRoleArn() != null)
sb.append("ExecutionRoleArn: ").append(getExecutionRoleArn()).append(",");
if (getNetworkMode() != null)
sb.append("NetworkMode: ").append(getNetworkMode()).append(",");
if (getContainerDefinitions() != null)
sb.append("ContainerDefinitions: ").append(getContainerDefinitions()).append(",");
if (getVolumes() != null)
sb.append("Volumes: ").append(getVolumes()).append(",");
if (getPlacementConstraints() != null)
sb.append("PlacementConstraints: ").append(getPlacementConstraints()).append(",");
if (getRequiresCompatibilities() != null)
sb.append("RequiresCompatibilities: ").append(getRequiresCompatibilities()).append(",");
if (getCpu() != null)
sb.append("Cpu: ").append(getCpu()).append(",");
if (getMemory() != null)
sb.append("Memory: ").append(getMemory()).append(",");
if (getTags() != null)
sb.append("Tags: ").append(getTags()).append(",");
if (getPidMode() != null)
sb.append("PidMode: ").append(getPidMode()).append(",");
if (getIpcMode() != null)
sb.append("IpcMode: ").append(getIpcMode()).append(",");
if (getProxyConfiguration() != null)
sb.append("ProxyConfiguration: ").append(getProxyConfiguration()).append(",");
if (getInferenceAccelerators() != null)
sb.append("InferenceAccelerators: ").append(getInferenceAccelerators()).append(",");
if (getEphemeralStorage() != null)
sb.append("EphemeralStorage: ").append(getEphemeralStorage()).append(",");
if (getRuntimePlatform() != null)
sb.append("RuntimePlatform: ").append(getRuntimePlatform());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof RegisterTaskDefinitionRequest == false)
return false;
RegisterTaskDefinitionRequest other = (RegisterTaskDefinitionRequest) obj;
if (other.getFamily() == null ^ this.getFamily() == null)
return false;
if (other.getFamily() != null && other.getFamily().equals(this.getFamily()) == false)
return false;
if (other.getTaskRoleArn() == null ^ this.getTaskRoleArn() == null)
return false;
if (other.getTaskRoleArn() != null && other.getTaskRoleArn().equals(this.getTaskRoleArn()) == false)
return false;
if (other.getExecutionRoleArn() == null ^ this.getExecutionRoleArn() == null)
return false;
if (other.getExecutionRoleArn() != null && other.getExecutionRoleArn().equals(this.getExecutionRoleArn()) == false)
return false;
if (other.getNetworkMode() == null ^ this.getNetworkMode() == null)
return false;
if (other.getNetworkMode() != null && other.getNetworkMode().equals(this.getNetworkMode()) == false)
return false;
if (other.getContainerDefinitions() == null ^ this.getContainerDefinitions() == null)
return false;
if (other.getContainerDefinitions() != null && other.getContainerDefinitions().equals(this.getContainerDefinitions()) == false)
return false;
if (other.getVolumes() == null ^ this.getVolumes() == null)
return false;
if (other.getVolumes() != null && other.getVolumes().equals(this.getVolumes()) == false)
return false;
if (other.getPlacementConstraints() == null ^ this.getPlacementConstraints() == null)
return false;
if (other.getPlacementConstraints() != null && other.getPlacementConstraints().equals(this.getPlacementConstraints()) == false)
return false;
if (other.getRequiresCompatibilities() == null ^ this.getRequiresCompatibilities() == null)
return false;
if (other.getRequiresCompatibilities() != null && other.getRequiresCompatibilities().equals(this.getRequiresCompatibilities()) == false)
return false;
if (other.getCpu() == null ^ this.getCpu() == null)
return false;
if (other.getCpu() != null && other.getCpu().equals(this.getCpu()) == false)
return false;
if (other.getMemory() == null ^ this.getMemory() == null)
return false;
if (other.getMemory() != null && other.getMemory().equals(this.getMemory()) == false)
return false;
if (other.getTags() == null ^ this.getTags() == null)
return false;
if (other.getTags() != null && other.getTags().equals(this.getTags()) == false)
return false;
if (other.getPidMode() == null ^ this.getPidMode() == null)
return false;
if (other.getPidMode() != null && other.getPidMode().equals(this.getPidMode()) == false)
return false;
if (other.getIpcMode() == null ^ this.getIpcMode() == null)
return false;
if (other.getIpcMode() != null && other.getIpcMode().equals(this.getIpcMode()) == false)
return false;
if (other.getProxyConfiguration() == null ^ this.getProxyConfiguration() == null)
return false;
if (other.getProxyConfiguration() != null && other.getProxyConfiguration().equals(this.getProxyConfiguration()) == false)
return false;
if (other.getInferenceAccelerators() == null ^ this.getInferenceAccelerators() == null)
return false;
if (other.getInferenceAccelerators() != null && other.getInferenceAccelerators().equals(this.getInferenceAccelerators()) == false)
return false;
if (other.getEphemeralStorage() == null ^ this.getEphemeralStorage() == null)
return false;
if (other.getEphemeralStorage() != null && other.getEphemeralStorage().equals(this.getEphemeralStorage()) == false)
return false;
if (other.getRuntimePlatform() == null ^ this.getRuntimePlatform() == null)
return false;
if (other.getRuntimePlatform() != null && other.getRuntimePlatform().equals(this.getRuntimePlatform()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getFamily() == null) ? 0 : getFamily().hashCode());
hashCode = prime * hashCode + ((getTaskRoleArn() == null) ? 0 : getTaskRoleArn().hashCode());
hashCode = prime * hashCode + ((getExecutionRoleArn() == null) ? 0 : getExecutionRoleArn().hashCode());
hashCode = prime * hashCode + ((getNetworkMode() == null) ? 0 : getNetworkMode().hashCode());
hashCode = prime * hashCode + ((getContainerDefinitions() == null) ? 0 : getContainerDefinitions().hashCode());
hashCode = prime * hashCode + ((getVolumes() == null) ? 0 : getVolumes().hashCode());
hashCode = prime * hashCode + ((getPlacementConstraints() == null) ? 0 : getPlacementConstraints().hashCode());
hashCode = prime * hashCode + ((getRequiresCompatibilities() == null) ? 0 : getRequiresCompatibilities().hashCode());
hashCode = prime * hashCode + ((getCpu() == null) ? 0 : getCpu().hashCode());
hashCode = prime * hashCode + ((getMemory() == null) ? 0 : getMemory().hashCode());
hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode());
hashCode = prime * hashCode + ((getPidMode() == null) ? 0 : getPidMode().hashCode());
hashCode = prime * hashCode + ((getIpcMode() == null) ? 0 : getIpcMode().hashCode());
hashCode = prime * hashCode + ((getProxyConfiguration() == null) ? 0 : getProxyConfiguration().hashCode());
hashCode = prime * hashCode + ((getInferenceAccelerators() == null) ? 0 : getInferenceAccelerators().hashCode());
hashCode = prime * hashCode + ((getEphemeralStorage() == null) ? 0 : getEphemeralStorage().hashCode());
hashCode = prime * hashCode + ((getRuntimePlatform() == null) ? 0 : getRuntimePlatform().hashCode());
return hashCode;
}
@Override
public RegisterTaskDefinitionRequest clone() {
return (RegisterTaskDefinitionRequest) super.clone();
}
}