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

The custom parameters to be used when the target is an Amazon ECS * task.

See Also:

AWS * API Reference

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

The ARN of the task definition to use if the event target is an Amazon ECS * task.

*/ inline const Aws::String& GetTaskDefinitionArn() const{ return m_taskDefinitionArn; } /** *

The ARN of the task definition to use if the event target is an Amazon ECS * task.

*/ inline bool TaskDefinitionArnHasBeenSet() const { return m_taskDefinitionArnHasBeenSet; } /** *

The ARN of the task definition to use if the event target is an Amazon ECS * task.

*/ inline void SetTaskDefinitionArn(const Aws::String& value) { m_taskDefinitionArnHasBeenSet = true; m_taskDefinitionArn = value; } /** *

The ARN of the task definition to use if the event target is an Amazon ECS * task.

*/ inline void SetTaskDefinitionArn(Aws::String&& value) { m_taskDefinitionArnHasBeenSet = true; m_taskDefinitionArn = std::move(value); } /** *

The ARN of the task definition to use if the event target is an Amazon ECS * task.

*/ inline void SetTaskDefinitionArn(const char* value) { m_taskDefinitionArnHasBeenSet = true; m_taskDefinitionArn.assign(value); } /** *

The ARN of the task definition to use if the event target is an Amazon ECS * task.

*/ inline EcsParameters& WithTaskDefinitionArn(const Aws::String& value) { SetTaskDefinitionArn(value); return *this;} /** *

The ARN of the task definition to use if the event target is an Amazon ECS * task.

*/ inline EcsParameters& WithTaskDefinitionArn(Aws::String&& value) { SetTaskDefinitionArn(std::move(value)); return *this;} /** *

The ARN of the task definition to use if the event target is an Amazon ECS * task.

*/ inline EcsParameters& WithTaskDefinitionArn(const char* value) { SetTaskDefinitionArn(value); return *this;} /** *

The number of tasks to create based on TaskDefinition. The * default is 1.

*/ inline int GetTaskCount() const{ return m_taskCount; } /** *

The number of tasks to create based on TaskDefinition. The * default is 1.

*/ inline bool TaskCountHasBeenSet() const { return m_taskCountHasBeenSet; } /** *

The number of tasks to create based on TaskDefinition. The * default is 1.

*/ inline void SetTaskCount(int value) { m_taskCountHasBeenSet = true; m_taskCount = value; } /** *

The number of tasks to create based on TaskDefinition. The * default is 1.

*/ inline EcsParameters& WithTaskCount(int value) { SetTaskCount(value); return *this;} /** *

Specifies the launch type on which your task is running. The launch type that * you specify here must match one of the launch type (compatibilities) of the * target task. The FARGATE value is supported only in the Regions * where AWS Fargate with Amazon ECS is supported. For more information, see AWS * Fargate on Amazon ECS in the Amazon Elastic Container Service Developer * Guide.

*/ inline const LaunchType& GetLaunchType() const{ return m_launchType; } /** *

Specifies the launch type on which your task is running. The launch type that * you specify here must match one of the launch type (compatibilities) of the * target task. The FARGATE value is supported only in the Regions * where AWS Fargate with Amazon ECS is supported. For more information, see AWS * Fargate on Amazon ECS in the Amazon Elastic Container Service Developer * Guide.

*/ inline bool LaunchTypeHasBeenSet() const { return m_launchTypeHasBeenSet; } /** *

Specifies the launch type on which your task is running. The launch type that * you specify here must match one of the launch type (compatibilities) of the * target task. The FARGATE value is supported only in the Regions * where AWS Fargate with Amazon ECS is supported. For more information, see AWS * Fargate on Amazon ECS in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetLaunchType(const LaunchType& value) { m_launchTypeHasBeenSet = true; m_launchType = value; } /** *

Specifies the launch type on which your task is running. The launch type that * you specify here must match one of the launch type (compatibilities) of the * target task. The FARGATE value is supported only in the Regions * where AWS Fargate with Amazon ECS is supported. For more information, see AWS * Fargate on Amazon ECS in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetLaunchType(LaunchType&& value) { m_launchTypeHasBeenSet = true; m_launchType = std::move(value); } /** *

Specifies the launch type on which your task is running. The launch type that * you specify here must match one of the launch type (compatibilities) of the * target task. The FARGATE value is supported only in the Regions * where AWS Fargate with Amazon ECS is supported. For more information, see AWS * Fargate on Amazon ECS in the Amazon Elastic Container Service Developer * Guide.

*/ inline EcsParameters& WithLaunchType(const LaunchType& value) { SetLaunchType(value); return *this;} /** *

Specifies the launch type on which your task is running. The launch type that * you specify here must match one of the launch type (compatibilities) of the * target task. The FARGATE value is supported only in the Regions * where AWS Fargate with Amazon ECS is supported. For more information, see AWS * Fargate on Amazon ECS in the Amazon Elastic Container Service Developer * Guide.

*/ inline EcsParameters& WithLaunchType(LaunchType&& value) { SetLaunchType(std::move(value)); return *this;} /** *

Use this structure if the ECS task uses the awsvpc network mode. * This structure specifies the VPC subnets and security groups associated with the * task, and whether a public IP address is to be used. This structure is required * if LaunchType is FARGATE because the * awsvpc mode is required for Fargate tasks.

If you specify * NetworkConfiguration when the target ECS task does not use the * awsvpc network mode, the task fails.

*/ inline const NetworkConfiguration& GetNetworkConfiguration() const{ return m_networkConfiguration; } /** *

Use this structure if the ECS task uses the awsvpc network mode. * This structure specifies the VPC subnets and security groups associated with the * task, and whether a public IP address is to be used. This structure is required * if LaunchType is FARGATE because the * awsvpc mode is required for Fargate tasks.

If you specify * NetworkConfiguration when the target ECS task does not use the * awsvpc network mode, the task fails.

*/ inline bool NetworkConfigurationHasBeenSet() const { return m_networkConfigurationHasBeenSet; } /** *

Use this structure if the ECS task uses the awsvpc network mode. * This structure specifies the VPC subnets and security groups associated with the * task, and whether a public IP address is to be used. This structure is required * if LaunchType is FARGATE because the * awsvpc mode is required for Fargate tasks.

If you specify * NetworkConfiguration when the target ECS task does not use the * awsvpc network mode, the task fails.

*/ inline void SetNetworkConfiguration(const NetworkConfiguration& value) { m_networkConfigurationHasBeenSet = true; m_networkConfiguration = value; } /** *

Use this structure if the ECS task uses the awsvpc network mode. * This structure specifies the VPC subnets and security groups associated with the * task, and whether a public IP address is to be used. This structure is required * if LaunchType is FARGATE because the * awsvpc mode is required for Fargate tasks.

If you specify * NetworkConfiguration when the target ECS task does not use the * awsvpc network mode, the task fails.

*/ inline void SetNetworkConfiguration(NetworkConfiguration&& value) { m_networkConfigurationHasBeenSet = true; m_networkConfiguration = std::move(value); } /** *

Use this structure if the ECS task uses the awsvpc network mode. * This structure specifies the VPC subnets and security groups associated with the * task, and whether a public IP address is to be used. This structure is required * if LaunchType is FARGATE because the * awsvpc mode is required for Fargate tasks.

If you specify * NetworkConfiguration when the target ECS task does not use the * awsvpc network mode, the task fails.

*/ inline EcsParameters& WithNetworkConfiguration(const NetworkConfiguration& value) { SetNetworkConfiguration(value); return *this;} /** *

Use this structure if the ECS task uses the awsvpc network mode. * This structure specifies the VPC subnets and security groups associated with the * task, and whether a public IP address is to be used. This structure is required * if LaunchType is FARGATE because the * awsvpc mode is required for Fargate tasks.

If you specify * NetworkConfiguration when the target ECS task does not use the * awsvpc network mode, the task fails.

*/ inline EcsParameters& WithNetworkConfiguration(NetworkConfiguration&& value) { SetNetworkConfiguration(std::move(value)); return *this;} /** *

Specifies the platform version for the task. Specify only the numeric portion * of the platform version, such as 1.1.0.

This structure is * used only if LaunchType is FARGATE. For more * information about valid platform versions, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

*/ inline const Aws::String& GetPlatformVersion() const{ return m_platformVersion; } /** *

Specifies the platform version for the task. Specify only the numeric portion * of the platform version, such as 1.1.0.

This structure is * used only if LaunchType is FARGATE. For more * information about valid platform versions, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

*/ inline bool PlatformVersionHasBeenSet() const { return m_platformVersionHasBeenSet; } /** *

Specifies the platform version for the task. Specify only the numeric portion * of the platform version, such as 1.1.0.

This structure is * used only if LaunchType is FARGATE. For more * information about valid platform versions, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetPlatformVersion(const Aws::String& value) { m_platformVersionHasBeenSet = true; m_platformVersion = value; } /** *

Specifies the platform version for the task. Specify only the numeric portion * of the platform version, such as 1.1.0.

This structure is * used only if LaunchType is FARGATE. For more * information about valid platform versions, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetPlatformVersion(Aws::String&& value) { m_platformVersionHasBeenSet = true; m_platformVersion = std::move(value); } /** *

Specifies the platform version for the task. Specify only the numeric portion * of the platform version, such as 1.1.0.

This structure is * used only if LaunchType is FARGATE. For more * information about valid platform versions, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetPlatformVersion(const char* value) { m_platformVersionHasBeenSet = true; m_platformVersion.assign(value); } /** *

Specifies the platform version for the task. Specify only the numeric portion * of the platform version, such as 1.1.0.

This structure is * used only if LaunchType is FARGATE. For more * information about valid platform versions, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

*/ inline EcsParameters& WithPlatformVersion(const Aws::String& value) { SetPlatformVersion(value); return *this;} /** *

Specifies the platform version for the task. Specify only the numeric portion * of the platform version, such as 1.1.0.

This structure is * used only if LaunchType is FARGATE. For more * information about valid platform versions, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

*/ inline EcsParameters& WithPlatformVersion(Aws::String&& value) { SetPlatformVersion(std::move(value)); return *this;} /** *

Specifies the platform version for the task. Specify only the numeric portion * of the platform version, such as 1.1.0.

This structure is * used only if LaunchType is FARGATE. For more * information about valid platform versions, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

*/ inline EcsParameters& WithPlatformVersion(const char* value) { SetPlatformVersion(value); return *this;} /** *

Specifies an ECS task group for the task. The maximum length is 255 * characters.

*/ inline const Aws::String& GetGroup() const{ return m_group; } /** *

Specifies an ECS task group for the task. The maximum length is 255 * characters.

*/ inline bool GroupHasBeenSet() const { return m_groupHasBeenSet; } /** *

Specifies an ECS task group for the task. The maximum length is 255 * characters.

*/ inline void SetGroup(const Aws::String& value) { m_groupHasBeenSet = true; m_group = value; } /** *

Specifies an ECS task group for the task. The maximum length is 255 * characters.

*/ inline void SetGroup(Aws::String&& value) { m_groupHasBeenSet = true; m_group = std::move(value); } /** *

Specifies an ECS task group for the task. The maximum length is 255 * characters.

*/ inline void SetGroup(const char* value) { m_groupHasBeenSet = true; m_group.assign(value); } /** *

Specifies an ECS task group for the task. The maximum length is 255 * characters.

*/ inline EcsParameters& WithGroup(const Aws::String& value) { SetGroup(value); return *this;} /** *

Specifies an ECS task group for the task. The maximum length is 255 * characters.

*/ inline EcsParameters& WithGroup(Aws::String&& value) { SetGroup(std::move(value)); return *this;} /** *

Specifies an ECS task group for the task. The maximum length is 255 * characters.

*/ inline EcsParameters& WithGroup(const char* value) { SetGroup(value); return *this;} private: Aws::String m_taskDefinitionArn; bool m_taskDefinitionArnHasBeenSet; int m_taskCount; bool m_taskCountHasBeenSet; LaunchType m_launchType; bool m_launchTypeHasBeenSet; NetworkConfiguration m_networkConfiguration; bool m_networkConfigurationHasBeenSet; Aws::String m_platformVersion; bool m_platformVersionHasBeenSet; Aws::String m_group; bool m_groupHasBeenSet; }; } // namespace Model } // namespace CloudWatchEvents } // namespace Aws