/** * 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 #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

Provides details about a service within an ECS cluster.

See * Also:

AWS * API Reference

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

The capacity provider strategy that the service uses.

*/ inline const Aws::Vector& GetCapacityProviderStrategy() const{ return m_capacityProviderStrategy; } /** *

The capacity provider strategy that the service uses.

*/ inline bool CapacityProviderStrategyHasBeenSet() const { return m_capacityProviderStrategyHasBeenSet; } /** *

The capacity provider strategy that the service uses.

*/ inline void SetCapacityProviderStrategy(const Aws::Vector& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy = value; } /** *

The capacity provider strategy that the service uses.

*/ inline void SetCapacityProviderStrategy(Aws::Vector&& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy = std::move(value); } /** *

The capacity provider strategy that the service uses.

*/ inline AwsEcsServiceDetails& WithCapacityProviderStrategy(const Aws::Vector& value) { SetCapacityProviderStrategy(value); return *this;} /** *

The capacity provider strategy that the service uses.

*/ inline AwsEcsServiceDetails& WithCapacityProviderStrategy(Aws::Vector&& value) { SetCapacityProviderStrategy(std::move(value)); return *this;} /** *

The capacity provider strategy that the service uses.

*/ inline AwsEcsServiceDetails& AddCapacityProviderStrategy(const AwsEcsServiceCapacityProviderStrategyDetails& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy.push_back(value); return *this; } /** *

The capacity provider strategy that the service uses.

*/ inline AwsEcsServiceDetails& AddCapacityProviderStrategy(AwsEcsServiceCapacityProviderStrategyDetails&& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy.push_back(std::move(value)); return *this; } /** *

The ARN of the cluster that hosts the service.

*/ inline const Aws::String& GetCluster() const{ return m_cluster; } /** *

The ARN of the cluster that hosts the service.

*/ inline bool ClusterHasBeenSet() const { return m_clusterHasBeenSet; } /** *

The ARN of the cluster that hosts the service.

*/ inline void SetCluster(const Aws::String& value) { m_clusterHasBeenSet = true; m_cluster = value; } /** *

The ARN of the cluster that hosts the service.

*/ inline void SetCluster(Aws::String&& value) { m_clusterHasBeenSet = true; m_cluster = std::move(value); } /** *

The ARN of the cluster that hosts the service.

*/ inline void SetCluster(const char* value) { m_clusterHasBeenSet = true; m_cluster.assign(value); } /** *

The ARN of the cluster that hosts the service.

*/ inline AwsEcsServiceDetails& WithCluster(const Aws::String& value) { SetCluster(value); return *this;} /** *

The ARN of the cluster that hosts the service.

*/ inline AwsEcsServiceDetails& WithCluster(Aws::String&& value) { SetCluster(std::move(value)); return *this;} /** *

The ARN of the cluster that hosts the service.

*/ inline AwsEcsServiceDetails& WithCluster(const char* value) { SetCluster(value); return *this;} /** *

Deployment parameters for the service. Includes the number of tasks that run * and the order in which to start and stop tasks.

*/ inline const AwsEcsServiceDeploymentConfigurationDetails& GetDeploymentConfiguration() const{ return m_deploymentConfiguration; } /** *

Deployment parameters for the service. Includes the number of tasks that run * and the order in which to start and stop tasks.

*/ inline bool DeploymentConfigurationHasBeenSet() const { return m_deploymentConfigurationHasBeenSet; } /** *

Deployment parameters for the service. Includes the number of tasks that run * and the order in which to start and stop tasks.

*/ inline void SetDeploymentConfiguration(const AwsEcsServiceDeploymentConfigurationDetails& value) { m_deploymentConfigurationHasBeenSet = true; m_deploymentConfiguration = value; } /** *

Deployment parameters for the service. Includes the number of tasks that run * and the order in which to start and stop tasks.

*/ inline void SetDeploymentConfiguration(AwsEcsServiceDeploymentConfigurationDetails&& value) { m_deploymentConfigurationHasBeenSet = true; m_deploymentConfiguration = std::move(value); } /** *

Deployment parameters for the service. Includes the number of tasks that run * and the order in which to start and stop tasks.

*/ inline AwsEcsServiceDetails& WithDeploymentConfiguration(const AwsEcsServiceDeploymentConfigurationDetails& value) { SetDeploymentConfiguration(value); return *this;} /** *

Deployment parameters for the service. Includes the number of tasks that run * and the order in which to start and stop tasks.

*/ inline AwsEcsServiceDetails& WithDeploymentConfiguration(AwsEcsServiceDeploymentConfigurationDetails&& value) { SetDeploymentConfiguration(std::move(value)); return *this;} /** *

Contains the deployment controller type that the service uses.

*/ inline const AwsEcsServiceDeploymentControllerDetails& GetDeploymentController() const{ return m_deploymentController; } /** *

Contains the deployment controller type that the service uses.

*/ inline bool DeploymentControllerHasBeenSet() const { return m_deploymentControllerHasBeenSet; } /** *

Contains the deployment controller type that the service uses.

*/ inline void SetDeploymentController(const AwsEcsServiceDeploymentControllerDetails& value) { m_deploymentControllerHasBeenSet = true; m_deploymentController = value; } /** *

Contains the deployment controller type that the service uses.

*/ inline void SetDeploymentController(AwsEcsServiceDeploymentControllerDetails&& value) { m_deploymentControllerHasBeenSet = true; m_deploymentController = std::move(value); } /** *

Contains the deployment controller type that the service uses.

*/ inline AwsEcsServiceDetails& WithDeploymentController(const AwsEcsServiceDeploymentControllerDetails& value) { SetDeploymentController(value); return *this;} /** *

Contains the deployment controller type that the service uses.

*/ inline AwsEcsServiceDetails& WithDeploymentController(AwsEcsServiceDeploymentControllerDetails&& value) { SetDeploymentController(std::move(value)); return *this;} /** *

The number of instantiations of the task definition to run on the * service.

*/ inline int GetDesiredCount() const{ return m_desiredCount; } /** *

The number of instantiations of the task definition to run on the * service.

*/ inline bool DesiredCountHasBeenSet() const { return m_desiredCountHasBeenSet; } /** *

The number of instantiations of the task definition to run on the * service.

*/ inline void SetDesiredCount(int value) { m_desiredCountHasBeenSet = true; m_desiredCount = value; } /** *

The number of instantiations of the task definition to run on the * service.

*/ inline AwsEcsServiceDetails& WithDesiredCount(int value) { SetDesiredCount(value); return *this;} /** *

Whether to enable Amazon ECS managed tags for the tasks in the service.

*/ inline bool GetEnableEcsManagedTags() const{ return m_enableEcsManagedTags; } /** *

Whether to enable Amazon ECS managed tags for the tasks in the service.

*/ inline bool EnableEcsManagedTagsHasBeenSet() const { return m_enableEcsManagedTagsHasBeenSet; } /** *

Whether to enable Amazon ECS managed tags for the tasks in the service.

*/ inline void SetEnableEcsManagedTags(bool value) { m_enableEcsManagedTagsHasBeenSet = true; m_enableEcsManagedTags = value; } /** *

Whether to enable Amazon ECS managed tags for the tasks in the service.

*/ inline AwsEcsServiceDetails& WithEnableEcsManagedTags(bool value) { SetEnableEcsManagedTags(value); return *this;} /** *

Whether the execute command functionality is enabled for the service.

*/ inline bool GetEnableExecuteCommand() const{ return m_enableExecuteCommand; } /** *

Whether the execute command functionality is enabled for the service.

*/ inline bool EnableExecuteCommandHasBeenSet() const { return m_enableExecuteCommandHasBeenSet; } /** *

Whether the execute command functionality is enabled for the service.

*/ inline void SetEnableExecuteCommand(bool value) { m_enableExecuteCommandHasBeenSet = true; m_enableExecuteCommand = value; } /** *

Whether the execute command functionality is enabled for the service.

*/ inline AwsEcsServiceDetails& WithEnableExecuteCommand(bool value) { SetEnableExecuteCommand(value); return *this;} /** *

After a task starts, the amount of time in seconds that the Amazon ECS * service scheduler ignores unhealthy Elastic Load Balancing target health * checks.

*/ inline int GetHealthCheckGracePeriodSeconds() const{ return m_healthCheckGracePeriodSeconds; } /** *

After a task starts, the amount of time in seconds that the Amazon ECS * service scheduler ignores unhealthy Elastic Load Balancing target health * checks.

*/ inline bool HealthCheckGracePeriodSecondsHasBeenSet() const { return m_healthCheckGracePeriodSecondsHasBeenSet; } /** *

After a task starts, the amount of time in seconds that the Amazon ECS * service scheduler ignores unhealthy Elastic Load Balancing target health * checks.

*/ inline void SetHealthCheckGracePeriodSeconds(int value) { m_healthCheckGracePeriodSecondsHasBeenSet = true; m_healthCheckGracePeriodSeconds = value; } /** *

After a task starts, the amount of time in seconds that the Amazon ECS * service scheduler ignores unhealthy Elastic Load Balancing target health * checks.

*/ inline AwsEcsServiceDetails& WithHealthCheckGracePeriodSeconds(int value) { SetHealthCheckGracePeriodSeconds(value); return *this;} /** *

The launch type that the service uses.

Valid values: EC2 * | FARGATE | EXTERNAL

*/ inline const Aws::String& GetLaunchType() const{ return m_launchType; } /** *

The launch type that the service uses.

Valid values: EC2 * | FARGATE | EXTERNAL

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

The launch type that the service uses.

Valid values: EC2 * | FARGATE | EXTERNAL

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

The launch type that the service uses.

Valid values: EC2 * | FARGATE | EXTERNAL

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

The launch type that the service uses.

Valid values: EC2 * | FARGATE | EXTERNAL

*/ inline void SetLaunchType(const char* value) { m_launchTypeHasBeenSet = true; m_launchType.assign(value); } /** *

The launch type that the service uses.

Valid values: EC2 * | FARGATE | EXTERNAL

*/ inline AwsEcsServiceDetails& WithLaunchType(const Aws::String& value) { SetLaunchType(value); return *this;} /** *

The launch type that the service uses.

Valid values: EC2 * | FARGATE | EXTERNAL

*/ inline AwsEcsServiceDetails& WithLaunchType(Aws::String&& value) { SetLaunchType(std::move(value)); return *this;} /** *

The launch type that the service uses.

Valid values: EC2 * | FARGATE | EXTERNAL

*/ inline AwsEcsServiceDetails& WithLaunchType(const char* value) { SetLaunchType(value); return *this;} /** *

Information about the load balancers that the service uses.

*/ inline const Aws::Vector& GetLoadBalancers() const{ return m_loadBalancers; } /** *

Information about the load balancers that the service uses.

*/ inline bool LoadBalancersHasBeenSet() const { return m_loadBalancersHasBeenSet; } /** *

Information about the load balancers that the service uses.

*/ inline void SetLoadBalancers(const Aws::Vector& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers = value; } /** *

Information about the load balancers that the service uses.

*/ inline void SetLoadBalancers(Aws::Vector&& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers = std::move(value); } /** *

Information about the load balancers that the service uses.

*/ inline AwsEcsServiceDetails& WithLoadBalancers(const Aws::Vector& value) { SetLoadBalancers(value); return *this;} /** *

Information about the load balancers that the service uses.

*/ inline AwsEcsServiceDetails& WithLoadBalancers(Aws::Vector&& value) { SetLoadBalancers(std::move(value)); return *this;} /** *

Information about the load balancers that the service uses.

*/ inline AwsEcsServiceDetails& AddLoadBalancers(const AwsEcsServiceLoadBalancersDetails& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers.push_back(value); return *this; } /** *

Information about the load balancers that the service uses.

*/ inline AwsEcsServiceDetails& AddLoadBalancers(AwsEcsServiceLoadBalancersDetails&& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers.push_back(std::move(value)); return *this; } /** *

The name of the service.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the service.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the service.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the service.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the service.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the service.

*/ inline AwsEcsServiceDetails& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the service.

*/ inline AwsEcsServiceDetails& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the service.

*/ inline AwsEcsServiceDetails& WithName(const char* value) { SetName(value); return *this;} /** *

For tasks that use the awsvpc networking mode, the VPC subnet * and security group configuration.

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

For tasks that use the awsvpc networking mode, the VPC subnet * and security group configuration.

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

For tasks that use the awsvpc networking mode, the VPC subnet * and security group configuration.

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

For tasks that use the awsvpc networking mode, the VPC subnet * and security group configuration.

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

For tasks that use the awsvpc networking mode, the VPC subnet * and security group configuration.

*/ inline AwsEcsServiceDetails& WithNetworkConfiguration(const AwsEcsServiceNetworkConfigurationDetails& value) { SetNetworkConfiguration(value); return *this;} /** *

For tasks that use the awsvpc networking mode, the VPC subnet * and security group configuration.

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

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

Information about how tasks for the service are placed.

*/ inline const Aws::Vector& GetPlacementStrategies() const{ return m_placementStrategies; } /** *

Information about how tasks for the service are placed.

*/ inline bool PlacementStrategiesHasBeenSet() const { return m_placementStrategiesHasBeenSet; } /** *

Information about how tasks for the service are placed.

*/ inline void SetPlacementStrategies(const Aws::Vector& value) { m_placementStrategiesHasBeenSet = true; m_placementStrategies = value; } /** *

Information about how tasks for the service are placed.

*/ inline void SetPlacementStrategies(Aws::Vector&& value) { m_placementStrategiesHasBeenSet = true; m_placementStrategies = std::move(value); } /** *

Information about how tasks for the service are placed.

*/ inline AwsEcsServiceDetails& WithPlacementStrategies(const Aws::Vector& value) { SetPlacementStrategies(value); return *this;} /** *

Information about how tasks for the service are placed.

*/ inline AwsEcsServiceDetails& WithPlacementStrategies(Aws::Vector&& value) { SetPlacementStrategies(std::move(value)); return *this;} /** *

Information about how tasks for the service are placed.

*/ inline AwsEcsServiceDetails& AddPlacementStrategies(const AwsEcsServicePlacementStrategiesDetails& value) { m_placementStrategiesHasBeenSet = true; m_placementStrategies.push_back(value); return *this; } /** *

Information about how tasks for the service are placed.

*/ inline AwsEcsServiceDetails& AddPlacementStrategies(AwsEcsServicePlacementStrategiesDetails&& value) { m_placementStrategiesHasBeenSet = true; m_placementStrategies.push_back(std::move(value)); return *this; } /** *

The platform version on which to run the service. Only specified for tasks * that are hosted on Fargate. If a platform version is not specified, the * LATEST platform version is used by default.

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

The platform version on which to run the service. Only specified for tasks * that are hosted on Fargate. If a platform version is not specified, the * LATEST platform version is used by default.

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

The platform version on which to run the service. Only specified for tasks * that are hosted on Fargate. If a platform version is not specified, the * LATEST platform version is used by default.

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

The platform version on which to run the service. Only specified for tasks * that are hosted on Fargate. If a platform version is not specified, the * LATEST platform version is used by default.

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

The platform version on which to run the service. Only specified for tasks * that are hosted on Fargate. If a platform version is not specified, the * LATEST platform version is used by default.

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

The platform version on which to run the service. Only specified for tasks * that are hosted on Fargate. If a platform version is not specified, the * LATEST platform version is used by default.

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

The platform version on which to run the service. Only specified for tasks * that are hosted on Fargate. If a platform version is not specified, the * LATEST platform version is used by default.

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

The platform version on which to run the service. Only specified for tasks * that are hosted on Fargate. If a platform version is not specified, the * LATEST platform version is used by default.

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

Indicates whether to propagate the tags from the task definition to the task * or from the service to the task. If no value is provided, then tags are not * propagated.

Valid values: TASK_DEFINITION | * SERVICE

*/ inline const Aws::String& GetPropagateTags() const{ return m_propagateTags; } /** *

Indicates whether to propagate the tags from the task definition to the task * or from the service to the task. If no value is provided, then tags are not * propagated.

Valid values: TASK_DEFINITION | * SERVICE

*/ inline bool PropagateTagsHasBeenSet() const { return m_propagateTagsHasBeenSet; } /** *

Indicates whether to propagate the tags from the task definition to the task * or from the service to the task. If no value is provided, then tags are not * propagated.

Valid values: TASK_DEFINITION | * SERVICE

*/ inline void SetPropagateTags(const Aws::String& value) { m_propagateTagsHasBeenSet = true; m_propagateTags = value; } /** *

Indicates whether to propagate the tags from the task definition to the task * or from the service to the task. If no value is provided, then tags are not * propagated.

Valid values: TASK_DEFINITION | * SERVICE

*/ inline void SetPropagateTags(Aws::String&& value) { m_propagateTagsHasBeenSet = true; m_propagateTags = std::move(value); } /** *

Indicates whether to propagate the tags from the task definition to the task * or from the service to the task. If no value is provided, then tags are not * propagated.

Valid values: TASK_DEFINITION | * SERVICE

*/ inline void SetPropagateTags(const char* value) { m_propagateTagsHasBeenSet = true; m_propagateTags.assign(value); } /** *

Indicates whether to propagate the tags from the task definition to the task * or from the service to the task. If no value is provided, then tags are not * propagated.

Valid values: TASK_DEFINITION | * SERVICE

*/ inline AwsEcsServiceDetails& WithPropagateTags(const Aws::String& value) { SetPropagateTags(value); return *this;} /** *

Indicates whether to propagate the tags from the task definition to the task * or from the service to the task. If no value is provided, then tags are not * propagated.

Valid values: TASK_DEFINITION | * SERVICE

*/ inline AwsEcsServiceDetails& WithPropagateTags(Aws::String&& value) { SetPropagateTags(std::move(value)); return *this;} /** *

Indicates whether to propagate the tags from the task definition to the task * or from the service to the task. If no value is provided, then tags are not * propagated.

Valid values: TASK_DEFINITION | * SERVICE

*/ inline AwsEcsServiceDetails& WithPropagateTags(const char* value) { SetPropagateTags(value); return *this;} /** *

The ARN of the IAM role that is associated with the service. The role allows * the Amazon ECS container agent to register container instances with an Elastic * Load Balancing load balancer.

*/ inline const Aws::String& GetRole() const{ return m_role; } /** *

The ARN of the IAM role that is associated with the service. The role allows * the Amazon ECS container agent to register container instances with an Elastic * Load Balancing load balancer.

*/ inline bool RoleHasBeenSet() const { return m_roleHasBeenSet; } /** *

The ARN of the IAM role that is associated with the service. The role allows * the Amazon ECS container agent to register container instances with an Elastic * Load Balancing load balancer.

*/ inline void SetRole(const Aws::String& value) { m_roleHasBeenSet = true; m_role = value; } /** *

The ARN of the IAM role that is associated with the service. The role allows * the Amazon ECS container agent to register container instances with an Elastic * Load Balancing load balancer.

*/ inline void SetRole(Aws::String&& value) { m_roleHasBeenSet = true; m_role = std::move(value); } /** *

The ARN of the IAM role that is associated with the service. The role allows * the Amazon ECS container agent to register container instances with an Elastic * Load Balancing load balancer.

*/ inline void SetRole(const char* value) { m_roleHasBeenSet = true; m_role.assign(value); } /** *

The ARN of the IAM role that is associated with the service. The role allows * the Amazon ECS container agent to register container instances with an Elastic * Load Balancing load balancer.

*/ inline AwsEcsServiceDetails& WithRole(const Aws::String& value) { SetRole(value); return *this;} /** *

The ARN of the IAM role that is associated with the service. The role allows * the Amazon ECS container agent to register container instances with an Elastic * Load Balancing load balancer.

*/ inline AwsEcsServiceDetails& WithRole(Aws::String&& value) { SetRole(std::move(value)); return *this;} /** *

The ARN of the IAM role that is associated with the service. The role allows * the Amazon ECS container agent to register container instances with an Elastic * Load Balancing load balancer.

*/ inline AwsEcsServiceDetails& WithRole(const char* value) { SetRole(value); return *this;} /** *

The scheduling strategy to use for the service.

The * REPLICA scheduling strategy places and maintains the desired number * of tasks across the cluster. By default, the service scheduler spreads tasks * across Availability Zones. Task placement strategies and constraints are used to * customize task placement decisions.

The DAEMON scheduling * strategy deploys exactly one task on each active container instance that meets * all of the task placement constraints that are specified in the cluster. The * service scheduler also evaluates the task placement constraints for running * tasks and stops tasks that do not meet the placement constraints.

Valid * values: REPLICA | DAEMON

*/ inline const Aws::String& GetSchedulingStrategy() const{ return m_schedulingStrategy; } /** *

The scheduling strategy to use for the service.

The * REPLICA scheduling strategy places and maintains the desired number * of tasks across the cluster. By default, the service scheduler spreads tasks * across Availability Zones. Task placement strategies and constraints are used to * customize task placement decisions.

The DAEMON scheduling * strategy deploys exactly one task on each active container instance that meets * all of the task placement constraints that are specified in the cluster. The * service scheduler also evaluates the task placement constraints for running * tasks and stops tasks that do not meet the placement constraints.

Valid * values: REPLICA | DAEMON

*/ inline bool SchedulingStrategyHasBeenSet() const { return m_schedulingStrategyHasBeenSet; } /** *

The scheduling strategy to use for the service.

The * REPLICA scheduling strategy places and maintains the desired number * of tasks across the cluster. By default, the service scheduler spreads tasks * across Availability Zones. Task placement strategies and constraints are used to * customize task placement decisions.

The DAEMON scheduling * strategy deploys exactly one task on each active container instance that meets * all of the task placement constraints that are specified in the cluster. The * service scheduler also evaluates the task placement constraints for running * tasks and stops tasks that do not meet the placement constraints.

Valid * values: REPLICA | DAEMON

*/ inline void SetSchedulingStrategy(const Aws::String& value) { m_schedulingStrategyHasBeenSet = true; m_schedulingStrategy = value; } /** *

The scheduling strategy to use for the service.

The * REPLICA scheduling strategy places and maintains the desired number * of tasks across the cluster. By default, the service scheduler spreads tasks * across Availability Zones. Task placement strategies and constraints are used to * customize task placement decisions.

The DAEMON scheduling * strategy deploys exactly one task on each active container instance that meets * all of the task placement constraints that are specified in the cluster. The * service scheduler also evaluates the task placement constraints for running * tasks and stops tasks that do not meet the placement constraints.

Valid * values: REPLICA | DAEMON

*/ inline void SetSchedulingStrategy(Aws::String&& value) { m_schedulingStrategyHasBeenSet = true; m_schedulingStrategy = std::move(value); } /** *

The scheduling strategy to use for the service.

The * REPLICA scheduling strategy places and maintains the desired number * of tasks across the cluster. By default, the service scheduler spreads tasks * across Availability Zones. Task placement strategies and constraints are used to * customize task placement decisions.

The DAEMON scheduling * strategy deploys exactly one task on each active container instance that meets * all of the task placement constraints that are specified in the cluster. The * service scheduler also evaluates the task placement constraints for running * tasks and stops tasks that do not meet the placement constraints.

Valid * values: REPLICA | DAEMON

*/ inline void SetSchedulingStrategy(const char* value) { m_schedulingStrategyHasBeenSet = true; m_schedulingStrategy.assign(value); } /** *

The scheduling strategy to use for the service.

The * REPLICA scheduling strategy places and maintains the desired number * of tasks across the cluster. By default, the service scheduler spreads tasks * across Availability Zones. Task placement strategies and constraints are used to * customize task placement decisions.

The DAEMON scheduling * strategy deploys exactly one task on each active container instance that meets * all of the task placement constraints that are specified in the cluster. The * service scheduler also evaluates the task placement constraints for running * tasks and stops tasks that do not meet the placement constraints.

Valid * values: REPLICA | DAEMON

*/ inline AwsEcsServiceDetails& WithSchedulingStrategy(const Aws::String& value) { SetSchedulingStrategy(value); return *this;} /** *

The scheduling strategy to use for the service.

The * REPLICA scheduling strategy places and maintains the desired number * of tasks across the cluster. By default, the service scheduler spreads tasks * across Availability Zones. Task placement strategies and constraints are used to * customize task placement decisions.

The DAEMON scheduling * strategy deploys exactly one task on each active container instance that meets * all of the task placement constraints that are specified in the cluster. The * service scheduler also evaluates the task placement constraints for running * tasks and stops tasks that do not meet the placement constraints.

Valid * values: REPLICA | DAEMON

*/ inline AwsEcsServiceDetails& WithSchedulingStrategy(Aws::String&& value) { SetSchedulingStrategy(std::move(value)); return *this;} /** *

The scheduling strategy to use for the service.

The * REPLICA scheduling strategy places and maintains the desired number * of tasks across the cluster. By default, the service scheduler spreads tasks * across Availability Zones. Task placement strategies and constraints are used to * customize task placement decisions.

The DAEMON scheduling * strategy deploys exactly one task on each active container instance that meets * all of the task placement constraints that are specified in the cluster. The * service scheduler also evaluates the task placement constraints for running * tasks and stops tasks that do not meet the placement constraints.

Valid * values: REPLICA | DAEMON

*/ inline AwsEcsServiceDetails& WithSchedulingStrategy(const char* value) { SetSchedulingStrategy(value); return *this;} /** *

The ARN of the service.

*/ inline const Aws::String& GetServiceArn() const{ return m_serviceArn; } /** *

The ARN of the service.

*/ inline bool ServiceArnHasBeenSet() const { return m_serviceArnHasBeenSet; } /** *

The ARN of the service.

*/ inline void SetServiceArn(const Aws::String& value) { m_serviceArnHasBeenSet = true; m_serviceArn = value; } /** *

The ARN of the service.

*/ inline void SetServiceArn(Aws::String&& value) { m_serviceArnHasBeenSet = true; m_serviceArn = std::move(value); } /** *

The ARN of the service.

*/ inline void SetServiceArn(const char* value) { m_serviceArnHasBeenSet = true; m_serviceArn.assign(value); } /** *

The ARN of the service.

*/ inline AwsEcsServiceDetails& WithServiceArn(const Aws::String& value) { SetServiceArn(value); return *this;} /** *

The ARN of the service.

*/ inline AwsEcsServiceDetails& WithServiceArn(Aws::String&& value) { SetServiceArn(std::move(value)); return *this;} /** *

The ARN of the service.

*/ inline AwsEcsServiceDetails& WithServiceArn(const char* value) { SetServiceArn(value); return *this;} /** *

The name of the service.

The name can contain up to 255 characters. It * can use letters, numbers, underscores, and hyphens.

*/ inline const Aws::String& GetServiceName() const{ return m_serviceName; } /** *

The name of the service.

The name can contain up to 255 characters. It * can use letters, numbers, underscores, and hyphens.

*/ inline bool ServiceNameHasBeenSet() const { return m_serviceNameHasBeenSet; } /** *

The name of the service.

The name can contain up to 255 characters. It * can use letters, numbers, underscores, and hyphens.

*/ inline void SetServiceName(const Aws::String& value) { m_serviceNameHasBeenSet = true; m_serviceName = value; } /** *

The name of the service.

The name can contain up to 255 characters. It * can use letters, numbers, underscores, and hyphens.

*/ inline void SetServiceName(Aws::String&& value) { m_serviceNameHasBeenSet = true; m_serviceName = std::move(value); } /** *

The name of the service.

The name can contain up to 255 characters. It * can use letters, numbers, underscores, and hyphens.

*/ inline void SetServiceName(const char* value) { m_serviceNameHasBeenSet = true; m_serviceName.assign(value); } /** *

The name of the service.

The name can contain up to 255 characters. It * can use letters, numbers, underscores, and hyphens.

*/ inline AwsEcsServiceDetails& WithServiceName(const Aws::String& value) { SetServiceName(value); return *this;} /** *

The name of the service.

The name can contain up to 255 characters. It * can use letters, numbers, underscores, and hyphens.

*/ inline AwsEcsServiceDetails& WithServiceName(Aws::String&& value) { SetServiceName(std::move(value)); return *this;} /** *

The name of the service.

The name can contain up to 255 characters. It * can use letters, numbers, underscores, and hyphens.

*/ inline AwsEcsServiceDetails& WithServiceName(const char* value) { SetServiceName(value); return *this;} /** *

Information about the service discovery registries to assign to the * service.

*/ inline const Aws::Vector& GetServiceRegistries() const{ return m_serviceRegistries; } /** *

Information about the service discovery registries to assign to the * service.

*/ inline bool ServiceRegistriesHasBeenSet() const { return m_serviceRegistriesHasBeenSet; } /** *

Information about the service discovery registries to assign to the * service.

*/ inline void SetServiceRegistries(const Aws::Vector& value) { m_serviceRegistriesHasBeenSet = true; m_serviceRegistries = value; } /** *

Information about the service discovery registries to assign to the * service.

*/ inline void SetServiceRegistries(Aws::Vector&& value) { m_serviceRegistriesHasBeenSet = true; m_serviceRegistries = std::move(value); } /** *

Information about the service discovery registries to assign to the * service.

*/ inline AwsEcsServiceDetails& WithServiceRegistries(const Aws::Vector& value) { SetServiceRegistries(value); return *this;} /** *

Information about the service discovery registries to assign to the * service.

*/ inline AwsEcsServiceDetails& WithServiceRegistries(Aws::Vector&& value) { SetServiceRegistries(std::move(value)); return *this;} /** *

Information about the service discovery registries to assign to the * service.

*/ inline AwsEcsServiceDetails& AddServiceRegistries(const AwsEcsServiceServiceRegistriesDetails& value) { m_serviceRegistriesHasBeenSet = true; m_serviceRegistries.push_back(value); return *this; } /** *

Information about the service discovery registries to assign to the * service.

*/ inline AwsEcsServiceDetails& AddServiceRegistries(AwsEcsServiceServiceRegistriesDetails&& value) { m_serviceRegistriesHasBeenSet = true; m_serviceRegistries.push_back(std::move(value)); return *this; } /** *

The task definition to use for tasks in the service.

*/ inline const Aws::String& GetTaskDefinition() const{ return m_taskDefinition; } /** *

The task definition to use for tasks in the service.

*/ inline bool TaskDefinitionHasBeenSet() const { return m_taskDefinitionHasBeenSet; } /** *

The task definition to use for tasks in the service.

*/ inline void SetTaskDefinition(const Aws::String& value) { m_taskDefinitionHasBeenSet = true; m_taskDefinition = value; } /** *

The task definition to use for tasks in the service.

*/ inline void SetTaskDefinition(Aws::String&& value) { m_taskDefinitionHasBeenSet = true; m_taskDefinition = std::move(value); } /** *

The task definition to use for tasks in the service.

*/ inline void SetTaskDefinition(const char* value) { m_taskDefinitionHasBeenSet = true; m_taskDefinition.assign(value); } /** *

The task definition to use for tasks in the service.

*/ inline AwsEcsServiceDetails& WithTaskDefinition(const Aws::String& value) { SetTaskDefinition(value); return *this;} /** *

The task definition to use for tasks in the service.

*/ inline AwsEcsServiceDetails& WithTaskDefinition(Aws::String&& value) { SetTaskDefinition(std::move(value)); return *this;} /** *

The task definition to use for tasks in the service.

*/ inline AwsEcsServiceDetails& WithTaskDefinition(const char* value) { SetTaskDefinition(value); return *this;} private: Aws::Vector m_capacityProviderStrategy; bool m_capacityProviderStrategyHasBeenSet = false; Aws::String m_cluster; bool m_clusterHasBeenSet = false; AwsEcsServiceDeploymentConfigurationDetails m_deploymentConfiguration; bool m_deploymentConfigurationHasBeenSet = false; AwsEcsServiceDeploymentControllerDetails m_deploymentController; bool m_deploymentControllerHasBeenSet = false; int m_desiredCount; bool m_desiredCountHasBeenSet = false; bool m_enableEcsManagedTags; bool m_enableEcsManagedTagsHasBeenSet = false; bool m_enableExecuteCommand; bool m_enableExecuteCommandHasBeenSet = false; int m_healthCheckGracePeriodSeconds; bool m_healthCheckGracePeriodSecondsHasBeenSet = false; Aws::String m_launchType; bool m_launchTypeHasBeenSet = false; Aws::Vector m_loadBalancers; bool m_loadBalancersHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; AwsEcsServiceNetworkConfigurationDetails m_networkConfiguration; bool m_networkConfigurationHasBeenSet = false; Aws::Vector m_placementConstraints; bool m_placementConstraintsHasBeenSet = false; Aws::Vector m_placementStrategies; bool m_placementStrategiesHasBeenSet = false; Aws::String m_platformVersion; bool m_platformVersionHasBeenSet = false; Aws::String m_propagateTags; bool m_propagateTagsHasBeenSet = false; Aws::String m_role; bool m_roleHasBeenSet = false; Aws::String m_schedulingStrategy; bool m_schedulingStrategyHasBeenSet = false; Aws::String m_serviceArn; bool m_serviceArnHasBeenSet = false; Aws::String m_serviceName; bool m_serviceNameHasBeenSet = false; Aws::Vector m_serviceRegistries; bool m_serviceRegistriesHasBeenSet = false; Aws::String m_taskDefinition; bool m_taskDefinitionHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws