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

Details on a service within a cluster.

See Also:

AWS API * Reference

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

The ARN that identifies the service. For more information about the ARN * format, see Amazon * Resource Name (ARN) in the Amazon ECS Developer Guide.

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

The ARN that identifies the service. For more information about the ARN * format, see Amazon * Resource Name (ARN) in the Amazon ECS Developer Guide.

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

The ARN that identifies the service. For more information about the ARN * format, see Amazon * Resource Name (ARN) in the Amazon ECS Developer Guide.

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

The ARN that identifies the service. For more information about the ARN * format, see Amazon * Resource Name (ARN) in the Amazon ECS Developer Guide.

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

The ARN that identifies the service. For more information about the ARN * format, see Amazon * Resource Name (ARN) in the Amazon ECS Developer Guide.

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

The ARN that identifies the service. For more information about the ARN * format, see Amazon * Resource Name (ARN) in the Amazon ECS Developer Guide.

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

The ARN that identifies the service. For more information about the ARN * format, see Amazon * Resource Name (ARN) in the Amazon ECS Developer Guide.

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

The ARN that identifies the service. For more information about the ARN * format, see Amazon * Resource Name (ARN) in the Amazon ECS Developer Guide.

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

The name of your service. Up to 255 letters (uppercase and lowercase), * numbers, underscores, and hyphens are allowed. Service names must be unique * within a cluster. However, you can have similarly named services in multiple * clusters within a Region or across multiple Regions.

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

The name of your service. Up to 255 letters (uppercase and lowercase), * numbers, underscores, and hyphens are allowed. Service names must be unique * within a cluster. However, you can have similarly named services in multiple * clusters within a Region or across multiple Regions.

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

The name of your service. Up to 255 letters (uppercase and lowercase), * numbers, underscores, and hyphens are allowed. Service names must be unique * within a cluster. However, you can have similarly named services in multiple * clusters within a Region or across multiple Regions.

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

The name of your service. Up to 255 letters (uppercase and lowercase), * numbers, underscores, and hyphens are allowed. Service names must be unique * within a cluster. However, you can have similarly named services in multiple * clusters within a Region or across multiple Regions.

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

The name of your service. Up to 255 letters (uppercase and lowercase), * numbers, underscores, and hyphens are allowed. Service names must be unique * within a cluster. However, you can have similarly named services in multiple * clusters within a Region or across multiple Regions.

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

The name of your service. Up to 255 letters (uppercase and lowercase), * numbers, underscores, and hyphens are allowed. Service names must be unique * within a cluster. However, you can have similarly named services in multiple * clusters within a Region or across multiple Regions.

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

The name of your service. Up to 255 letters (uppercase and lowercase), * numbers, underscores, and hyphens are allowed. Service names must be unique * within a cluster. However, you can have similarly named services in multiple * clusters within a Region or across multiple Regions.

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

The name of your service. Up to 255 letters (uppercase and lowercase), * numbers, underscores, and hyphens are allowed. Service names must be unique * within a cluster. However, you can have similarly named services in multiple * clusters within a Region or across multiple Regions.

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

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ inline const Aws::String& GetClusterArn() const{ return m_clusterArn; } /** *

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ inline bool ClusterArnHasBeenSet() const { return m_clusterArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ inline void SetClusterArn(const Aws::String& value) { m_clusterArnHasBeenSet = true; m_clusterArn = value; } /** *

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ inline void SetClusterArn(Aws::String&& value) { m_clusterArnHasBeenSet = true; m_clusterArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ inline void SetClusterArn(const char* value) { m_clusterArnHasBeenSet = true; m_clusterArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ inline Service& WithClusterArn(const Aws::String& value) { SetClusterArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ inline Service& WithClusterArn(Aws::String&& value) { SetClusterArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ inline Service& WithClusterArn(const char* value) { SetClusterArn(value); return *this;} /** *

A list of Elastic Load Balancing load balancer objects. It contains the load * balancer name, the container name, and the container port to access from the * load balancer. The container name is as it appears in a container * definition.

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

A list of Elastic Load Balancing load balancer objects. It contains the load * balancer name, the container name, and the container port to access from the * load balancer. The container name is as it appears in a container * definition.

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

A list of Elastic Load Balancing load balancer objects. It contains the load * balancer name, the container name, and the container port to access from the * load balancer. The container name is as it appears in a container * definition.

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

A list of Elastic Load Balancing load balancer objects. It contains the load * balancer name, the container name, and the container port to access from the * load balancer. The container name is as it appears in a container * definition.

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

A list of Elastic Load Balancing load balancer objects. It contains the load * balancer name, the container name, and the container port to access from the * load balancer. The container name is as it appears in a container * definition.

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

A list of Elastic Load Balancing load balancer objects. It contains the load * balancer name, the container name, and the container port to access from the * load balancer. The container name is as it appears in a container * definition.

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

A list of Elastic Load Balancing load balancer objects. It contains the load * balancer name, the container name, and the container port to access from the * load balancer. The container name is as it appears in a container * definition.

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

A list of Elastic Load Balancing load balancer objects. It contains the load * balancer name, the container name, and the container port to access from the * load balancer. The container name is as it appears in a container * definition.

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

The details for the service discovery registries to assign to this service. * For more information, see Service * Discovery.

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

The details for the service discovery registries to assign to this service. * For more information, see Service * Discovery.

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

The details for the service discovery registries to assign to this service. * For more information, see Service * Discovery.

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

The details for the service discovery registries to assign to this service. * For more information, see Service * Discovery.

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

The details for the service discovery registries to assign to this service. * For more information, see Service * Discovery.

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

The details for the service discovery registries to assign to this service. * For more information, see Service * Discovery.

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

The details for the service discovery registries to assign to this service. * For more information, see Service * Discovery.

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

The details for the service discovery registries to assign to this service. * For more information, see Service * Discovery.

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

The status of the service. The valid values are ACTIVE, * DRAINING, or INACTIVE.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

The status of the service. The valid values are ACTIVE, * DRAINING, or INACTIVE.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the service. The valid values are ACTIVE, * DRAINING, or INACTIVE.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the service. The valid values are ACTIVE, * DRAINING, or INACTIVE.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the service. The valid values are ACTIVE, * DRAINING, or INACTIVE.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

The status of the service. The valid values are ACTIVE, * DRAINING, or INACTIVE.

*/ inline Service& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

The status of the service. The valid values are ACTIVE, * DRAINING, or INACTIVE.

*/ inline Service& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

The status of the service. The valid values are ACTIVE, * DRAINING, or INACTIVE.

*/ inline Service& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

The desired number of instantiations of the task definition to keep running * on the service. This value is specified when the service is created with * CreateService, and it can be modified with UpdateService.

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

The desired number of instantiations of the task definition to keep running * on the service. This value is specified when the service is created with * CreateService, and it can be modified with UpdateService.

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

The desired number of instantiations of the task definition to keep running * on the service. This value is specified when the service is created with * CreateService, and it can be modified with UpdateService.

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

The desired number of instantiations of the task definition to keep running * on the service. This value is specified when the service is created with * CreateService, and it can be modified with UpdateService.

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

The number of tasks in the cluster that are in the RUNNING * state.

*/ inline int GetRunningCount() const{ return m_runningCount; } /** *

The number of tasks in the cluster that are in the RUNNING * state.

*/ inline bool RunningCountHasBeenSet() const { return m_runningCountHasBeenSet; } /** *

The number of tasks in the cluster that are in the RUNNING * state.

*/ inline void SetRunningCount(int value) { m_runningCountHasBeenSet = true; m_runningCount = value; } /** *

The number of tasks in the cluster that are in the RUNNING * state.

*/ inline Service& WithRunningCount(int value) { SetRunningCount(value); return *this;} /** *

The number of tasks in the cluster that are in the PENDING * state.

*/ inline int GetPendingCount() const{ return m_pendingCount; } /** *

The number of tasks in the cluster that are in the PENDING * state.

*/ inline bool PendingCountHasBeenSet() const { return m_pendingCountHasBeenSet; } /** *

The number of tasks in the cluster that are in the PENDING * state.

*/ inline void SetPendingCount(int value) { m_pendingCountHasBeenSet = true; m_pendingCount = value; } /** *

The number of tasks in the cluster that are in the PENDING * state.

*/ inline Service& WithPendingCount(int value) { SetPendingCount(value); return *this;} /** *

The launch type the service is using. When using the DescribeServices API, * this field is omitted if the service was created using a capacity provider * strategy.

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

The launch type the service is using. When using the DescribeServices API, * this field is omitted if the service was created using a capacity provider * strategy.

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

The launch type the service is using. When using the DescribeServices API, * this field is omitted if the service was created using a capacity provider * strategy.

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

The launch type the service is using. When using the DescribeServices API, * this field is omitted if the service was created using a capacity provider * strategy.

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

The launch type the service is using. When using the DescribeServices API, * this field is omitted if the service was created using a capacity provider * strategy.

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

The launch type the service is using. When using the DescribeServices API, * this field is omitted if the service was created using a capacity provider * strategy.

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

The capacity provider strategy the service uses. When using the * DescribeServices API, this field is omitted if the service was created using a * launch type.

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

The capacity provider strategy the service uses. When using the * DescribeServices API, this field is omitted if the service was created using a * launch type.

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

The capacity provider strategy the service uses. When using the * DescribeServices API, this field is omitted if the service was created using a * launch type.

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

The capacity provider strategy the service uses. When using the * DescribeServices API, this field is omitted if the service was created using a * launch type.

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

The capacity provider strategy the service uses. When using the * DescribeServices API, this field is omitted if the service was created using a * launch type.

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

The capacity provider strategy the service uses. When using the * DescribeServices API, this field is omitted if the service was created using a * launch type.

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

The capacity provider strategy the service uses. When using the * DescribeServices API, this field is omitted if the service was created using a * launch type.

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

The capacity provider strategy the service uses. When using the * DescribeServices API, this field is omitted if the service was created using a * launch type.

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

The platform version to run your service on. A platform version is only * specified for tasks that are hosted on Fargate. If one isn't specified, the * LATEST platform version is used. For more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version to run your service on. A platform version is only * specified for tasks that are hosted on Fargate. If one isn't specified, the * LATEST platform version is used. For more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version to run your service on. A platform version is only * specified for tasks that are hosted on Fargate. If one isn't specified, the * LATEST platform version is used. For more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version to run your service on. A platform version is only * specified for tasks that are hosted on Fargate. If one isn't specified, the * LATEST platform version is used. For more information, see 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); } /** *

The platform version to run your service on. A platform version is only * specified for tasks that are hosted on Fargate. If one isn't specified, the * LATEST platform version is used. For more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version to run your service on. A platform version is only * specified for tasks that are hosted on Fargate. If one isn't specified, the * LATEST platform version is used. For more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version to run your service on. A platform version is only * specified for tasks that are hosted on Fargate. If one isn't specified, the * LATEST platform version is used. For more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version to run your service on. A platform version is only * specified for tasks that are hosted on Fargate. If one isn't specified, the * LATEST platform version is used. For more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The operating system that your tasks in the service run on. A platform family * is specified only for tasks using the Fargate launch type.

All tasks * that run as part of this service must use the same platformFamily * value as the service (for example, LINUX).

*/ inline const Aws::String& GetPlatformFamily() const{ return m_platformFamily; } /** *

The operating system that your tasks in the service run on. A platform family * is specified only for tasks using the Fargate launch type.

All tasks * that run as part of this service must use the same platformFamily * value as the service (for example, LINUX).

*/ inline bool PlatformFamilyHasBeenSet() const { return m_platformFamilyHasBeenSet; } /** *

The operating system that your tasks in the service run on. A platform family * is specified only for tasks using the Fargate launch type.

All tasks * that run as part of this service must use the same platformFamily * value as the service (for example, LINUX).

*/ inline void SetPlatformFamily(const Aws::String& value) { m_platformFamilyHasBeenSet = true; m_platformFamily = value; } /** *

The operating system that your tasks in the service run on. A platform family * is specified only for tasks using the Fargate launch type.

All tasks * that run as part of this service must use the same platformFamily * value as the service (for example, LINUX).

*/ inline void SetPlatformFamily(Aws::String&& value) { m_platformFamilyHasBeenSet = true; m_platformFamily = std::move(value); } /** *

The operating system that your tasks in the service run on. A platform family * is specified only for tasks using the Fargate launch type.

All tasks * that run as part of this service must use the same platformFamily * value as the service (for example, LINUX).

*/ inline void SetPlatformFamily(const char* value) { m_platformFamilyHasBeenSet = true; m_platformFamily.assign(value); } /** *

The operating system that your tasks in the service run on. A platform family * is specified only for tasks using the Fargate launch type.

All tasks * that run as part of this service must use the same platformFamily * value as the service (for example, LINUX).

*/ inline Service& WithPlatformFamily(const Aws::String& value) { SetPlatformFamily(value); return *this;} /** *

The operating system that your tasks in the service run on. A platform family * is specified only for tasks using the Fargate launch type.

All tasks * that run as part of this service must use the same platformFamily * value as the service (for example, LINUX).

*/ inline Service& WithPlatformFamily(Aws::String&& value) { SetPlatformFamily(std::move(value)); return *this;} /** *

The operating system that your tasks in the service run on. A platform family * is specified only for tasks using the Fargate launch type.

All tasks * that run as part of this service must use the same platformFamily * value as the service (for example, LINUX).

*/ inline Service& WithPlatformFamily(const char* value) { SetPlatformFamily(value); return *this;} /** *

The task definition to use for tasks in the service. This value is specified * when the service is created with CreateService, and it can be modified * with UpdateService.

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

The task definition to use for tasks in the service. This value is specified * when the service is created with CreateService, and it can be modified * with UpdateService.

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

The task definition to use for tasks in the service. This value is specified * when the service is created with CreateService, and it can be modified * with UpdateService.

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

The task definition to use for tasks in the service. This value is specified * when the service is created with CreateService, and it can be modified * with UpdateService.

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

The task definition to use for tasks in the service. This value is specified * when the service is created with CreateService, and it can be modified * with UpdateService.

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

The task definition to use for tasks in the service. This value is specified * when the service is created with CreateService, and it can be modified * with UpdateService.

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

The task definition to use for tasks in the service. This value is specified * when the service is created with CreateService, and it can be modified * with UpdateService.

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

The task definition to use for tasks in the service. This value is specified * when the service is created with CreateService, and it can be modified * with UpdateService.

*/ inline Service& WithTaskDefinition(const char* value) { SetTaskDefinition(value); return *this;} /** *

Optional deployment parameters that control how many tasks run during the * deployment and the ordering of stopping and starting tasks.

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

Optional deployment parameters that control how many tasks run during the * deployment and the ordering of stopping and starting tasks.

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

Optional deployment parameters that control how many tasks run during the * deployment and the ordering of stopping and starting tasks.

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

Optional deployment parameters that control how many tasks run during the * deployment and the ordering of stopping and starting tasks.

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

Optional deployment parameters that control how many tasks run during the * deployment and the ordering of stopping and starting tasks.

*/ inline Service& WithDeploymentConfiguration(const DeploymentConfiguration& value) { SetDeploymentConfiguration(value); return *this;} /** *

Optional deployment parameters that control how many tasks run during the * deployment and the ordering of stopping and starting tasks.

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

Information about a set of Amazon ECS tasks in either an CodeDeploy or an * EXTERNAL deployment. An Amazon ECS task set includes details such * as the desired number of tasks, how many tasks are running, and whether the task * set serves production traffic.

*/ inline const Aws::Vector& GetTaskSets() const{ return m_taskSets; } /** *

Information about a set of Amazon ECS tasks in either an CodeDeploy or an * EXTERNAL deployment. An Amazon ECS task set includes details such * as the desired number of tasks, how many tasks are running, and whether the task * set serves production traffic.

*/ inline bool TaskSetsHasBeenSet() const { return m_taskSetsHasBeenSet; } /** *

Information about a set of Amazon ECS tasks in either an CodeDeploy or an * EXTERNAL deployment. An Amazon ECS task set includes details such * as the desired number of tasks, how many tasks are running, and whether the task * set serves production traffic.

*/ inline void SetTaskSets(const Aws::Vector& value) { m_taskSetsHasBeenSet = true; m_taskSets = value; } /** *

Information about a set of Amazon ECS tasks in either an CodeDeploy or an * EXTERNAL deployment. An Amazon ECS task set includes details such * as the desired number of tasks, how many tasks are running, and whether the task * set serves production traffic.

*/ inline void SetTaskSets(Aws::Vector&& value) { m_taskSetsHasBeenSet = true; m_taskSets = std::move(value); } /** *

Information about a set of Amazon ECS tasks in either an CodeDeploy or an * EXTERNAL deployment. An Amazon ECS task set includes details such * as the desired number of tasks, how many tasks are running, and whether the task * set serves production traffic.

*/ inline Service& WithTaskSets(const Aws::Vector& value) { SetTaskSets(value); return *this;} /** *

Information about a set of Amazon ECS tasks in either an CodeDeploy or an * EXTERNAL deployment. An Amazon ECS task set includes details such * as the desired number of tasks, how many tasks are running, and whether the task * set serves production traffic.

*/ inline Service& WithTaskSets(Aws::Vector&& value) { SetTaskSets(std::move(value)); return *this;} /** *

Information about a set of Amazon ECS tasks in either an CodeDeploy or an * EXTERNAL deployment. An Amazon ECS task set includes details such * as the desired number of tasks, how many tasks are running, and whether the task * set serves production traffic.

*/ inline Service& AddTaskSets(const TaskSet& value) { m_taskSetsHasBeenSet = true; m_taskSets.push_back(value); return *this; } /** *

Information about a set of Amazon ECS tasks in either an CodeDeploy or an * EXTERNAL deployment. An Amazon ECS task set includes details such * as the desired number of tasks, how many tasks are running, and whether the task * set serves production traffic.

*/ inline Service& AddTaskSets(TaskSet&& value) { m_taskSetsHasBeenSet = true; m_taskSets.push_back(std::move(value)); return *this; } /** *

The current state of deployments for the service.

*/ inline const Aws::Vector& GetDeployments() const{ return m_deployments; } /** *

The current state of deployments for the service.

*/ inline bool DeploymentsHasBeenSet() const { return m_deploymentsHasBeenSet; } /** *

The current state of deployments for the service.

*/ inline void SetDeployments(const Aws::Vector& value) { m_deploymentsHasBeenSet = true; m_deployments = value; } /** *

The current state of deployments for the service.

*/ inline void SetDeployments(Aws::Vector&& value) { m_deploymentsHasBeenSet = true; m_deployments = std::move(value); } /** *

The current state of deployments for the service.

*/ inline Service& WithDeployments(const Aws::Vector& value) { SetDeployments(value); return *this;} /** *

The current state of deployments for the service.

*/ inline Service& WithDeployments(Aws::Vector&& value) { SetDeployments(std::move(value)); return *this;} /** *

The current state of deployments for the service.

*/ inline Service& AddDeployments(const Deployment& value) { m_deploymentsHasBeenSet = true; m_deployments.push_back(value); return *this; } /** *

The current state of deployments for the service.

*/ inline Service& AddDeployments(Deployment&& value) { m_deploymentsHasBeenSet = true; m_deployments.push_back(std::move(value)); return *this; } /** *

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

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

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

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

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

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

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

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

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

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

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

*/ inline Service& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

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

*/ inline Service& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

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

*/ inline Service& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

The event stream for your service. A maximum of 100 of the latest events are * displayed.

*/ inline const Aws::Vector& GetEvents() const{ return m_events; } /** *

The event stream for your service. A maximum of 100 of the latest events are * displayed.

*/ inline bool EventsHasBeenSet() const { return m_eventsHasBeenSet; } /** *

The event stream for your service. A maximum of 100 of the latest events are * displayed.

*/ inline void SetEvents(const Aws::Vector& value) { m_eventsHasBeenSet = true; m_events = value; } /** *

The event stream for your service. A maximum of 100 of the latest events are * displayed.

*/ inline void SetEvents(Aws::Vector&& value) { m_eventsHasBeenSet = true; m_events = std::move(value); } /** *

The event stream for your service. A maximum of 100 of the latest events are * displayed.

*/ inline Service& WithEvents(const Aws::Vector& value) { SetEvents(value); return *this;} /** *

The event stream for your service. A maximum of 100 of the latest events are * displayed.

*/ inline Service& WithEvents(Aws::Vector&& value) { SetEvents(std::move(value)); return *this;} /** *

The event stream for your service. A maximum of 100 of the latest events are * displayed.

*/ inline Service& AddEvents(const ServiceEvent& value) { m_eventsHasBeenSet = true; m_events.push_back(value); return *this; } /** *

The event stream for your service. A maximum of 100 of the latest events are * displayed.

*/ inline Service& AddEvents(ServiceEvent&& value) { m_eventsHasBeenSet = true; m_events.push_back(std::move(value)); return *this; } /** *

The Unix timestamp for the time when the service was created.

*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *

The Unix timestamp for the time when the service was created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

The Unix timestamp for the time when the service was created.

*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

The Unix timestamp for the time when the service was created.

*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

The Unix timestamp for the time when the service was created.

*/ inline Service& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** *

The Unix timestamp for the time when the service was created.

*/ inline Service& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(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 Service& WithPlacementConstraints(const Aws::Vector& value) { SetPlacementConstraints(value); return *this;} /** *

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

The placement constraints for the tasks in the service.

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

The placement strategy that determines how tasks for the service are * placed.

*/ inline const Aws::Vector& GetPlacementStrategy() const{ return m_placementStrategy; } /** *

The placement strategy that determines how tasks for the service are * placed.

*/ inline bool PlacementStrategyHasBeenSet() const { return m_placementStrategyHasBeenSet; } /** *

The placement strategy that determines how tasks for the service are * placed.

*/ inline void SetPlacementStrategy(const Aws::Vector& value) { m_placementStrategyHasBeenSet = true; m_placementStrategy = value; } /** *

The placement strategy that determines how tasks for the service are * placed.

*/ inline void SetPlacementStrategy(Aws::Vector&& value) { m_placementStrategyHasBeenSet = true; m_placementStrategy = std::move(value); } /** *

The placement strategy that determines how tasks for the service are * placed.

*/ inline Service& WithPlacementStrategy(const Aws::Vector& value) { SetPlacementStrategy(value); return *this;} /** *

The placement strategy that determines how tasks for the service are * placed.

*/ inline Service& WithPlacementStrategy(Aws::Vector&& value) { SetPlacementStrategy(std::move(value)); return *this;} /** *

The placement strategy that determines how tasks for the service are * placed.

*/ inline Service& AddPlacementStrategy(const PlacementStrategy& value) { m_placementStrategyHasBeenSet = true; m_placementStrategy.push_back(value); return *this; } /** *

The placement strategy that determines how tasks for the service are * placed.

*/ inline Service& AddPlacementStrategy(PlacementStrategy&& value) { m_placementStrategyHasBeenSet = true; m_placementStrategy.push_back(std::move(value)); return *this; } /** *

The VPC subnet and security group configuration for tasks that receive their * own elastic network interface by using the awsvpc networking * mode.

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

The VPC subnet and security group configuration for tasks that receive their * own elastic network interface by using the awsvpc networking * mode.

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

The VPC subnet and security group configuration for tasks that receive their * own elastic network interface by using the awsvpc networking * mode.

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

The VPC subnet and security group configuration for tasks that receive their * own elastic network interface by using the awsvpc networking * mode.

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

The VPC subnet and security group configuration for tasks that receive their * own elastic network interface by using the awsvpc networking * mode.

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

The VPC subnet and security group configuration for tasks that receive their * own elastic network interface by using the awsvpc networking * mode.

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

The period of time, in seconds, that the Amazon ECS service scheduler ignores * unhealthy Elastic Load Balancing target health checks after a task has first * started.

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

The period of time, in seconds, that the Amazon ECS service scheduler ignores * unhealthy Elastic Load Balancing target health checks after a task has first * started.

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

The period of time, in seconds, that the Amazon ECS service scheduler ignores * unhealthy Elastic Load Balancing target health checks after a task has first * started.

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

The period of time, in seconds, that the Amazon ECS service scheduler ignores * unhealthy Elastic Load Balancing target health checks after a task has first * started.

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

The scheduling strategy to use for the service. For more information, see Services.

*

There are two service scheduler strategies available.

  • * REPLICA-The replica scheduling strategy places and maintains the * desired number of tasks across your cluster. By default, the service scheduler * spreads tasks across Availability Zones. You can use task placement strategies * and constraints to customize task placement decisions.

  • * DAEMON-The daemon scheduling strategy deploys exactly one task on * each active container instance. This task meets all of the task placement * constraints that you specify in your cluster. The service scheduler also * evaluates the task placement constraints for running tasks. It stop tasks that * don't meet the placement constraints.

    Fargate tasks don't support * the DAEMON scheduling strategy.

*/ inline const SchedulingStrategy& GetSchedulingStrategy() const{ return m_schedulingStrategy; } /** *

The scheduling strategy to use for the service. For more information, see Services.

*

There are two service scheduler strategies available.

  • * REPLICA-The replica scheduling strategy places and maintains the * desired number of tasks across your cluster. By default, the service scheduler * spreads tasks across Availability Zones. You can use task placement strategies * and constraints to customize task placement decisions.

  • * DAEMON-The daemon scheduling strategy deploys exactly one task on * each active container instance. This task meets all of the task placement * constraints that you specify in your cluster. The service scheduler also * evaluates the task placement constraints for running tasks. It stop tasks that * don't meet the placement constraints.

    Fargate tasks don't support * the DAEMON scheduling strategy.

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

The scheduling strategy to use for the service. For more information, see Services.

*

There are two service scheduler strategies available.

  • * REPLICA-The replica scheduling strategy places and maintains the * desired number of tasks across your cluster. By default, the service scheduler * spreads tasks across Availability Zones. You can use task placement strategies * and constraints to customize task placement decisions.

  • * DAEMON-The daemon scheduling strategy deploys exactly one task on * each active container instance. This task meets all of the task placement * constraints that you specify in your cluster. The service scheduler also * evaluates the task placement constraints for running tasks. It stop tasks that * don't meet the placement constraints.

    Fargate tasks don't support * the DAEMON scheduling strategy.

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

The scheduling strategy to use for the service. For more information, see Services.

*

There are two service scheduler strategies available.

  • * REPLICA-The replica scheduling strategy places and maintains the * desired number of tasks across your cluster. By default, the service scheduler * spreads tasks across Availability Zones. You can use task placement strategies * and constraints to customize task placement decisions.

  • * DAEMON-The daemon scheduling strategy deploys exactly one task on * each active container instance. This task meets all of the task placement * constraints that you specify in your cluster. The service scheduler also * evaluates the task placement constraints for running tasks. It stop tasks that * don't meet the placement constraints.

    Fargate tasks don't support * the DAEMON scheduling strategy.

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

The scheduling strategy to use for the service. For more information, see Services.

*

There are two service scheduler strategies available.

  • * REPLICA-The replica scheduling strategy places and maintains the * desired number of tasks across your cluster. By default, the service scheduler * spreads tasks across Availability Zones. You can use task placement strategies * and constraints to customize task placement decisions.

  • * DAEMON-The daemon scheduling strategy deploys exactly one task on * each active container instance. This task meets all of the task placement * constraints that you specify in your cluster. The service scheduler also * evaluates the task placement constraints for running tasks. It stop tasks that * don't meet the placement constraints.

    Fargate tasks don't support * the DAEMON scheduling strategy.

*/ inline Service& WithSchedulingStrategy(const SchedulingStrategy& value) { SetSchedulingStrategy(value); return *this;} /** *

The scheduling strategy to use for the service. For more information, see Services.

*

There are two service scheduler strategies available.

  • * REPLICA-The replica scheduling strategy places and maintains the * desired number of tasks across your cluster. By default, the service scheduler * spreads tasks across Availability Zones. You can use task placement strategies * and constraints to customize task placement decisions.

  • * DAEMON-The daemon scheduling strategy deploys exactly one task on * each active container instance. This task meets all of the task placement * constraints that you specify in your cluster. The service scheduler also * evaluates the task placement constraints for running tasks. It stop tasks that * don't meet the placement constraints.

    Fargate tasks don't support * the DAEMON scheduling strategy.

*/ inline Service& WithSchedulingStrategy(SchedulingStrategy&& value) { SetSchedulingStrategy(std::move(value)); return *this;} /** *

The deployment controller type the service is using.

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

The deployment controller type the service is using.

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

The deployment controller type the service is using.

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

The deployment controller type the service is using.

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

The deployment controller type the service is using.

*/ inline Service& WithDeploymentController(const DeploymentController& value) { SetDeploymentController(value); return *this;} /** *

The deployment controller type the service is using.

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

The metadata that you apply to the service to help you categorize and * organize them. Each tag consists of a key and an optional value. You define bot * the key and value.

The following basic restrictions apply to tags:

*
  • Maximum number of tags per resource - 50

  • For each * resource, each tag key must be unique, and each tag key can have only one * value.

  • Maximum key length - 128 Unicode characters in * UTF-8

  • Maximum value length - 256 Unicode characters in * UTF-8

  • If your tagging schema is used across multiple services * and resources, remember that other services may have restrictions on allowed * characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @.

  • *
  • Tag keys and values are case-sensitive.

  • Do not use * aws:, AWS:, or any upper or lowercase combination of * such as a prefix for either keys or values as it is reserved for Amazon Web * Services use. You cannot edit or delete tag keys or values with this prefix. * Tags with this prefix do not count against your tags per resource limit.

    *
*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The metadata that you apply to the service to help you categorize and * organize them. Each tag consists of a key and an optional value. You define bot * the key and value.

The following basic restrictions apply to tags:

*
  • Maximum number of tags per resource - 50

  • For each * resource, each tag key must be unique, and each tag key can have only one * value.

  • Maximum key length - 128 Unicode characters in * UTF-8

  • Maximum value length - 256 Unicode characters in * UTF-8

  • If your tagging schema is used across multiple services * and resources, remember that other services may have restrictions on allowed * characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @.

  • *
  • Tag keys and values are case-sensitive.

  • Do not use * aws:, AWS:, or any upper or lowercase combination of * such as a prefix for either keys or values as it is reserved for Amazon Web * Services use. You cannot edit or delete tag keys or values with this prefix. * Tags with this prefix do not count against your tags per resource limit.

    *
*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The metadata that you apply to the service to help you categorize and * organize them. Each tag consists of a key and an optional value. You define bot * the key and value.

The following basic restrictions apply to tags:

*
  • Maximum number of tags per resource - 50

  • For each * resource, each tag key must be unique, and each tag key can have only one * value.

  • Maximum key length - 128 Unicode characters in * UTF-8

  • Maximum value length - 256 Unicode characters in * UTF-8

  • If your tagging schema is used across multiple services * and resources, remember that other services may have restrictions on allowed * characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @.

  • *
  • Tag keys and values are case-sensitive.

  • Do not use * aws:, AWS:, or any upper or lowercase combination of * such as a prefix for either keys or values as it is reserved for Amazon Web * Services use. You cannot edit or delete tag keys or values with this prefix. * Tags with this prefix do not count against your tags per resource limit.

    *
*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The metadata that you apply to the service to help you categorize and * organize them. Each tag consists of a key and an optional value. You define bot * the key and value.

The following basic restrictions apply to tags:

*
  • Maximum number of tags per resource - 50

  • For each * resource, each tag key must be unique, and each tag key can have only one * value.

  • Maximum key length - 128 Unicode characters in * UTF-8

  • Maximum value length - 256 Unicode characters in * UTF-8

  • If your tagging schema is used across multiple services * and resources, remember that other services may have restrictions on allowed * characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @.

  • *
  • Tag keys and values are case-sensitive.

  • Do not use * aws:, AWS:, or any upper or lowercase combination of * such as a prefix for either keys or values as it is reserved for Amazon Web * Services use. You cannot edit or delete tag keys or values with this prefix. * Tags with this prefix do not count against your tags per resource limit.

    *
*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The metadata that you apply to the service to help you categorize and * organize them. Each tag consists of a key and an optional value. You define bot * the key and value.

The following basic restrictions apply to tags:

*
  • Maximum number of tags per resource - 50

  • For each * resource, each tag key must be unique, and each tag key can have only one * value.

  • Maximum key length - 128 Unicode characters in * UTF-8

  • Maximum value length - 256 Unicode characters in * UTF-8

  • If your tagging schema is used across multiple services * and resources, remember that other services may have restrictions on allowed * characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @.

  • *
  • Tag keys and values are case-sensitive.

  • Do not use * aws:, AWS:, or any upper or lowercase combination of * such as a prefix for either keys or values as it is reserved for Amazon Web * Services use. You cannot edit or delete tag keys or values with this prefix. * Tags with this prefix do not count against your tags per resource limit.

    *
*/ inline Service& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The metadata that you apply to the service to help you categorize and * organize them. Each tag consists of a key and an optional value. You define bot * the key and value.

The following basic restrictions apply to tags:

*
  • Maximum number of tags per resource - 50

  • For each * resource, each tag key must be unique, and each tag key can have only one * value.

  • Maximum key length - 128 Unicode characters in * UTF-8

  • Maximum value length - 256 Unicode characters in * UTF-8

  • If your tagging schema is used across multiple services * and resources, remember that other services may have restrictions on allowed * characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @.

  • *
  • Tag keys and values are case-sensitive.

  • Do not use * aws:, AWS:, or any upper or lowercase combination of * such as a prefix for either keys or values as it is reserved for Amazon Web * Services use. You cannot edit or delete tag keys or values with this prefix. * Tags with this prefix do not count against your tags per resource limit.

    *
*/ inline Service& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The metadata that you apply to the service to help you categorize and * organize them. Each tag consists of a key and an optional value. You define bot * the key and value.

The following basic restrictions apply to tags:

*
  • Maximum number of tags per resource - 50

  • For each * resource, each tag key must be unique, and each tag key can have only one * value.

  • Maximum key length - 128 Unicode characters in * UTF-8

  • Maximum value length - 256 Unicode characters in * UTF-8

  • If your tagging schema is used across multiple services * and resources, remember that other services may have restrictions on allowed * characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @.

  • *
  • Tag keys and values are case-sensitive.

  • Do not use * aws:, AWS:, or any upper or lowercase combination of * such as a prefix for either keys or values as it is reserved for Amazon Web * Services use. You cannot edit or delete tag keys or values with this prefix. * Tags with this prefix do not count against your tags per resource limit.

    *
*/ inline Service& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The metadata that you apply to the service to help you categorize and * organize them. Each tag consists of a key and an optional value. You define bot * the key and value.

The following basic restrictions apply to tags:

*
  • Maximum number of tags per resource - 50

  • For each * resource, each tag key must be unique, and each tag key can have only one * value.

  • Maximum key length - 128 Unicode characters in * UTF-8

  • Maximum value length - 256 Unicode characters in * UTF-8

  • If your tagging schema is used across multiple services * and resources, remember that other services may have restrictions on allowed * characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @.

  • *
  • Tag keys and values are case-sensitive.

  • Do not use * aws:, AWS:, or any upper or lowercase combination of * such as a prefix for either keys or values as it is reserved for Amazon Web * Services use. You cannot edit or delete tag keys or values with this prefix. * Tags with this prefix do not count against your tags per resource limit.

    *
*/ inline Service& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The principal that created the service.

*/ inline const Aws::String& GetCreatedBy() const{ return m_createdBy; } /** *

The principal that created the service.

*/ inline bool CreatedByHasBeenSet() const { return m_createdByHasBeenSet; } /** *

The principal that created the service.

*/ inline void SetCreatedBy(const Aws::String& value) { m_createdByHasBeenSet = true; m_createdBy = value; } /** *

The principal that created the service.

*/ inline void SetCreatedBy(Aws::String&& value) { m_createdByHasBeenSet = true; m_createdBy = std::move(value); } /** *

The principal that created the service.

*/ inline void SetCreatedBy(const char* value) { m_createdByHasBeenSet = true; m_createdBy.assign(value); } /** *

The principal that created the service.

*/ inline Service& WithCreatedBy(const Aws::String& value) { SetCreatedBy(value); return *this;} /** *

The principal that created the service.

*/ inline Service& WithCreatedBy(Aws::String&& value) { SetCreatedBy(std::move(value)); return *this;} /** *

The principal that created the service.

*/ inline Service& WithCreatedBy(const char* value) { SetCreatedBy(value); return *this;} /** *

Determines whether to use Amazon ECS managed tags for the tasks in the * service. For more information, see Tagging * Your Amazon ECS Resources in the Amazon Elastic Container Service * Developer Guide.

*/ inline bool GetEnableECSManagedTags() const{ return m_enableECSManagedTags; } /** *

Determines whether to use Amazon ECS managed tags for the tasks in the * service. For more information, see Tagging * Your Amazon ECS Resources in the Amazon Elastic Container Service * Developer Guide.

*/ inline bool EnableECSManagedTagsHasBeenSet() const { return m_enableECSManagedTagsHasBeenSet; } /** *

Determines whether to use Amazon ECS managed tags for the tasks in the * service. For more information, see Tagging * Your Amazon ECS Resources in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetEnableECSManagedTags(bool value) { m_enableECSManagedTagsHasBeenSet = true; m_enableECSManagedTags = value; } /** *

Determines whether to use Amazon ECS managed tags for the tasks in the * service. For more information, see Tagging * Your Amazon ECS Resources in the Amazon Elastic Container Service * Developer Guide.

*/ inline Service& WithEnableECSManagedTags(bool value) { SetEnableECSManagedTags(value); return *this;} /** *

Determines whether to propagate the tags from the task definition or the * service to the task. If no value is specified, the tags aren't propagated.

*/ inline const PropagateTags& GetPropagateTags() const{ return m_propagateTags; } /** *

Determines whether to propagate the tags from the task definition or the * service to the task. If no value is specified, the tags aren't propagated.

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

Determines whether to propagate the tags from the task definition or the * service to the task. If no value is specified, the tags aren't propagated.

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

Determines whether to propagate the tags from the task definition or the * service to the task. If no value is specified, the tags aren't propagated.

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

Determines whether to propagate the tags from the task definition or the * service to the task. If no value is specified, the tags aren't propagated.

*/ inline Service& WithPropagateTags(const PropagateTags& value) { SetPropagateTags(value); return *this;} /** *

Determines whether to propagate the tags from the task definition or the * service to the task. If no value is specified, the tags aren't propagated.

*/ inline Service& WithPropagateTags(PropagateTags&& value) { SetPropagateTags(std::move(value)); return *this;} /** *

Determines whether the execute command functionality is turned on for the * service. If true, the execute command functionality is turned on * for all containers in tasks as part of the service.

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

Determines whether the execute command functionality is turned on for the * service. If true, the execute command functionality is turned on * for all containers in tasks as part of the service.

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

Determines whether the execute command functionality is turned on for the * service. If true, the execute command functionality is turned on * for all containers in tasks as part of the service.

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

Determines whether the execute command functionality is turned on for the * service. If true, the execute command functionality is turned on * for all containers in tasks as part of the service.

*/ inline Service& WithEnableExecuteCommand(bool value) { SetEnableExecuteCommand(value); return *this;} private: Aws::String m_serviceArn; bool m_serviceArnHasBeenSet = false; Aws::String m_serviceName; bool m_serviceNameHasBeenSet = false; Aws::String m_clusterArn; bool m_clusterArnHasBeenSet = false; Aws::Vector m_loadBalancers; bool m_loadBalancersHasBeenSet = false; Aws::Vector m_serviceRegistries; bool m_serviceRegistriesHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; int m_desiredCount; bool m_desiredCountHasBeenSet = false; int m_runningCount; bool m_runningCountHasBeenSet = false; int m_pendingCount; bool m_pendingCountHasBeenSet = false; LaunchType m_launchType; bool m_launchTypeHasBeenSet = false; Aws::Vector m_capacityProviderStrategy; bool m_capacityProviderStrategyHasBeenSet = false; Aws::String m_platformVersion; bool m_platformVersionHasBeenSet = false; Aws::String m_platformFamily; bool m_platformFamilyHasBeenSet = false; Aws::String m_taskDefinition; bool m_taskDefinitionHasBeenSet = false; DeploymentConfiguration m_deploymentConfiguration; bool m_deploymentConfigurationHasBeenSet = false; Aws::Vector m_taskSets; bool m_taskSetsHasBeenSet = false; Aws::Vector m_deployments; bool m_deploymentsHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::Vector m_events; bool m_eventsHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::Vector m_placementConstraints; bool m_placementConstraintsHasBeenSet = false; Aws::Vector m_placementStrategy; bool m_placementStrategyHasBeenSet = false; NetworkConfiguration m_networkConfiguration; bool m_networkConfigurationHasBeenSet = false; int m_healthCheckGracePeriodSeconds; bool m_healthCheckGracePeriodSecondsHasBeenSet = false; SchedulingStrategy m_schedulingStrategy; bool m_schedulingStrategyHasBeenSet = false; DeploymentController m_deploymentController; bool m_deploymentControllerHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_createdBy; bool m_createdByHasBeenSet = false; bool m_enableECSManagedTags; bool m_enableECSManagedTagsHasBeenSet = false; PropagateTags m_propagateTags; bool m_propagateTagsHasBeenSet = false; bool m_enableExecuteCommand; bool m_enableExecuteCommandHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws