com.amazonaws.services.batch.model.EcsTaskProperties Maven / Gradle / Ivy
Show all versions of aws-java-sdk-batch Show documentation
/*
* Copyright 2019-2024 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.batch.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
*
* The properties for a task definition that describes the container and volume definitions of an Amazon ECS 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 EcsTaskProperties implements Serializable, Cloneable, StructuredPojo {
/**
*
* This object is a list of containers.
*
*/
private java.util.List containers;
/**
*
* The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of
* ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.
*
*/
private EphemeralStorage ephemeralStorage;
/**
*
* The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate
* resources, you must provide an execution role. For more information, see Batch execution IAM role in
* the Batch User Guide.
*
*/
private String executionRoleArn;
/**
*
* The Fargate platform version where the jobs are running. A platform version is specified only for jobs that are
* running on Fargate resources. If one isn't specified, the LATEST
platform version is used by
* default. This uses a recent, approved version of the Fargate platform for compute resources. For more
* information, see Fargate platform
* versions in the Amazon Elastic Container Service Developer Guide.
*
*/
private String platformVersion;
/**
*
* The IPC resource namespace to use for the containers in the task. The valid values are host
,
* task
, or none
.
*
*
* If host
is specified, 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, the IPC resources within the containers of a task are private, and are 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.
*
*/
private String ipcMode;
/**
*
* The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.
*
*
*
* This is object is comparable to ContainerProperties:jobRoleArn.
*
*
*/
private String taskRoleArn;
/**
*
* The process namespace to use for the containers in the task. The valid values are host
or
* task
. For example, monitoring sidecars might need pidMode
to access information about
* other containers running in the same task.
*
*
* If host
is specified, all containers within the tasks that specified the host
PID mode
* on the same container instance share the 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 each container. For more information, see PID settings in the Docker run
* reference.
*
*/
private String pidMode;
/**
*
* The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2
* resources must not specify this parameter.
*
*/
private NetworkConfiguration networkConfiguration;
/**
*
* An object that represents the compute environment architecture for Batch jobs on Fargate.
*
*/
private RuntimePlatform runtimePlatform;
/**
*
* A list of volumes that are associated with the job.
*
*/
private java.util.List volumes;
/**
*
* This object is a list of containers.
*
*
* @return This object is a list of containers.
*/
public java.util.List getContainers() {
return containers;
}
/**
*
* This object is a list of containers.
*
*
* @param containers
* This object is a list of containers.
*/
public void setContainers(java.util.Collection containers) {
if (containers == null) {
this.containers = null;
return;
}
this.containers = new java.util.ArrayList(containers);
}
/**
*
* This object is a list of containers.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setContainers(java.util.Collection)} or {@link #withContainers(java.util.Collection)} if you want to
* override the existing values.
*
*
* @param containers
* This object is a list of containers.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withContainers(TaskContainerProperties... containers) {
if (this.containers == null) {
setContainers(new java.util.ArrayList(containers.length));
}
for (TaskContainerProperties ele : containers) {
this.containers.add(ele);
}
return this;
}
/**
*
* This object is a list of containers.
*
*
* @param containers
* This object is a list of containers.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withContainers(java.util.Collection containers) {
setContainers(containers);
return this;
}
/**
*
* The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of
* ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.
*
*
* @param ephemeralStorage
* The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total
* amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.
*/
public void setEphemeralStorage(EphemeralStorage ephemeralStorage) {
this.ephemeralStorage = ephemeralStorage;
}
/**
*
* The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of
* ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.
*
*
* @return The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total
* amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.
*/
public EphemeralStorage getEphemeralStorage() {
return this.ephemeralStorage;
}
/**
*
* The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of
* ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.
*
*
* @param ephemeralStorage
* The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total
* amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withEphemeralStorage(EphemeralStorage ephemeralStorage) {
setEphemeralStorage(ephemeralStorage);
return this;
}
/**
*
* The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate
* resources, you must provide an execution role. For more information, see Batch execution IAM role in
* the Batch User Guide.
*
*
* @param executionRoleArn
* The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate
* resources, you must provide an execution role. For more information, see Batch execution IAM
* role in the Batch User Guide.
*/
public void setExecutionRoleArn(String executionRoleArn) {
this.executionRoleArn = executionRoleArn;
}
/**
*
* The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate
* resources, you must provide an execution role. For more information, see Batch execution IAM role in
* the Batch User Guide.
*
*
* @return The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate
* resources, you must provide an execution role. For more information, see Batch execution IAM
* role in the Batch User Guide.
*/
public String getExecutionRoleArn() {
return this.executionRoleArn;
}
/**
*
* The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate
* resources, you must provide an execution role. For more information, see Batch execution IAM role in
* the Batch User Guide.
*
*
* @param executionRoleArn
* The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate
* resources, you must provide an execution role. For more information, see Batch execution IAM
* role in the Batch User Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withExecutionRoleArn(String executionRoleArn) {
setExecutionRoleArn(executionRoleArn);
return this;
}
/**
*
* The Fargate platform version where the jobs are running. A platform version is specified only for jobs that are
* running on Fargate resources. If one isn't specified, the LATEST
platform version is used by
* default. This uses a recent, approved version of the Fargate platform for compute resources. For more
* information, see Fargate platform
* versions in the Amazon Elastic Container Service Developer Guide.
*
*
* @param platformVersion
* The Fargate platform version where the jobs are running. A platform version is specified only for jobs
* that are running on Fargate resources. If one isn't specified, the LATEST
platform version is
* used by default. This uses a recent, approved version of the Fargate platform for compute resources. For
* more information, see Fargate platform
* versions in the Amazon Elastic Container Service Developer Guide.
*/
public void setPlatformVersion(String platformVersion) {
this.platformVersion = platformVersion;
}
/**
*
* The Fargate platform version where the jobs are running. A platform version is specified only for jobs that are
* running on Fargate resources. If one isn't specified, the LATEST
platform version is used by
* default. This uses a recent, approved version of the Fargate platform for compute resources. For more
* information, see Fargate platform
* versions in the Amazon Elastic Container Service Developer Guide.
*
*
* @return The Fargate platform version where the jobs are running. A platform version is specified only for jobs
* that are running on Fargate resources. If one isn't specified, the LATEST
platform version
* is used by default. This uses a recent, approved version of the Fargate platform for compute resources.
* For more information, see Fargate
* platform versions in the Amazon Elastic Container Service Developer Guide.
*/
public String getPlatformVersion() {
return this.platformVersion;
}
/**
*
* The Fargate platform version where the jobs are running. A platform version is specified only for jobs that are
* running on Fargate resources. If one isn't specified, the LATEST
platform version is used by
* default. This uses a recent, approved version of the Fargate platform for compute resources. For more
* information, see Fargate platform
* versions in the Amazon Elastic Container Service Developer Guide.
*
*
* @param platformVersion
* The Fargate platform version where the jobs are running. A platform version is specified only for jobs
* that are running on Fargate resources. If one isn't specified, the LATEST
platform version is
* used by default. This uses a recent, approved version of the Fargate platform for compute resources. For
* more information, see Fargate platform
* versions in the Amazon Elastic Container Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withPlatformVersion(String platformVersion) {
setPlatformVersion(platformVersion);
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, 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, the IPC resources within the containers of a task are private, and are 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.
*
*
* @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, 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, the IPC resources within the containers of a task are private, and are
* 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.
*/
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, 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, the IPC resources within the containers of a task are private, and are 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.
*
*
* @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, 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, the IPC resources within the containers of a task are private, and are
* 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.
*/
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, 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, the IPC resources within the containers of a task are private, and are 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.
*
*
* @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, 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, the IPC resources within the containers of a task are private, and are
* 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withIpcMode(String ipcMode) {
setIpcMode(ipcMode);
return this;
}
/**
*
* The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.
*
*
*
* This is object is comparable to ContainerProperties:jobRoleArn.
*
*
*
* @param taskRoleArn
* The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.
*
* This is object is comparable to ContainerProperties:jobRoleArn.
*
*/
public void setTaskRoleArn(String taskRoleArn) {
this.taskRoleArn = taskRoleArn;
}
/**
*
* The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.
*
*
*
* This is object is comparable to ContainerProperties:jobRoleArn.
*
*
*
* @return The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.
*
* This is object is comparable to ContainerProperties:jobRoleArn.
*
*/
public String getTaskRoleArn() {
return this.taskRoleArn;
}
/**
*
* The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.
*
*
*
* This is object is comparable to ContainerProperties:jobRoleArn.
*
*
*
* @param taskRoleArn
* The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.
*
* This is object is comparable to ContainerProperties:jobRoleArn.
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withTaskRoleArn(String taskRoleArn) {
setTaskRoleArn(taskRoleArn);
return this;
}
/**
*
* The process namespace to use for the containers in the task. The valid values are host
or
* task
. For example, monitoring sidecars might need pidMode
to access information about
* other containers running in the same task.
*
*
* If host
is specified, all containers within the tasks that specified the host
PID mode
* on the same container instance share the 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 each container. For more information, see PID settings in the Docker run
* reference.
*
*
* @param pidMode
* The process namespace to use for the containers in the task. The valid values are host
or
* task
. For example, monitoring sidecars might need pidMode
to access information
* about other containers running in the same task.
*
* If host
is specified, all containers within the tasks that specified the host
* PID mode on the same container instance share the 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 each container. For more information, see
* PID settings in the Docker
* run reference.
*/
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
. For example, monitoring sidecars might need pidMode
to access information about
* other containers running in the same task.
*
*
* If host
is specified, all containers within the tasks that specified the host
PID mode
* on the same container instance share the 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 each container. For more information, see PID settings in the Docker run
* reference.
*
*
* @return The process namespace to use for the containers in the task. The valid values are host
or
* task
. For example, monitoring sidecars might need pidMode
to access information
* about other containers running in the same task.
*
* If host
is specified, all containers within the tasks that specified the host
* PID mode on the same container instance share the 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 each container. For more information,
* see PID settings in the
* Docker run reference.
*/
public String getPidMode() {
return this.pidMode;
}
/**
*
* The process namespace to use for the containers in the task. The valid values are host
or
* task
. For example, monitoring sidecars might need pidMode
to access information about
* other containers running in the same task.
*
*
* If host
is specified, all containers within the tasks that specified the host
PID mode
* on the same container instance share the 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 each container. For more information, see PID settings in the Docker run
* reference.
*
*
* @param pidMode
* The process namespace to use for the containers in the task. The valid values are host
or
* task
. For example, monitoring sidecars might need pidMode
to access information
* about other containers running in the same task.
*
* If host
is specified, all containers within the tasks that specified the host
* PID mode on the same container instance share the 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 each container. For more information, see
* PID settings in the Docker
* run reference.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withPidMode(String pidMode) {
setPidMode(pidMode);
return this;
}
/**
*
* The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2
* resources must not specify this parameter.
*
*
* @param networkConfiguration
* The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon
* EC2 resources must not specify this parameter.
*/
public void setNetworkConfiguration(NetworkConfiguration networkConfiguration) {
this.networkConfiguration = networkConfiguration;
}
/**
*
* The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2
* resources must not specify this parameter.
*
*
* @return The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon
* EC2 resources must not specify this parameter.
*/
public NetworkConfiguration getNetworkConfiguration() {
return this.networkConfiguration;
}
/**
*
* The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2
* resources must not specify this parameter.
*
*
* @param networkConfiguration
* The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon
* EC2 resources must not specify this parameter.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withNetworkConfiguration(NetworkConfiguration networkConfiguration) {
setNetworkConfiguration(networkConfiguration);
return this;
}
/**
*
* An object that represents the compute environment architecture for Batch jobs on Fargate.
*
*
* @param runtimePlatform
* An object that represents the compute environment architecture for Batch jobs on Fargate.
*/
public void setRuntimePlatform(RuntimePlatform runtimePlatform) {
this.runtimePlatform = runtimePlatform;
}
/**
*
* An object that represents the compute environment architecture for Batch jobs on Fargate.
*
*
* @return An object that represents the compute environment architecture for Batch jobs on Fargate.
*/
public RuntimePlatform getRuntimePlatform() {
return this.runtimePlatform;
}
/**
*
* An object that represents the compute environment architecture for Batch jobs on Fargate.
*
*
* @param runtimePlatform
* An object that represents the compute environment architecture for Batch jobs on Fargate.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withRuntimePlatform(RuntimePlatform runtimePlatform) {
setRuntimePlatform(runtimePlatform);
return this;
}
/**
*
* A list of volumes that are associated with the job.
*
*
* @return A list of volumes that are associated with the job.
*/
public java.util.List getVolumes() {
return volumes;
}
/**
*
* A list of volumes that are associated with the job.
*
*
* @param volumes
* A list of volumes that are associated with the job.
*/
public void setVolumes(java.util.Collection volumes) {
if (volumes == null) {
this.volumes = null;
return;
}
this.volumes = new java.util.ArrayList(volumes);
}
/**
*
* A list of volumes that are associated with the job.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setVolumes(java.util.Collection)} or {@link #withVolumes(java.util.Collection)} if you want to override
* the existing values.
*
*
* @param volumes
* A list of volumes that are associated with the job.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withVolumes(Volume... volumes) {
if (this.volumes == null) {
setVolumes(new java.util.ArrayList(volumes.length));
}
for (Volume ele : volumes) {
this.volumes.add(ele);
}
return this;
}
/**
*
* A list of volumes that are associated with the job.
*
*
* @param volumes
* A list of volumes that are associated with the job.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public EcsTaskProperties withVolumes(java.util.Collection volumes) {
setVolumes(volumes);
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 (getContainers() != null)
sb.append("Containers: ").append(getContainers()).append(",");
if (getEphemeralStorage() != null)
sb.append("EphemeralStorage: ").append(getEphemeralStorage()).append(",");
if (getExecutionRoleArn() != null)
sb.append("ExecutionRoleArn: ").append(getExecutionRoleArn()).append(",");
if (getPlatformVersion() != null)
sb.append("PlatformVersion: ").append(getPlatformVersion()).append(",");
if (getIpcMode() != null)
sb.append("IpcMode: ").append(getIpcMode()).append(",");
if (getTaskRoleArn() != null)
sb.append("TaskRoleArn: ").append(getTaskRoleArn()).append(",");
if (getPidMode() != null)
sb.append("PidMode: ").append(getPidMode()).append(",");
if (getNetworkConfiguration() != null)
sb.append("NetworkConfiguration: ").append(getNetworkConfiguration()).append(",");
if (getRuntimePlatform() != null)
sb.append("RuntimePlatform: ").append(getRuntimePlatform()).append(",");
if (getVolumes() != null)
sb.append("Volumes: ").append(getVolumes());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof EcsTaskProperties == false)
return false;
EcsTaskProperties other = (EcsTaskProperties) obj;
if (other.getContainers() == null ^ this.getContainers() == null)
return false;
if (other.getContainers() != null && other.getContainers().equals(this.getContainers()) == false)
return false;
if (other.getEphemeralStorage() == null ^ this.getEphemeralStorage() == null)
return false;
if (other.getEphemeralStorage() != null && other.getEphemeralStorage().equals(this.getEphemeralStorage()) == false)
return false;
if (other.getExecutionRoleArn() == null ^ this.getExecutionRoleArn() == null)
return false;
if (other.getExecutionRoleArn() != null && other.getExecutionRoleArn().equals(this.getExecutionRoleArn()) == false)
return false;
if (other.getPlatformVersion() == null ^ this.getPlatformVersion() == null)
return false;
if (other.getPlatformVersion() != null && other.getPlatformVersion().equals(this.getPlatformVersion()) == 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.getTaskRoleArn() == null ^ this.getTaskRoleArn() == null)
return false;
if (other.getTaskRoleArn() != null && other.getTaskRoleArn().equals(this.getTaskRoleArn()) == 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.getNetworkConfiguration() == null ^ this.getNetworkConfiguration() == null)
return false;
if (other.getNetworkConfiguration() != null && other.getNetworkConfiguration().equals(this.getNetworkConfiguration()) == false)
return false;
if (other.getRuntimePlatform() == null ^ this.getRuntimePlatform() == null)
return false;
if (other.getRuntimePlatform() != null && other.getRuntimePlatform().equals(this.getRuntimePlatform()) == false)
return false;
if (other.getVolumes() == null ^ this.getVolumes() == null)
return false;
if (other.getVolumes() != null && other.getVolumes().equals(this.getVolumes()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getContainers() == null) ? 0 : getContainers().hashCode());
hashCode = prime * hashCode + ((getEphemeralStorage() == null) ? 0 : getEphemeralStorage().hashCode());
hashCode = prime * hashCode + ((getExecutionRoleArn() == null) ? 0 : getExecutionRoleArn().hashCode());
hashCode = prime * hashCode + ((getPlatformVersion() == null) ? 0 : getPlatformVersion().hashCode());
hashCode = prime * hashCode + ((getIpcMode() == null) ? 0 : getIpcMode().hashCode());
hashCode = prime * hashCode + ((getTaskRoleArn() == null) ? 0 : getTaskRoleArn().hashCode());
hashCode = prime * hashCode + ((getPidMode() == null) ? 0 : getPidMode().hashCode());
hashCode = prime * hashCode + ((getNetworkConfiguration() == null) ? 0 : getNetworkConfiguration().hashCode());
hashCode = prime * hashCode + ((getRuntimePlatform() == null) ? 0 : getRuntimePlatform().hashCode());
hashCode = prime * hashCode + ((getVolumes() == null) ? 0 : getVolumes().hashCode());
return hashCode;
}
@Override
public EcsTaskProperties clone() {
try {
return (EcsTaskProperties) 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.batch.model.transform.EcsTaskPropertiesMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}