/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

Details about a task definition. A task definition describes the container * and volume definitions of an Amazon Elastic Container Service * task.

See Also:

AWS * API Reference

*/ class AwsEcsTaskDefinitionDetails { public: AWS_SECURITYHUB_API AwsEcsTaskDefinitionDetails(); AWS_SECURITYHUB_API AwsEcsTaskDefinitionDetails(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API AwsEcsTaskDefinitionDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The container definitions that describe the containers that make up the * task.

*/ inline const Aws::Vector& GetContainerDefinitions() const{ return m_containerDefinitions; } /** *

The container definitions that describe the containers that make up the * task.

*/ inline bool ContainerDefinitionsHasBeenSet() const { return m_containerDefinitionsHasBeenSet; } /** *

The container definitions that describe the containers that make up the * task.

*/ inline void SetContainerDefinitions(const Aws::Vector& value) { m_containerDefinitionsHasBeenSet = true; m_containerDefinitions = value; } /** *

The container definitions that describe the containers that make up the * task.

*/ inline void SetContainerDefinitions(Aws::Vector&& value) { m_containerDefinitionsHasBeenSet = true; m_containerDefinitions = std::move(value); } /** *

The container definitions that describe the containers that make up the * task.

*/ inline AwsEcsTaskDefinitionDetails& WithContainerDefinitions(const Aws::Vector& value) { SetContainerDefinitions(value); return *this;} /** *

The container definitions that describe the containers that make up the * task.

*/ inline AwsEcsTaskDefinitionDetails& WithContainerDefinitions(Aws::Vector&& value) { SetContainerDefinitions(std::move(value)); return *this;} /** *

The container definitions that describe the containers that make up the * task.

*/ inline AwsEcsTaskDefinitionDetails& AddContainerDefinitions(const AwsEcsTaskDefinitionContainerDefinitionsDetails& value) { m_containerDefinitionsHasBeenSet = true; m_containerDefinitions.push_back(value); return *this; } /** *

The container definitions that describe the containers that make up the * task.

*/ inline AwsEcsTaskDefinitionDetails& AddContainerDefinitions(AwsEcsTaskDefinitionContainerDefinitionsDetails&& value) { m_containerDefinitionsHasBeenSet = true; m_containerDefinitions.push_back(std::move(value)); return *this; } /** *

The number of CPU units used by the task.Valid values are as follows:

*
  • 256 (.25 vCPU)

  • 512 (.5 * vCPU)

  • 1024 (1 vCPU)

  • * 2048 (2 vCPU)

  • 4096 (4 vCPU)

    *
*/ inline const Aws::String& GetCpu() const{ return m_cpu; } /** *

The number of CPU units used by the task.Valid values are as follows:

*
  • 256 (.25 vCPU)

  • 512 (.5 * vCPU)

  • 1024 (1 vCPU)

  • * 2048 (2 vCPU)

  • 4096 (4 vCPU)

    *
*/ inline bool CpuHasBeenSet() const { return m_cpuHasBeenSet; } /** *

The number of CPU units used by the task.Valid values are as follows:

*
  • 256 (.25 vCPU)

  • 512 (.5 * vCPU)

  • 1024 (1 vCPU)

  • * 2048 (2 vCPU)

  • 4096 (4 vCPU)

    *
*/ inline void SetCpu(const Aws::String& value) { m_cpuHasBeenSet = true; m_cpu = value; } /** *

The number of CPU units used by the task.Valid values are as follows:

*
  • 256 (.25 vCPU)

  • 512 (.5 * vCPU)

  • 1024 (1 vCPU)

  • * 2048 (2 vCPU)

  • 4096 (4 vCPU)

    *
*/ inline void SetCpu(Aws::String&& value) { m_cpuHasBeenSet = true; m_cpu = std::move(value); } /** *

The number of CPU units used by the task.Valid values are as follows:

*
  • 256 (.25 vCPU)

  • 512 (.5 * vCPU)

  • 1024 (1 vCPU)

  • * 2048 (2 vCPU)

  • 4096 (4 vCPU)

    *
*/ inline void SetCpu(const char* value) { m_cpuHasBeenSet = true; m_cpu.assign(value); } /** *

The number of CPU units used by the task.Valid values are as follows:

*
  • 256 (.25 vCPU)

  • 512 (.5 * vCPU)

  • 1024 (1 vCPU)

  • * 2048 (2 vCPU)

  • 4096 (4 vCPU)

    *
*/ inline AwsEcsTaskDefinitionDetails& WithCpu(const Aws::String& value) { SetCpu(value); return *this;} /** *

The number of CPU units used by the task.Valid values are as follows:

*
  • 256 (.25 vCPU)

  • 512 (.5 * vCPU)

  • 1024 (1 vCPU)

  • * 2048 (2 vCPU)

  • 4096 (4 vCPU)

    *
*/ inline AwsEcsTaskDefinitionDetails& WithCpu(Aws::String&& value) { SetCpu(std::move(value)); return *this;} /** *

The number of CPU units used by the task.Valid values are as follows:

*
  • 256 (.25 vCPU)

  • 512 (.5 * vCPU)

  • 1024 (1 vCPU)

  • * 2048 (2 vCPU)

  • 4096 (4 vCPU)

    *
*/ inline AwsEcsTaskDefinitionDetails& WithCpu(const char* value) { SetCpu(value); return *this;} /** *

The ARN of the task execution role that grants the container agent permission * to make API calls on behalf of the container user.

*/ inline const Aws::String& GetExecutionRoleArn() const{ return m_executionRoleArn; } /** *

The ARN of the task execution role that grants the container agent permission * to make API calls on behalf of the container user.

*/ inline bool ExecutionRoleArnHasBeenSet() const { return m_executionRoleArnHasBeenSet; } /** *

The ARN of the task execution role that grants the container agent permission * to make API calls on behalf of the container user.

*/ inline void SetExecutionRoleArn(const Aws::String& value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn = value; } /** *

The ARN of the task execution role that grants the container agent permission * to make API calls on behalf of the container user.

*/ inline void SetExecutionRoleArn(Aws::String&& value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn = std::move(value); } /** *

The ARN of the task execution role that grants the container agent permission * to make API calls on behalf of the container user.

*/ inline void SetExecutionRoleArn(const char* value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn.assign(value); } /** *

The ARN of the task execution role that grants the container agent permission * to make API calls on behalf of the container user.

*/ inline AwsEcsTaskDefinitionDetails& WithExecutionRoleArn(const Aws::String& value) { SetExecutionRoleArn(value); return *this;} /** *

The ARN of the task execution role that grants the container agent permission * to make API calls on behalf of the container user.

*/ inline AwsEcsTaskDefinitionDetails& WithExecutionRoleArn(Aws::String&& value) { SetExecutionRoleArn(std::move(value)); return *this;} /** *

The ARN of the task execution role that grants the container agent permission * to make API calls on behalf of the container user.

*/ inline AwsEcsTaskDefinitionDetails& WithExecutionRoleArn(const char* value) { SetExecutionRoleArn(value); return *this;} /** *

The name of a family that this task definition is registered to.

*/ inline const Aws::String& GetFamily() const{ return m_family; } /** *

The name of a family that this task definition is registered to.

*/ inline bool FamilyHasBeenSet() const { return m_familyHasBeenSet; } /** *

The name of a family that this task definition is registered to.

*/ inline void SetFamily(const Aws::String& value) { m_familyHasBeenSet = true; m_family = value; } /** *

The name of a family that this task definition is registered to.

*/ inline void SetFamily(Aws::String&& value) { m_familyHasBeenSet = true; m_family = std::move(value); } /** *

The name of a family that this task definition is registered to.

*/ inline void SetFamily(const char* value) { m_familyHasBeenSet = true; m_family.assign(value); } /** *

The name of a family that this task definition is registered to.

*/ inline AwsEcsTaskDefinitionDetails& WithFamily(const Aws::String& value) { SetFamily(value); return *this;} /** *

The name of a family that this task definition is registered to.

*/ inline AwsEcsTaskDefinitionDetails& WithFamily(Aws::String&& value) { SetFamily(std::move(value)); return *this;} /** *

The name of a family that this task definition is registered to.

*/ inline AwsEcsTaskDefinitionDetails& WithFamily(const char* value) { SetFamily(value); return *this;} /** *

The Elastic Inference accelerators to use for the containers in the task.

*/ inline const Aws::Vector& GetInferenceAccelerators() const{ return m_inferenceAccelerators; } /** *

The Elastic Inference accelerators to use for the containers in the task.

*/ inline bool InferenceAcceleratorsHasBeenSet() const { return m_inferenceAcceleratorsHasBeenSet; } /** *

The Elastic Inference accelerators to use for the containers in the task.

*/ inline void SetInferenceAccelerators(const Aws::Vector& value) { m_inferenceAcceleratorsHasBeenSet = true; m_inferenceAccelerators = value; } /** *

The Elastic Inference accelerators to use for the containers in the task.

*/ inline void SetInferenceAccelerators(Aws::Vector&& value) { m_inferenceAcceleratorsHasBeenSet = true; m_inferenceAccelerators = std::move(value); } /** *

The Elastic Inference accelerators to use for the containers in the task.

*/ inline AwsEcsTaskDefinitionDetails& WithInferenceAccelerators(const Aws::Vector& value) { SetInferenceAccelerators(value); return *this;} /** *

The Elastic Inference accelerators to use for the containers in the task.

*/ inline AwsEcsTaskDefinitionDetails& WithInferenceAccelerators(Aws::Vector&& value) { SetInferenceAccelerators(std::move(value)); return *this;} /** *

The Elastic Inference accelerators to use for the containers in the task.

*/ inline AwsEcsTaskDefinitionDetails& AddInferenceAccelerators(const AwsEcsTaskDefinitionInferenceAcceleratorsDetails& value) { m_inferenceAcceleratorsHasBeenSet = true; m_inferenceAccelerators.push_back(value); return *this; } /** *

The Elastic Inference accelerators to use for the containers in the task.

*/ inline AwsEcsTaskDefinitionDetails& AddInferenceAccelerators(AwsEcsTaskDefinitionInferenceAcceleratorsDetails&& value) { m_inferenceAcceleratorsHasBeenSet = true; m_inferenceAccelerators.push_back(std::move(value)); return *this; } /** *

The inter-process communication (IPC) resource namespace to use for the * containers in the task. Valid values are as follows:

  • * host

  • none

  • * task

*/ inline const Aws::String& GetIpcMode() const{ return m_ipcMode; } /** *

The inter-process communication (IPC) resource namespace to use for the * containers in the task. Valid values are as follows:

  • * host

  • none

  • * task

*/ inline bool IpcModeHasBeenSet() const { return m_ipcModeHasBeenSet; } /** *

The inter-process communication (IPC) resource namespace to use for the * containers in the task. Valid values are as follows:

  • * host

  • none

  • * task

*/ inline void SetIpcMode(const Aws::String& value) { m_ipcModeHasBeenSet = true; m_ipcMode = value; } /** *

The inter-process communication (IPC) resource namespace to use for the * containers in the task. Valid values are as follows:

  • * host

  • none

  • * task

*/ inline void SetIpcMode(Aws::String&& value) { m_ipcModeHasBeenSet = true; m_ipcMode = std::move(value); } /** *

The inter-process communication (IPC) resource namespace to use for the * containers in the task. Valid values are as follows:

  • * host

  • none

  • * task

*/ inline void SetIpcMode(const char* value) { m_ipcModeHasBeenSet = true; m_ipcMode.assign(value); } /** *

The inter-process communication (IPC) resource namespace to use for the * containers in the task. Valid values are as follows:

  • * host

  • none

  • * task

*/ inline AwsEcsTaskDefinitionDetails& WithIpcMode(const Aws::String& value) { SetIpcMode(value); return *this;} /** *

The inter-process communication (IPC) resource namespace to use for the * containers in the task. Valid values are as follows:

  • * host

  • none

  • * task

*/ inline AwsEcsTaskDefinitionDetails& WithIpcMode(Aws::String&& value) { SetIpcMode(std::move(value)); return *this;} /** *

The inter-process communication (IPC) resource namespace to use for the * containers in the task. Valid values are as follows:

  • * host

  • none

  • * task

*/ inline AwsEcsTaskDefinitionDetails& WithIpcMode(const char* value) { SetIpcMode(value); return *this;} /** *

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

For tasks that are * hosted on Amazon EC2, you can provide a task-level memory value or a * container-level memory value. For tasks that are hosted on Fargate, you must use * one of the specified * values in the Amazon Elastic Container Service Developer Guide * , which determines your range of supported values for the Cpu * and Memory parameters.

*/ inline const Aws::String& GetMemory() const{ return m_memory; } /** *

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

For tasks that are * hosted on Amazon EC2, you can provide a task-level memory value or a * container-level memory value. For tasks that are hosted on Fargate, you must use * one of the specified * values in the Amazon Elastic Container Service Developer Guide * , which determines your range of supported values for the Cpu * and Memory parameters.

*/ inline bool MemoryHasBeenSet() const { return m_memoryHasBeenSet; } /** *

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

For tasks that are * hosted on Amazon EC2, you can provide a task-level memory value or a * container-level memory value. For tasks that are hosted on Fargate, you must use * one of the specified * values in the Amazon Elastic Container Service Developer Guide * , which determines your range of supported values for the Cpu * and Memory parameters.

*/ inline void SetMemory(const Aws::String& value) { m_memoryHasBeenSet = true; m_memory = value; } /** *

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

For tasks that are * hosted on Amazon EC2, you can provide a task-level memory value or a * container-level memory value. For tasks that are hosted on Fargate, you must use * one of the specified * values in the Amazon Elastic Container Service Developer Guide * , which determines your range of supported values for the Cpu * and Memory parameters.

*/ inline void SetMemory(Aws::String&& value) { m_memoryHasBeenSet = true; m_memory = std::move(value); } /** *

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

For tasks that are * hosted on Amazon EC2, you can provide a task-level memory value or a * container-level memory value. For tasks that are hosted on Fargate, you must use * one of the specified * values in the Amazon Elastic Container Service Developer Guide * , which determines your range of supported values for the Cpu * and Memory parameters.

*/ inline void SetMemory(const char* value) { m_memoryHasBeenSet = true; m_memory.assign(value); } /** *

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

For tasks that are * hosted on Amazon EC2, you can provide a task-level memory value or a * container-level memory value. For tasks that are hosted on Fargate, you must use * one of the specified * values in the Amazon Elastic Container Service Developer Guide * , which determines your range of supported values for the Cpu * and Memory parameters.

*/ inline AwsEcsTaskDefinitionDetails& WithMemory(const Aws::String& value) { SetMemory(value); return *this;} /** *

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

For tasks that are * hosted on Amazon EC2, you can provide a task-level memory value or a * container-level memory value. For tasks that are hosted on Fargate, you must use * one of the specified * values in the Amazon Elastic Container Service Developer Guide * , which determines your range of supported values for the Cpu * and Memory parameters.

*/ inline AwsEcsTaskDefinitionDetails& WithMemory(Aws::String&& value) { SetMemory(std::move(value)); return *this;} /** *

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

For tasks that are * hosted on Amazon EC2, you can provide a task-level memory value or a * container-level memory value. For tasks that are hosted on Fargate, you must use * one of the specified * values in the Amazon Elastic Container Service Developer Guide * , which determines your range of supported values for the Cpu * and Memory parameters.

*/ inline AwsEcsTaskDefinitionDetails& WithMemory(const char* value) { SetMemory(value); return *this;} /** *

The Docker networking mode to use for the containers in the task. Valid * values are as follows:

  • awsvpc

  • * bridge

  • host

  • * none

*/ inline const Aws::String& GetNetworkMode() const{ return m_networkMode; } /** *

The Docker networking mode to use for the containers in the task. Valid * values are as follows:

  • awsvpc

  • * bridge

  • host

  • * none

*/ inline bool NetworkModeHasBeenSet() const { return m_networkModeHasBeenSet; } /** *

The Docker networking mode to use for the containers in the task. Valid * values are as follows:

  • awsvpc

  • * bridge

  • host

  • * none

*/ inline void SetNetworkMode(const Aws::String& value) { m_networkModeHasBeenSet = true; m_networkMode = value; } /** *

The Docker networking mode to use for the containers in the task. Valid * values are as follows:

  • awsvpc

  • * bridge

  • host

  • * none

*/ inline void SetNetworkMode(Aws::String&& value) { m_networkModeHasBeenSet = true; m_networkMode = std::move(value); } /** *

The Docker networking mode to use for the containers in the task. Valid * values are as follows:

  • awsvpc

  • * bridge

  • host

  • * none

*/ inline void SetNetworkMode(const char* value) { m_networkModeHasBeenSet = true; m_networkMode.assign(value); } /** *

The Docker networking mode to use for the containers in the task. Valid * values are as follows:

  • awsvpc

  • * bridge

  • host

  • * none

*/ inline AwsEcsTaskDefinitionDetails& WithNetworkMode(const Aws::String& value) { SetNetworkMode(value); return *this;} /** *

The Docker networking mode to use for the containers in the task. Valid * values are as follows:

  • awsvpc

  • * bridge

  • host

  • * none

*/ inline AwsEcsTaskDefinitionDetails& WithNetworkMode(Aws::String&& value) { SetNetworkMode(std::move(value)); return *this;} /** *

The Docker networking mode to use for the containers in the task. Valid * values are as follows:

  • awsvpc

  • * bridge

  • host

  • * none

*/ inline AwsEcsTaskDefinitionDetails& WithNetworkMode(const char* value) { SetNetworkMode(value); return *this;} /** *

The process namespace to use for the containers in the task. Valid values are * host or task.

*/ inline const Aws::String& GetPidMode() const{ return m_pidMode; } /** *

The process namespace to use for the containers in the task. Valid values are * host or task.

*/ inline bool PidModeHasBeenSet() const { return m_pidModeHasBeenSet; } /** *

The process namespace to use for the containers in the task. Valid values are * host or task.

*/ inline void SetPidMode(const Aws::String& value) { m_pidModeHasBeenSet = true; m_pidMode = value; } /** *

The process namespace to use for the containers in the task. Valid values are * host or task.

*/ inline void SetPidMode(Aws::String&& value) { m_pidModeHasBeenSet = true; m_pidMode = std::move(value); } /** *

The process namespace to use for the containers in the task. Valid values are * host or task.

*/ inline void SetPidMode(const char* value) { m_pidModeHasBeenSet = true; m_pidMode.assign(value); } /** *

The process namespace to use for the containers in the task. Valid values are * host or task.

*/ inline AwsEcsTaskDefinitionDetails& WithPidMode(const Aws::String& value) { SetPidMode(value); return *this;} /** *

The process namespace to use for the containers in the task. Valid values are * host or task.

*/ inline AwsEcsTaskDefinitionDetails& WithPidMode(Aws::String&& value) { SetPidMode(std::move(value)); return *this;} /** *

The process namespace to use for the containers in the task. Valid values are * host or task.

*/ inline AwsEcsTaskDefinitionDetails& WithPidMode(const char* value) { SetPidMode(value); return *this;} /** *

The placement constraint objects to use for tasks.

*/ inline const Aws::Vector& GetPlacementConstraints() const{ return m_placementConstraints; } /** *

The placement constraint objects to use for tasks.

*/ inline bool PlacementConstraintsHasBeenSet() const { return m_placementConstraintsHasBeenSet; } /** *

The placement constraint objects to use for tasks.

*/ inline void SetPlacementConstraints(const Aws::Vector& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints = value; } /** *

The placement constraint objects to use for tasks.

*/ inline void SetPlacementConstraints(Aws::Vector&& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints = std::move(value); } /** *

The placement constraint objects to use for tasks.

*/ inline AwsEcsTaskDefinitionDetails& WithPlacementConstraints(const Aws::Vector& value) { SetPlacementConstraints(value); return *this;} /** *

The placement constraint objects to use for tasks.

*/ inline AwsEcsTaskDefinitionDetails& WithPlacementConstraints(Aws::Vector&& value) { SetPlacementConstraints(std::move(value)); return *this;} /** *

The placement constraint objects to use for tasks.

*/ inline AwsEcsTaskDefinitionDetails& AddPlacementConstraints(const AwsEcsTaskDefinitionPlacementConstraintsDetails& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints.push_back(value); return *this; } /** *

The placement constraint objects to use for tasks.

*/ inline AwsEcsTaskDefinitionDetails& AddPlacementConstraints(AwsEcsTaskDefinitionPlacementConstraintsDetails&& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints.push_back(std::move(value)); return *this; } /** *

The configuration details for the App Mesh proxy.

*/ inline const AwsEcsTaskDefinitionProxyConfigurationDetails& GetProxyConfiguration() const{ return m_proxyConfiguration; } /** *

The configuration details for the App Mesh proxy.

*/ inline bool ProxyConfigurationHasBeenSet() const { return m_proxyConfigurationHasBeenSet; } /** *

The configuration details for the App Mesh proxy.

*/ inline void SetProxyConfiguration(const AwsEcsTaskDefinitionProxyConfigurationDetails& value) { m_proxyConfigurationHasBeenSet = true; m_proxyConfiguration = value; } /** *

The configuration details for the App Mesh proxy.

*/ inline void SetProxyConfiguration(AwsEcsTaskDefinitionProxyConfigurationDetails&& value) { m_proxyConfigurationHasBeenSet = true; m_proxyConfiguration = std::move(value); } /** *

The configuration details for the App Mesh proxy.

*/ inline AwsEcsTaskDefinitionDetails& WithProxyConfiguration(const AwsEcsTaskDefinitionProxyConfigurationDetails& value) { SetProxyConfiguration(value); return *this;} /** *

The configuration details for the App Mesh proxy.

*/ inline AwsEcsTaskDefinitionDetails& WithProxyConfiguration(AwsEcsTaskDefinitionProxyConfigurationDetails&& value) { SetProxyConfiguration(std::move(value)); return *this;} /** *

The task launch types that the task definition was validated against.

*/ inline const Aws::Vector& GetRequiresCompatibilities() const{ return m_requiresCompatibilities; } /** *

The task launch types that the task definition was validated against.

*/ inline bool RequiresCompatibilitiesHasBeenSet() const { return m_requiresCompatibilitiesHasBeenSet; } /** *

The task launch types that the task definition was validated against.

*/ inline void SetRequiresCompatibilities(const Aws::Vector& value) { m_requiresCompatibilitiesHasBeenSet = true; m_requiresCompatibilities = value; } /** *

The task launch types that the task definition was validated against.

*/ inline void SetRequiresCompatibilities(Aws::Vector&& value) { m_requiresCompatibilitiesHasBeenSet = true; m_requiresCompatibilities = std::move(value); } /** *

The task launch types that the task definition was validated against.

*/ inline AwsEcsTaskDefinitionDetails& WithRequiresCompatibilities(const Aws::Vector& value) { SetRequiresCompatibilities(value); return *this;} /** *

The task launch types that the task definition was validated against.

*/ inline AwsEcsTaskDefinitionDetails& WithRequiresCompatibilities(Aws::Vector&& value) { SetRequiresCompatibilities(std::move(value)); return *this;} /** *

The task launch types that the task definition was validated against.

*/ inline AwsEcsTaskDefinitionDetails& AddRequiresCompatibilities(const Aws::String& value) { m_requiresCompatibilitiesHasBeenSet = true; m_requiresCompatibilities.push_back(value); return *this; } /** *

The task launch types that the task definition was validated against.

*/ inline AwsEcsTaskDefinitionDetails& AddRequiresCompatibilities(Aws::String&& value) { m_requiresCompatibilitiesHasBeenSet = true; m_requiresCompatibilities.push_back(std::move(value)); return *this; } /** *

The task launch types that the task definition was validated against.

*/ inline AwsEcsTaskDefinitionDetails& AddRequiresCompatibilities(const char* value) { m_requiresCompatibilitiesHasBeenSet = true; m_requiresCompatibilities.push_back(value); return *this; } /** *

The short name or ARN of the IAM role that grants containers in the task * permission to call Amazon Web Services API operations on your behalf.

*/ inline const Aws::String& GetTaskRoleArn() const{ return m_taskRoleArn; } /** *

The short name or ARN of the IAM role that grants containers in the task * permission to call Amazon Web Services API operations on your behalf.

*/ inline bool TaskRoleArnHasBeenSet() const { return m_taskRoleArnHasBeenSet; } /** *

The short name or ARN of the IAM role that grants containers in the task * permission to call Amazon Web Services API operations on your behalf.

*/ inline void SetTaskRoleArn(const Aws::String& value) { m_taskRoleArnHasBeenSet = true; m_taskRoleArn = value; } /** *

The short name or ARN of the IAM role that grants containers in the task * permission to call Amazon Web Services API operations on your behalf.

*/ inline void SetTaskRoleArn(Aws::String&& value) { m_taskRoleArnHasBeenSet = true; m_taskRoleArn = std::move(value); } /** *

The short name or ARN of the IAM role that grants containers in the task * permission to call Amazon Web Services API operations on your behalf.

*/ inline void SetTaskRoleArn(const char* value) { m_taskRoleArnHasBeenSet = true; m_taskRoleArn.assign(value); } /** *

The short name or ARN of the IAM role that grants containers in the task * permission to call Amazon Web Services API operations on your behalf.

*/ inline AwsEcsTaskDefinitionDetails& WithTaskRoleArn(const Aws::String& value) { SetTaskRoleArn(value); return *this;} /** *

The short name or ARN of the IAM role that grants containers in the task * permission to call Amazon Web Services API operations on your behalf.

*/ inline AwsEcsTaskDefinitionDetails& WithTaskRoleArn(Aws::String&& value) { SetTaskRoleArn(std::move(value)); return *this;} /** *

The short name or ARN of the IAM role that grants containers in the task * permission to call Amazon Web Services API operations on your behalf.

*/ inline AwsEcsTaskDefinitionDetails& WithTaskRoleArn(const char* value) { SetTaskRoleArn(value); return *this;} /** *

The data volume definitions for the task.

*/ inline const Aws::Vector& GetVolumes() const{ return m_volumes; } /** *

The data volume definitions for the task.

*/ inline bool VolumesHasBeenSet() const { return m_volumesHasBeenSet; } /** *

The data volume definitions for the task.

*/ inline void SetVolumes(const Aws::Vector& value) { m_volumesHasBeenSet = true; m_volumes = value; } /** *

The data volume definitions for the task.

*/ inline void SetVolumes(Aws::Vector&& value) { m_volumesHasBeenSet = true; m_volumes = std::move(value); } /** *

The data volume definitions for the task.

*/ inline AwsEcsTaskDefinitionDetails& WithVolumes(const Aws::Vector& value) { SetVolumes(value); return *this;} /** *

The data volume definitions for the task.

*/ inline AwsEcsTaskDefinitionDetails& WithVolumes(Aws::Vector&& value) { SetVolumes(std::move(value)); return *this;} /** *

The data volume definitions for the task.

*/ inline AwsEcsTaskDefinitionDetails& AddVolumes(const AwsEcsTaskDefinitionVolumesDetails& value) { m_volumesHasBeenSet = true; m_volumes.push_back(value); return *this; } /** *

The data volume definitions for the task.

*/ inline AwsEcsTaskDefinitionDetails& AddVolumes(AwsEcsTaskDefinitionVolumesDetails&& value) { m_volumesHasBeenSet = true; m_volumes.push_back(std::move(value)); return *this; } private: Aws::Vector m_containerDefinitions; bool m_containerDefinitionsHasBeenSet = false; Aws::String m_cpu; bool m_cpuHasBeenSet = false; Aws::String m_executionRoleArn; bool m_executionRoleArnHasBeenSet = false; Aws::String m_family; bool m_familyHasBeenSet = false; Aws::Vector m_inferenceAccelerators; bool m_inferenceAcceleratorsHasBeenSet = false; Aws::String m_ipcMode; bool m_ipcModeHasBeenSet = false; Aws::String m_memory; bool m_memoryHasBeenSet = false; Aws::String m_networkMode; bool m_networkModeHasBeenSet = false; Aws::String m_pidMode; bool m_pidModeHasBeenSet = false; Aws::Vector m_placementConstraints; bool m_placementConstraintsHasBeenSet = false; AwsEcsTaskDefinitionProxyConfigurationDetails m_proxyConfiguration; bool m_proxyConfigurationHasBeenSet = false; Aws::Vector m_requiresCompatibilities; bool m_requiresCompatibilitiesHasBeenSet = false; Aws::String m_taskRoleArn; bool m_taskRoleArnHasBeenSet = false; Aws::Vector m_volumes; bool m_volumesHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws