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

com.amazonaws.services.ecs.model.TaskDefinition Maven / Gradle / Ivy

Go to download

The AWS Java SDK for the Amazon EC2 Container Service holds the client classes that are used for communicating with the Amazon EC2 Container Service

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2015-2020 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.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 * 

* The details of a task definition which describes the container and volume definitions of an Amazon Elastic Container * Service task. You can specify which Docker images to use, the required resources, and other configurations related to * launching the task definition through an Amazon ECS service or task. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class TaskDefinition implements Serializable, Cloneable, StructuredPojo { /** *

* The full Amazon Resource Name (ARN) of the task definition. *

*/ private String taskDefinitionArn; /** *

* A list of container definitions in JSON format that describe the different containers that make up your task. For * more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

*/ private com.amazonaws.internal.SdkInternalList containerDefinitions; /** *

* The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), * numbers, hyphens, and underscores are allowed. *

*

* A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you * registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add. *

*/ private String family; /** *

* The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that * grants containers in the task permission to call AWS APIs on your behalf. For more information, see Amazon ECS Task Role * in the Amazon Elastic Container Service Developer Guide. *

*

* IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you launch the * Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take * advantage of the feature. For more information, see Windows 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 containers in this task can assume. All containers * in this task are granted the permissions that are specified in this role. *

*/ private String executionRoleArn; /** *

* The Docker networking mode to use for the containers in the task. The valid values are none, * bridge, awsvpc, and host. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is required. * If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init package, or * AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with * Windows containers, you must not specify a network mode. If you use the console to register a task definition * with Windows containers, you must choose the <default> network mode object. *

*

* For more information, see Network * settings in the Docker run reference. *

*/ private String networkMode; /** *

* The revision of the task in a particular family. The revision is a version number of a task definition in a * family. When you register a task definition for the first time, the revision is 1. Each time that * you register a new revision of a task definition in the same family, the revision value always increases by one, * even if you have deregistered previous revisions in this family. *

*/ private Integer revision; /** *

* The list of volume definitions for the task. *

*

* If your tasks are using the Fargate launch type, the host and sourcePath parameters are * not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

*/ private com.amazonaws.internal.SdkInternalList volumes; /** *

* The status of the task definition. *

*/ private String status; /** *

* The container instance attributes required by your task. This field is not valid if you are using the Fargate * launch type for your task. *

*/ private com.amazonaws.internal.SdkInternalList requiresAttributes; /** *

* An array of placement constraint objects to use for tasks. This field is not valid if you are using the Fargate * launch type for your task. *

*/ private com.amazonaws.internal.SdkInternalList placementConstraints; /** *

* The launch type to use with your task. For more information, see Amazon ECS Launch Types * in the Amazon Elastic Container Service Developer Guide. *

*/ private com.amazonaws.internal.SdkInternalList compatibilities; /** *

* The launch type the task requires. If no value is specified, it will default to EC2. Valid values * include EC2 and FARGATE. *

*/ private com.amazonaws.internal.SdkInternalList requiresCompatibilities; /** *

* The number of cpu units used by the task. If you are using the EC2 launch type, this field is * optional and any value can be used. If you are using the Fargate launch type, this field is required and you must * use one of the following values, which determines your range of valid values for the memory * parameter: *

*
    *
  • *

    * 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: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 * (1 GB) *

    *
  • *
  • *

    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 * (1 GB) *

    *
  • *
*/ private String cpu; /** *

* The amount (in MiB) of memory used by the task. *

*

* If using the EC2 launch type, this field is optional and any value can be used. If a task-level memory value is * specified then the container-level memory value is optional. *

*

* If using the Fargate launch type, this field is required and you must use one of the following values, which * determines your range of valid values for the cpu parameter: *

*
    *
  • *

    * 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) *

    *
  • *
*/ private String memory; /** *

* The Elastic Inference accelerator associated with the task. *

*/ private com.amazonaws.internal.SdkInternalList inferenceAccelerators; /** *

* 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 using the Fargate launch type. *

*
*/ private String pidMode; /** *

* 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 using the Fargate launch type. *

*
*/ private String ipcMode; /** *

* The configuration details for the App Mesh proxy. *

*

* Your Amazon ECS 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 enable a proxy configuration. If your container instances are * launched from the Amazon ECS-optimized AMI version 20190301 or later, then they contain the required * versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized * Linux AMI in the Amazon Elastic Container Service Developer Guide. *

*/ private ProxyConfiguration proxyConfiguration; /** *

* The full Amazon Resource Name (ARN) of the task definition. *

* * @param taskDefinitionArn * The full Amazon Resource Name (ARN) of the task definition. */ public void setTaskDefinitionArn(String taskDefinitionArn) { this.taskDefinitionArn = taskDefinitionArn; } /** *

* The full Amazon Resource Name (ARN) of the task definition. *

* * @return The full Amazon Resource Name (ARN) of the task definition. */ public String getTaskDefinitionArn() { return this.taskDefinitionArn; } /** *

* The full Amazon Resource Name (ARN) of the task definition. *

* * @param taskDefinitionArn * The full Amazon Resource Name (ARN) of the task definition. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withTaskDefinitionArn(String taskDefinitionArn) { setTaskDefinitionArn(taskDefinitionArn); return this; } /** *

* A list of container definitions in JSON format that describe the different containers that make up your task. For * more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

* * @return A list of container definitions in JSON format that describe the different containers that make up your * task. For more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. */ public java.util.List getContainerDefinitions() { if (containerDefinitions == null) { containerDefinitions = new com.amazonaws.internal.SdkInternalList(); } return containerDefinitions; } /** *

* A list of container definitions in JSON format that describe the different containers that make up your task. For * more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

* * @param containerDefinitions * A list of container definitions in JSON format that describe the different containers that make up your * task. For more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. */ public void setContainerDefinitions(java.util.Collection containerDefinitions) { if (containerDefinitions == null) { this.containerDefinitions = null; return; } this.containerDefinitions = new com.amazonaws.internal.SdkInternalList(containerDefinitions); } /** *

* A list of container definitions in JSON format that describe the different containers that make up your task. For * more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

*

* 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. For more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withContainerDefinitions(ContainerDefinition... containerDefinitions) { if (this.containerDefinitions == null) { setContainerDefinitions(new com.amazonaws.internal.SdkInternalList(containerDefinitions.length)); } for (ContainerDefinition ele : containerDefinitions) { this.containerDefinitions.add(ele); } return this; } /** *

* A list of container definitions in JSON format that describe the different containers that make up your task. For * more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

* * @param containerDefinitions * A list of container definitions in JSON format that describe the different containers that make up your * task. For more information about container definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withContainerDefinitions(java.util.Collection containerDefinitions) { setContainerDefinitions(containerDefinitions); return this; } /** *

* The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), * numbers, hyphens, and underscores are allowed. *

*

* A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you * registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add. *

* * @param family * The name of a family that this task definition is registered to. Up to 255 letters (uppercase and * lowercase), numbers, hyphens, and underscores are allowed.

*

* A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that * you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each * task definition that you add. */ public void setFamily(String family) { this.family = family; } /** *

* The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), * numbers, hyphens, and underscores are allowed. *

*

* A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you * registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add. *

* * @return The name of a family that this task definition is registered to. Up to 255 letters (uppercase and * lowercase), numbers, hyphens, and underscores are allowed.

*

* A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that * you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each * task definition that you add. */ public String getFamily() { return this.family; } /** *

* The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), * numbers, hyphens, and underscores are allowed. *

*

* A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you * registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add. *

* * @param family * The name of a family that this task definition is registered to. Up to 255 letters (uppercase and * lowercase), numbers, hyphens, and underscores are allowed.

*

* A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that * you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each * task definition that you add. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withFamily(String family) { setFamily(family); return this; } /** *

* The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that * grants containers in the task permission to call AWS APIs on your behalf. For more information, see Amazon ECS Task Role * in the Amazon Elastic Container Service Developer Guide. *

*

* IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you launch the * Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take * advantage of the feature. For more information, see Windows 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 AWS Identity and Access Management (IAM) role * that grants containers in the task permission to call AWS APIs on your behalf. For more information, see * Amazon ECS Task * Role in the Amazon Elastic Container Service Developer Guide.

*

* IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you * launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in * order to take advantage of the feature. For more information, see Windows 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 AWS Identity and Access Management (IAM) role that * grants containers in the task permission to call AWS APIs on your behalf. For more information, see Amazon ECS Task Role * in the Amazon Elastic Container Service Developer Guide. *

*

* IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you launch the * Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take * advantage of the feature. For more information, see Windows IAM Roles * for Tasks in the Amazon Elastic Container Service Developer Guide. *

* * @return The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role * that grants containers in the task permission to call AWS APIs on your behalf. For more information, see * Amazon ECS Task * Role in the Amazon Elastic Container Service Developer Guide.

*

* IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you * launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in * order to take advantage of the feature. For more information, see Windows * 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 AWS Identity and Access Management (IAM) role that * grants containers in the task permission to call AWS APIs on your behalf. For more information, see Amazon ECS Task Role * in the Amazon Elastic Container Service Developer Guide. *

*

* IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you launch the * Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take * advantage of the feature. For more information, see Windows 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 AWS Identity and Access Management (IAM) role * that grants containers in the task permission to call AWS APIs on your behalf. For more information, see * Amazon ECS Task * Role in the Amazon Elastic Container Service Developer Guide.

*

* IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you * launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in * order to take advantage of the feature. For more information, see Windows 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 TaskDefinition withTaskRoleArn(String taskRoleArn) { setTaskRoleArn(taskRoleArn); return this; } /** *

* The Amazon Resource Name (ARN) of the task execution role that containers in this task can assume. All containers * in this task are granted the permissions that are specified in this role. *

* * @param executionRoleArn * The Amazon Resource Name (ARN) of the task execution role that containers in this task can assume. All * containers in this task are granted the permissions that are specified in this role. */ public void setExecutionRoleArn(String executionRoleArn) { this.executionRoleArn = executionRoleArn; } /** *

* The Amazon Resource Name (ARN) of the task execution role that containers in this task can assume. All containers * in this task are granted the permissions that are specified in this role. *

* * @return The Amazon Resource Name (ARN) of the task execution role that containers in this task can assume. All * containers in this task are granted the permissions that are specified in this role. */ public String getExecutionRoleArn() { return this.executionRoleArn; } /** *

* The Amazon Resource Name (ARN) of the task execution role that containers in this task can assume. All containers * in this task are granted the permissions that are specified in this role. *

* * @param executionRoleArn * The Amazon Resource Name (ARN) of the task execution role that containers in this task can assume. All * containers in this task are granted the permissions that are specified in this role. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition 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. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is required. * If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init package, or * AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with * Windows containers, you must not specify a network mode. If you use the console to register a task definition * with Windows containers, you must choose the <default> network mode object. *

*

* 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 are none, * bridge, awsvpc, and host. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is * required. If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init * package, or AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition * with Windows containers, you must not specify a network mode. If you use the console to register a task * definition with Windows containers, you must choose the <default> network mode object. *

*

* 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. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is required. * If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init package, or * AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with * Windows containers, you must not specify a network mode. If you use the console to register a task definition * with Windows containers, you must choose the <default> network mode object. *

*

* 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 are none, * bridge, awsvpc, and host. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is * required. If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init * package, or AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task * definition with Windows containers, you must not specify a network mode. If you use the console to * register a task definition with Windows containers, you must choose the <default> * network mode object. *

*

* 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. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is required. * If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init package, or * AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with * Windows containers, you must not specify a network mode. If you use the console to register a task definition * with Windows containers, you must choose the <default> network mode object. *

*

* 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 are none, * bridge, awsvpc, and host. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is * required. If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init * package, or AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition * with Windows containers, you must not specify a network mode. If you use the console to register a task * definition with Windows containers, you must choose the <default> network mode object. *

*

* 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 TaskDefinition 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. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is required. * If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init package, or * AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with * Windows containers, you must not specify a network mode. If you use the console to register a task definition * with Windows containers, you must choose the <default> network mode object. *

*

* 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 are none, * bridge, awsvpc, and host. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is * required. If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init * package, or AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition * with Windows containers, you must not specify a network mode. If you use the console to register a task * definition with Windows containers, you must choose the <default> network mode object. *

*

* 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. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is required. * If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init package, or * AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition with * Windows containers, you must not specify a network mode. If you use the console to register a task definition * with Windows containers, you must choose the <default> network mode object. *

*

* 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 are none, * bridge, awsvpc, and host. The default Docker network mode is * bridge. If you are using the Fargate launch type, the awsvpc network mode is * required. If you are using the EC2 launch type, any network mode 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. *

*

* 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. *

* *

* Currently, only Amazon ECS-optimized AMIs, other Amazon Linux variants with the ecs-init * package, or AWS Fargate infrastructure support the awsvpc network mode. *

*
*

* 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. *

*

* Docker for Windows uses different network modes than Docker for Linux. When you register a task definition * with Windows containers, you must not specify a network mode. If you use the console to register a task * definition with Windows containers, you must choose the <default> network mode object. *

*

* 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 TaskDefinition withNetworkMode(NetworkMode networkMode) { this.networkMode = networkMode.toString(); return this; } /** *

* The revision of the task in a particular family. The revision is a version number of a task definition in a * family. When you register a task definition for the first time, the revision is 1. Each time that * you register a new revision of a task definition in the same family, the revision value always increases by one, * even if you have deregistered previous revisions in this family. *

* * @param revision * The revision of the task in a particular family. The revision is a version number of a task definition in * a family. When you register a task definition for the first time, the revision is 1. Each * time that you register a new revision of a task definition in the same family, the revision value always * increases by one, even if you have deregistered previous revisions in this family. */ public void setRevision(Integer revision) { this.revision = revision; } /** *

* The revision of the task in a particular family. The revision is a version number of a task definition in a * family. When you register a task definition for the first time, the revision is 1. Each time that * you register a new revision of a task definition in the same family, the revision value always increases by one, * even if you have deregistered previous revisions in this family. *

* * @return The revision of the task in a particular family. The revision is a version number of a task definition in * a family. When you register a task definition for the first time, the revision is 1. Each * time that you register a new revision of a task definition in the same family, the revision value always * increases by one, even if you have deregistered previous revisions in this family. */ public Integer getRevision() { return this.revision; } /** *

* The revision of the task in a particular family. The revision is a version number of a task definition in a * family. When you register a task definition for the first time, the revision is 1. Each time that * you register a new revision of a task definition in the same family, the revision value always increases by one, * even if you have deregistered previous revisions in this family. *

* * @param revision * The revision of the task in a particular family. The revision is a version number of a task definition in * a family. When you register a task definition for the first time, the revision is 1. Each * time that you register a new revision of a task definition in the same family, the revision value always * increases by one, even if you have deregistered previous revisions in this family. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withRevision(Integer revision) { setRevision(revision); return this; } /** *

* The list of volume definitions for the task. *

*

* If your tasks are using the Fargate launch type, the host and sourcePath parameters are * not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

* * @return The list of volume definitions for the task.

*

* If your tasks are using the Fargate launch type, the host and sourcePath * parameters are not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. */ public java.util.List getVolumes() { if (volumes == null) { volumes = new com.amazonaws.internal.SdkInternalList(); } return volumes; } /** *

* The list of volume definitions for the task. *

*

* If your tasks are using the Fargate launch type, the host and sourcePath parameters are * not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

* * @param volumes * The list of volume definitions for the task.

*

* If your tasks are using the Fargate launch type, the host and sourcePath * parameters are not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. */ public void setVolumes(java.util.Collection volumes) { if (volumes == null) { this.volumes = null; return; } this.volumes = new com.amazonaws.internal.SdkInternalList(volumes); } /** *

* The list of volume definitions for the task. *

*

* If your tasks are using the Fargate launch type, the host and sourcePath parameters are * not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

*

* 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 * The list of volume definitions for the task.

*

* If your tasks are using the Fargate launch type, the host and sourcePath * parameters are not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withVolumes(Volume... volumes) { if (this.volumes == null) { setVolumes(new com.amazonaws.internal.SdkInternalList(volumes.length)); } for (Volume ele : volumes) { this.volumes.add(ele); } return this; } /** *

* The list of volume definitions for the task. *

*

* If your tasks are using the Fargate launch type, the host and sourcePath parameters are * not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. *

* * @param volumes * The list of volume definitions for the task.

*

* If your tasks are using the Fargate launch type, the host and sourcePath * parameters are not supported. *

*

* For more information about volume definition parameters and defaults, see Amazon ECS Task * Definitions in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withVolumes(java.util.Collection volumes) { setVolumes(volumes); return this; } /** *

* The status of the task definition. *

* * @param status * The status of the task definition. * @see TaskDefinitionStatus */ public void setStatus(String status) { this.status = status; } /** *

* The status of the task definition. *

* * @return The status of the task definition. * @see TaskDefinitionStatus */ public String getStatus() { return this.status; } /** *

* The status of the task definition. *

* * @param status * The status of the task definition. * @return Returns a reference to this object so that method calls can be chained together. * @see TaskDefinitionStatus */ public TaskDefinition withStatus(String status) { setStatus(status); return this; } /** *

* The status of the task definition. *

* * @param status * The status of the task definition. * @see TaskDefinitionStatus */ public void setStatus(TaskDefinitionStatus status) { withStatus(status); } /** *

* The status of the task definition. *

* * @param status * The status of the task definition. * @return Returns a reference to this object so that method calls can be chained together. * @see TaskDefinitionStatus */ public TaskDefinition withStatus(TaskDefinitionStatus status) { this.status = status.toString(); return this; } /** *

* The container instance attributes required by your task. This field is not valid if you are using the Fargate * launch type for your task. *

* * @return The container instance attributes required by your task. This field is not valid if you are using the * Fargate launch type for your task. */ public java.util.List getRequiresAttributes() { if (requiresAttributes == null) { requiresAttributes = new com.amazonaws.internal.SdkInternalList(); } return requiresAttributes; } /** *

* The container instance attributes required by your task. This field is not valid if you are using the Fargate * launch type for your task. *

* * @param requiresAttributes * The container instance attributes required by your task. This field is not valid if you are using the * Fargate launch type for your task. */ public void setRequiresAttributes(java.util.Collection requiresAttributes) { if (requiresAttributes == null) { this.requiresAttributes = null; return; } this.requiresAttributes = new com.amazonaws.internal.SdkInternalList(requiresAttributes); } /** *

* The container instance attributes required by your task. This field is not valid if you are using the Fargate * launch type for your task. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setRequiresAttributes(java.util.Collection)} or {@link #withRequiresAttributes(java.util.Collection)} if * you want to override the existing values. *

* * @param requiresAttributes * The container instance attributes required by your task. This field is not valid if you are using the * Fargate launch type for your task. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withRequiresAttributes(Attribute... requiresAttributes) { if (this.requiresAttributes == null) { setRequiresAttributes(new com.amazonaws.internal.SdkInternalList(requiresAttributes.length)); } for (Attribute ele : requiresAttributes) { this.requiresAttributes.add(ele); } return this; } /** *

* The container instance attributes required by your task. This field is not valid if you are using the Fargate * launch type for your task. *

* * @param requiresAttributes * The container instance attributes required by your task. This field is not valid if you are using the * Fargate launch type for your task. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withRequiresAttributes(java.util.Collection requiresAttributes) { setRequiresAttributes(requiresAttributes); return this; } /** *

* An array of placement constraint objects to use for tasks. This field is not valid if you are using the Fargate * launch type for your task. *

* * @return An array of placement constraint objects to use for tasks. This field is not valid if you are using the * Fargate launch type for your task. */ public java.util.List getPlacementConstraints() { if (placementConstraints == null) { placementConstraints = new com.amazonaws.internal.SdkInternalList(); } return placementConstraints; } /** *

* An array of placement constraint objects to use for tasks. This field is not valid if you are using the Fargate * launch type for your task. *

* * @param placementConstraints * An array of placement constraint objects to use for tasks. This field is not valid if you are using the * Fargate launch type for your task. */ public void setPlacementConstraints(java.util.Collection placementConstraints) { if (placementConstraints == null) { this.placementConstraints = null; return; } this.placementConstraints = new com.amazonaws.internal.SdkInternalList(placementConstraints); } /** *

* An array of placement constraint objects to use for tasks. This field is not valid if you are using the Fargate * launch type for your task. *

*

* 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 tasks. This field is not valid if you are using the * Fargate launch type for your task. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withPlacementConstraints(TaskDefinitionPlacementConstraint... placementConstraints) { if (this.placementConstraints == null) { setPlacementConstraints(new com.amazonaws.internal.SdkInternalList(placementConstraints.length)); } for (TaskDefinitionPlacementConstraint ele : placementConstraints) { this.placementConstraints.add(ele); } return this; } /** *

* An array of placement constraint objects to use for tasks. This field is not valid if you are using the Fargate * launch type for your task. *

* * @param placementConstraints * An array of placement constraint objects to use for tasks. This field is not valid if you are using the * Fargate launch type for your task. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withPlacementConstraints(java.util.Collection placementConstraints) { setPlacementConstraints(placementConstraints); return this; } /** *

* The launch type to use with your task. For more information, see Amazon ECS Launch Types * in the Amazon Elastic Container Service Developer Guide. *

* * @return The launch type to use with your task. For more information, see Amazon ECS Launch * Types in the Amazon Elastic Container Service Developer Guide. * @see Compatibility */ public java.util.List getCompatibilities() { if (compatibilities == null) { compatibilities = new com.amazonaws.internal.SdkInternalList(); } return compatibilities; } /** *

* The launch type to use with your task. For more information, see Amazon ECS Launch Types * in the Amazon Elastic Container Service Developer Guide. *

* * @param compatibilities * The launch type to use with your task. For more information, see Amazon ECS Launch * Types in the Amazon Elastic Container Service Developer Guide. * @see Compatibility */ public void setCompatibilities(java.util.Collection compatibilities) { if (compatibilities == null) { this.compatibilities = null; return; } this.compatibilities = new com.amazonaws.internal.SdkInternalList(compatibilities); } /** *

* The launch type to use with your task. For more information, see Amazon ECS Launch Types * in the Amazon Elastic Container Service Developer Guide. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setCompatibilities(java.util.Collection)} or {@link #withCompatibilities(java.util.Collection)} if you * want to override the existing values. *

* * @param compatibilities * The launch type to use with your task. For more information, see Amazon ECS Launch * Types in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public TaskDefinition withCompatibilities(String... compatibilities) { if (this.compatibilities == null) { setCompatibilities(new com.amazonaws.internal.SdkInternalList(compatibilities.length)); } for (String ele : compatibilities) { this.compatibilities.add(ele); } return this; } /** *

* The launch type to use with your task. For more information, see Amazon ECS Launch Types * in the Amazon Elastic Container Service Developer Guide. *

* * @param compatibilities * The launch type to use with your task. For more information, see Amazon ECS Launch * Types in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public TaskDefinition withCompatibilities(java.util.Collection compatibilities) { setCompatibilities(compatibilities); return this; } /** *

* The launch type to use with your task. For more information, see Amazon ECS Launch Types * in the Amazon Elastic Container Service Developer Guide. *

* * @param compatibilities * The launch type to use with your task. For more information, see Amazon ECS Launch * Types in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public TaskDefinition withCompatibilities(Compatibility... compatibilities) { com.amazonaws.internal.SdkInternalList compatibilitiesCopy = new com.amazonaws.internal.SdkInternalList(compatibilities.length); for (Compatibility value : compatibilities) { compatibilitiesCopy.add(value.toString()); } if (getCompatibilities() == null) { setCompatibilities(compatibilitiesCopy); } else { getCompatibilities().addAll(compatibilitiesCopy); } return this; } /** *

* The launch type the task requires. If no value is specified, it will default to EC2. Valid values * include EC2 and FARGATE. *

* * @return The launch type the task requires. If no value is specified, it will default to EC2. Valid * values include EC2 and FARGATE. * @see Compatibility */ public java.util.List getRequiresCompatibilities() { if (requiresCompatibilities == null) { requiresCompatibilities = new com.amazonaws.internal.SdkInternalList(); } return requiresCompatibilities; } /** *

* The launch type the task requires. If no value is specified, it will default to EC2. Valid values * include EC2 and FARGATE. *

* * @param requiresCompatibilities * The launch type the task requires. If no value is specified, it will default to EC2. Valid * values include EC2 and FARGATE. * @see Compatibility */ public void setRequiresCompatibilities(java.util.Collection requiresCompatibilities) { if (requiresCompatibilities == null) { this.requiresCompatibilities = null; return; } this.requiresCompatibilities = new com.amazonaws.internal.SdkInternalList(requiresCompatibilities); } /** *

* The launch type the task requires. If no value is specified, it will default to EC2. Valid values * include EC2 and FARGATE. *

*

* 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 launch type the task requires. If no value is specified, it will default to EC2. Valid * values include EC2 and FARGATE. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public TaskDefinition withRequiresCompatibilities(String... requiresCompatibilities) { if (this.requiresCompatibilities == null) { setRequiresCompatibilities(new com.amazonaws.internal.SdkInternalList(requiresCompatibilities.length)); } for (String ele : requiresCompatibilities) { this.requiresCompatibilities.add(ele); } return this; } /** *

* The launch type the task requires. If no value is specified, it will default to EC2. Valid values * include EC2 and FARGATE. *

* * @param requiresCompatibilities * The launch type the task requires. If no value is specified, it will default to EC2. Valid * values include EC2 and FARGATE. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public TaskDefinition withRequiresCompatibilities(java.util.Collection requiresCompatibilities) { setRequiresCompatibilities(requiresCompatibilities); return this; } /** *

* The launch type the task requires. If no value is specified, it will default to EC2. Valid values * include EC2 and FARGATE. *

* * @param requiresCompatibilities * The launch type the task requires. If no value is specified, it will default to EC2. Valid * values include EC2 and FARGATE. * @return Returns a reference to this object so that method calls can be chained together. * @see Compatibility */ public TaskDefinition withRequiresCompatibilities(Compatibility... requiresCompatibilities) { com.amazonaws.internal.SdkInternalList requiresCompatibilitiesCopy = new com.amazonaws.internal.SdkInternalList( requiresCompatibilities.length); for (Compatibility value : requiresCompatibilities) { requiresCompatibilitiesCopy.add(value.toString()); } if (getRequiresCompatibilities() == null) { setRequiresCompatibilities(requiresCompatibilitiesCopy); } else { getRequiresCompatibilities().addAll(requiresCompatibilitiesCopy); } return this; } /** *

* The number of cpu units used by the task. If you are using the EC2 launch type, this field is * optional and any value can be used. If you are using the Fargate launch type, this field is required and you must * use one of the following values, which determines your range of valid values for the memory * parameter: *

*
    *
  • *

    * 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: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 * (1 GB) *

    *
  • *
  • *

    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 * (1 GB) *

    *
  • *
* * @param cpu * The number of cpu units used by the task. If you are using the EC2 launch type, this field is * optional and any value can be used. If you are using the Fargate launch type, this field is required and * you must use one of the following values, which determines your range of valid values for the * memory parameter:

*
    *
  • *

    * 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: Between 4096 (4 GB) and 16384 (16 GB) in increments * of 1024 (1 GB) *

    *
  • *
  • *

    * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments * of 1024 (1 GB) *

    *
  • */ public void setCpu(String cpu) { this.cpu = cpu; } /** *

    * The number of cpu units used by the task. If you are using the EC2 launch type, this field is * optional and any value can be used. If you are using the Fargate launch type, this field is required and you must * use one of the following values, which determines your range of valid values for the memory * parameter: *

    *
      *
    • *

      * 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: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 * (1 GB) *

      *
    • *
    • *

      * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 * (1 GB) *

      *
    • *
    * * @return The number of cpu units used by the task. If you are using the EC2 launch type, this field * is optional and any value can be used. If you are using the Fargate launch type, this field is required * and you must use one of the following values, which determines your range of valid values for the * memory parameter:

    *
      *
    • *

      * 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: Between 4096 (4 GB) and 16384 (16 GB) in increments * of 1024 (1 GB) *

      *
    • *
    • *

      * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments * of 1024 (1 GB) *

      *
    • */ public String getCpu() { return this.cpu; } /** *

      * The number of cpu units used by the task. If you are using the EC2 launch type, this field is * optional and any value can be used. If you are using the Fargate launch type, this field is required and you must * use one of the following values, which determines your range of valid values for the memory * parameter: *

      *
        *
      • *

        * 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: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 * (1 GB) *

        *
      • *
      • *

        * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 * (1 GB) *

        *
      • *
      * * @param cpu * The number of cpu units used by the task. If you are using the EC2 launch type, this field is * optional and any value can be used. If you are using the Fargate launch type, this field is required and * you must use one of the following values, which determines your range of valid values for the * memory parameter:

      *
        *
      • *

        * 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: Between 4096 (4 GB) and 16384 (16 GB) in increments * of 1024 (1 GB) *

        *
      • *
      • *

        * 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments * of 1024 (1 GB) *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withCpu(String cpu) { setCpu(cpu); return this; } /** *

        * The amount (in MiB) of memory used by the task. *

        *

        * If using the EC2 launch type, this field is optional and any value can be used. If a task-level memory value is * specified then the container-level memory value is optional. *

        *

        * If using the Fargate launch type, this field is required and you must use one of the following values, which * determines your range of valid values for the cpu parameter: *

        *
          *
        • *

          * 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) *

          *
        • *
        * * @param memory * The amount (in MiB) of memory used by the task.

        *

        * If using the EC2 launch type, this field is optional and any value can be used. If a task-level memory * value is specified then the container-level memory value is optional. *

        *

        * If using the Fargate launch type, this field is required and you must use one of the following values, * which determines your range of valid values for the cpu parameter: *

        *
          *
        • *

          * 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) *

          *
        • */ public void setMemory(String memory) { this.memory = memory; } /** *

          * The amount (in MiB) of memory used by the task. *

          *

          * If using the EC2 launch type, this field is optional and any value can be used. If a task-level memory value is * specified then the container-level memory value is optional. *

          *

          * If using the Fargate launch type, this field is required and you must use one of the following values, which * determines your range of valid values for the cpu parameter: *

          *
            *
          • *

            * 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) *

            *
          • *
          * * @return The amount (in MiB) of memory used by the task.

          *

          * If using the EC2 launch type, this field is optional and any value can be used. If a task-level memory * value is specified then the container-level memory value is optional. *

          *

          * If using the Fargate launch type, this field is required and you must use one of the following values, * which determines your range of valid values for the cpu parameter: *

          *
            *
          • *

            * 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) *

            *
          • */ public String getMemory() { return this.memory; } /** *

            * The amount (in MiB) of memory used by the task. *

            *

            * If using the EC2 launch type, this field is optional and any value can be used. If a task-level memory value is * specified then the container-level memory value is optional. *

            *

            * If using the Fargate launch type, this field is required and you must use one of the following values, which * determines your range of valid values for the cpu parameter: *

            *
              *
            • *

              * 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) *

              *
            • *
            * * @param memory * The amount (in MiB) of memory used by the task.

            *

            * If using the EC2 launch type, this field is optional and any value can be used. If a task-level memory * value is specified then the container-level memory value is optional. *

            *

            * If using the Fargate launch type, this field is required and you must use one of the following values, * which determines your range of valid values for the cpu parameter: *

            *
              *
            • *

              * 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) *

              *
            • * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withMemory(String memory) { setMemory(memory); return this; } /** *

              * The Elastic Inference accelerator associated with the task. *

              * * @return The Elastic Inference accelerator associated with the task. */ public java.util.List getInferenceAccelerators() { if (inferenceAccelerators == null) { inferenceAccelerators = new com.amazonaws.internal.SdkInternalList(); } return inferenceAccelerators; } /** *

              * The Elastic Inference accelerator associated with the task. *

              * * @param inferenceAccelerators * The Elastic Inference accelerator associated with the task. */ public void setInferenceAccelerators(java.util.Collection inferenceAccelerators) { if (inferenceAccelerators == null) { this.inferenceAccelerators = null; return; } this.inferenceAccelerators = new com.amazonaws.internal.SdkInternalList(inferenceAccelerators); } /** *

              * The Elastic Inference accelerator associated with 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 accelerator associated with the task. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withInferenceAccelerators(InferenceAccelerator... inferenceAccelerators) { if (this.inferenceAccelerators == null) { setInferenceAccelerators(new com.amazonaws.internal.SdkInternalList(inferenceAccelerators.length)); } for (InferenceAccelerator ele : inferenceAccelerators) { this.inferenceAccelerators.add(ele); } return this; } /** *

              * The Elastic Inference accelerator associated with the task. *

              * * @param inferenceAccelerators * The Elastic Inference accelerator associated with the task. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withInferenceAccelerators(java.util.Collection inferenceAccelerators) { setInferenceAccelerators(inferenceAccelerators); 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 using the Fargate launch type. *

              *
              * * @param 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 using the Fargate launch type. *

              * @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 using the Fargate launch type. *

              *
              * * @return 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 using the Fargate launch type. *

              * @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 using the Fargate launch type. *

              *
              * * @param 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 using the Fargate launch type. *

              * @return Returns a reference to this object so that method calls can be chained together. * @see PidMode */ public TaskDefinition 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 using the Fargate launch type. *

              *
              * * @param 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 using the Fargate launch type. *

              * @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 using the Fargate launch type. *

              *
              * * @param 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 using the Fargate launch type. *

              * @return Returns a reference to this object so that method calls can be chained together. * @see PidMode */ public TaskDefinition 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 using the Fargate launch type. *

              *
              * * @param 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 using the Fargate launch type. *

              * @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 using the Fargate launch type. *

              *
              * * @return 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 using the Fargate launch type. *

              * @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 using the Fargate launch type. *

              *
              * * @param 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 using the Fargate launch type. *

              * @return Returns a reference to this object so that method calls can be chained together. * @see IpcMode */ public TaskDefinition 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 using the Fargate launch type. *

              *
              * * @param 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 using the Fargate launch type. *

              * @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 using the Fargate launch type. *

              *
              * * @param 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 using the Fargate launch type. *

              * @return Returns a reference to this object so that method calls can be chained together. * @see IpcMode */ public TaskDefinition withIpcMode(IpcMode ipcMode) { this.ipcMode = ipcMode.toString(); return this; } /** *

              * The configuration details for the App Mesh proxy. *

              *

              * Your Amazon ECS 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 enable a proxy configuration. If your container instances are * launched from the Amazon ECS-optimized AMI version 20190301 or later, then they contain the required * versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized * Linux AMI in the Amazon Elastic Container Service Developer Guide. *

              * * @param proxyConfiguration * The configuration details for the App Mesh proxy.

              *

              * Your Amazon ECS 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 enable a proxy configuration. If your container * instances are launched from the Amazon ECS-optimized AMI version 20190301 or later, then they * contain the required versions of the container agent and ecs-init. For more information, see * Amazon * ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide. */ public void setProxyConfiguration(ProxyConfiguration proxyConfiguration) { this.proxyConfiguration = proxyConfiguration; } /** *

              * The configuration details for the App Mesh proxy. *

              *

              * Your Amazon ECS 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 enable a proxy configuration. If your container instances are * launched from the Amazon ECS-optimized AMI version 20190301 or later, then they contain the required * versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized * Linux AMI in the Amazon Elastic Container Service Developer Guide. *

              * * @return The configuration details for the App Mesh proxy.

              *

              * Your Amazon ECS 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 enable a proxy configuration. If your container * instances are launched from the Amazon ECS-optimized AMI version 20190301 or later, then * they contain the required versions of the container agent and ecs-init. For more * information, see Amazon * ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide. */ public ProxyConfiguration getProxyConfiguration() { return this.proxyConfiguration; } /** *

              * The configuration details for the App Mesh proxy. *

              *

              * Your Amazon ECS 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 enable a proxy configuration. If your container instances are * launched from the Amazon ECS-optimized AMI version 20190301 or later, then they contain the required * versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized * Linux AMI in the Amazon Elastic Container Service Developer Guide. *

              * * @param proxyConfiguration * The configuration details for the App Mesh proxy.

              *

              * Your Amazon ECS 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 enable a proxy configuration. If your container * instances are launched from the Amazon ECS-optimized AMI version 20190301 or later, then they * contain the required versions of the container agent and ecs-init. For more information, see * Amazon * ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public TaskDefinition withProxyConfiguration(ProxyConfiguration proxyConfiguration) { setProxyConfiguration(proxyConfiguration); 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 (getTaskDefinitionArn() != null) sb.append("TaskDefinitionArn: ").append(getTaskDefinitionArn()).append(","); if (getContainerDefinitions() != null) sb.append("ContainerDefinitions: ").append(getContainerDefinitions()).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 (getRevision() != null) sb.append("Revision: ").append(getRevision()).append(","); if (getVolumes() != null) sb.append("Volumes: ").append(getVolumes()).append(","); if (getStatus() != null) sb.append("Status: ").append(getStatus()).append(","); if (getRequiresAttributes() != null) sb.append("RequiresAttributes: ").append(getRequiresAttributes()).append(","); if (getPlacementConstraints() != null) sb.append("PlacementConstraints: ").append(getPlacementConstraints()).append(","); if (getCompatibilities() != null) sb.append("Compatibilities: ").append(getCompatibilities()).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 (getInferenceAccelerators() != null) sb.append("InferenceAccelerators: ").append(getInferenceAccelerators()).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()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof TaskDefinition == false) return false; TaskDefinition other = (TaskDefinition) obj; if (other.getTaskDefinitionArn() == null ^ this.getTaskDefinitionArn() == null) return false; if (other.getTaskDefinitionArn() != null && other.getTaskDefinitionArn().equals(this.getTaskDefinitionArn()) == 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.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.getRevision() == null ^ this.getRevision() == null) return false; if (other.getRevision() != null && other.getRevision().equals(this.getRevision()) == 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.getStatus() == null ^ this.getStatus() == null) return false; if (other.getStatus() != null && other.getStatus().equals(this.getStatus()) == false) return false; if (other.getRequiresAttributes() == null ^ this.getRequiresAttributes() == null) return false; if (other.getRequiresAttributes() != null && other.getRequiresAttributes().equals(this.getRequiresAttributes()) == 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.getCompatibilities() == null ^ this.getCompatibilities() == null) return false; if (other.getCompatibilities() != null && other.getCompatibilities().equals(this.getCompatibilities()) == 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.getInferenceAccelerators() == null ^ this.getInferenceAccelerators() == null) return false; if (other.getInferenceAccelerators() != null && other.getInferenceAccelerators().equals(this.getInferenceAccelerators()) == 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; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getTaskDefinitionArn() == null) ? 0 : getTaskDefinitionArn().hashCode()); hashCode = prime * hashCode + ((getContainerDefinitions() == null) ? 0 : getContainerDefinitions().hashCode()); 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 + ((getRevision() == null) ? 0 : getRevision().hashCode()); hashCode = prime * hashCode + ((getVolumes() == null) ? 0 : getVolumes().hashCode()); hashCode = prime * hashCode + ((getStatus() == null) ? 0 : getStatus().hashCode()); hashCode = prime * hashCode + ((getRequiresAttributes() == null) ? 0 : getRequiresAttributes().hashCode()); hashCode = prime * hashCode + ((getPlacementConstraints() == null) ? 0 : getPlacementConstraints().hashCode()); hashCode = prime * hashCode + ((getCompatibilities() == null) ? 0 : getCompatibilities().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 + ((getInferenceAccelerators() == null) ? 0 : getInferenceAccelerators().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()); return hashCode; } @Override public TaskDefinition clone() { try { return (TaskDefinition) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.ecs.model.transform.TaskDefinitionMarshaller.getInstance().marshall(this, protocolMarshaller); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy