/** * 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 namespace Aws { namespace ECS { namespace Model { /** */ class UpdateServiceRequest : public ECSRequest { public: AWS_ECS_API UpdateServiceRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "UpdateService"; } AWS_ECS_API Aws::String SerializePayload() const override; AWS_ECS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The short name or full Amazon Resource Name (ARN) of the cluster that your * service runs on. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster that your * service runs on. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster that your * service runs on. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster that your * service runs on. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster that your * service runs on. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster that your * service runs on. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster that your * service runs on. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster that your * service runs on. If you do not specify a cluster, the default cluster is * assumed.

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

The name of the service to update.

*/ inline const Aws::String& GetService() const{ return m_service; } /** *

The name of the service to update.

*/ inline bool ServiceHasBeenSet() const { return m_serviceHasBeenSet; } /** *

The name of the service to update.

*/ inline void SetService(const Aws::String& value) { m_serviceHasBeenSet = true; m_service = value; } /** *

The name of the service to update.

*/ inline void SetService(Aws::String&& value) { m_serviceHasBeenSet = true; m_service = std::move(value); } /** *

The name of the service to update.

*/ inline void SetService(const char* value) { m_serviceHasBeenSet = true; m_service.assign(value); } /** *

The name of the service to update.

*/ inline UpdateServiceRequest& WithService(const Aws::String& value) { SetService(value); return *this;} /** *

The name of the service to update.

*/ inline UpdateServiceRequest& WithService(Aws::String&& value) { SetService(std::move(value)); return *this;} /** *

The name of the service to update.

*/ inline UpdateServiceRequest& WithService(const char* value) { SetService(value); return *this;} /** *

The number of instantiations of the task to place and keep running in your * service.

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

The number of instantiations of the task to place and keep running in your * service.

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

The number of instantiations of the task to place and keep running in your * service.

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

The number of instantiations of the task to place and keep running in your * service.

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

The family and revision * (family:revision) or full ARN of the task definition to run in your * service. If a revision is not specified, the latest * ACTIVE revision is used. If you modify the task definition with * UpdateService, Amazon ECS spawns a task with the new version of the * task definition and then stops an old task after the new version is running.

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

The family and revision * (family:revision) or full ARN of the task definition to run in your * service. If a revision is not specified, the latest * ACTIVE revision is used. If you modify the task definition with * UpdateService, Amazon ECS spawns a task with the new version of the * task definition and then stops an old task after the new version is running.

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

The family and revision * (family:revision) or full ARN of the task definition to run in your * service. If a revision is not specified, the latest * ACTIVE revision is used. If you modify the task definition with * UpdateService, Amazon ECS spawns a task with the new version of the * task definition and then stops an old task after the new version is running.

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

The family and revision * (family:revision) or full ARN of the task definition to run in your * service. If a revision is not specified, the latest * ACTIVE revision is used. If you modify the task definition with * UpdateService, Amazon ECS spawns a task with the new version of the * task definition and then stops an old task after the new version is running.

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

The family and revision * (family:revision) or full ARN of the task definition to run in your * service. If a revision is not specified, the latest * ACTIVE revision is used. If you modify the task definition with * UpdateService, Amazon ECS spawns a task with the new version of the * task definition and then stops an old task after the new version is running.

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

The family and revision * (family:revision) or full ARN of the task definition to run in your * service. If a revision is not specified, the latest * ACTIVE revision is used. If you modify the task definition with * UpdateService, Amazon ECS spawns a task with the new version of the * task definition and then stops an old task after the new version is running.

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

The family and revision * (family:revision) or full ARN of the task definition to run in your * service. If a revision is not specified, the latest * ACTIVE revision is used. If you modify the task definition with * UpdateService, Amazon ECS spawns a task with the new version of the * task definition and then stops an old task after the new version is running.

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

The family and revision * (family:revision) or full ARN of the task definition to run in your * service. If a revision is not specified, the latest * ACTIVE revision is used. If you modify the task definition with * UpdateService, Amazon ECS spawns a task with the new version of the * task definition and then stops an old task after the new version is running.

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

The capacity provider strategy to update the service to use.

if the * service uses the default capacity provider strategy for the cluster, the service * can be updated to use one or more capacity providers as opposed to the default * capacity provider strategy. However, when a service is using a capacity provider * strategy that's not the default capacity provider strategy, the service can't be * updated to use the cluster's default capacity provider strategy.

A * capacity provider strategy consists of one or more capacity providers along with * the base and weight to assign to them. A capacity * provider must be associated with the cluster to be used in a capacity provider * strategy. The PutClusterCapacityProviders API is used to associate a * capacity provider with a cluster. Only capacity providers with an * ACTIVE or UPDATING status can be used.

If * specifying a capacity provider that uses an Auto Scaling group, the capacity * provider must already be created. New capacity providers can be created with the * CreateCapacityProvider API operation.

To use a Fargate capacity * provider, specify either the FARGATE or FARGATE_SPOT * capacity providers. The Fargate capacity providers are available to all accounts * and only need to be associated with a cluster to be used.

The * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*

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

The capacity provider strategy to update the service to use.

if the * service uses the default capacity provider strategy for the cluster, the service * can be updated to use one or more capacity providers as opposed to the default * capacity provider strategy. However, when a service is using a capacity provider * strategy that's not the default capacity provider strategy, the service can't be * updated to use the cluster's default capacity provider strategy.

A * capacity provider strategy consists of one or more capacity providers along with * the base and weight to assign to them. A capacity * provider must be associated with the cluster to be used in a capacity provider * strategy. The PutClusterCapacityProviders API is used to associate a * capacity provider with a cluster. Only capacity providers with an * ACTIVE or UPDATING status can be used.

If * specifying a capacity provider that uses an Auto Scaling group, the capacity * provider must already be created. New capacity providers can be created with the * CreateCapacityProvider API operation.

To use a Fargate capacity * provider, specify either the FARGATE or FARGATE_SPOT * capacity providers. The Fargate capacity providers are available to all accounts * and only need to be associated with a cluster to be used.

The * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*

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

The capacity provider strategy to update the service to use.

if the * service uses the default capacity provider strategy for the cluster, the service * can be updated to use one or more capacity providers as opposed to the default * capacity provider strategy. However, when a service is using a capacity provider * strategy that's not the default capacity provider strategy, the service can't be * updated to use the cluster's default capacity provider strategy.

A * capacity provider strategy consists of one or more capacity providers along with * the base and weight to assign to them. A capacity * provider must be associated with the cluster to be used in a capacity provider * strategy. The PutClusterCapacityProviders API is used to associate a * capacity provider with a cluster. Only capacity providers with an * ACTIVE or UPDATING status can be used.

If * specifying a capacity provider that uses an Auto Scaling group, the capacity * provider must already be created. New capacity providers can be created with the * CreateCapacityProvider API operation.

To use a Fargate capacity * provider, specify either the FARGATE or FARGATE_SPOT * capacity providers. The Fargate capacity providers are available to all accounts * and only need to be associated with a cluster to be used.

The * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*

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

The capacity provider strategy to update the service to use.

if the * service uses the default capacity provider strategy for the cluster, the service * can be updated to use one or more capacity providers as opposed to the default * capacity provider strategy. However, when a service is using a capacity provider * strategy that's not the default capacity provider strategy, the service can't be * updated to use the cluster's default capacity provider strategy.

A * capacity provider strategy consists of one or more capacity providers along with * the base and weight to assign to them. A capacity * provider must be associated with the cluster to be used in a capacity provider * strategy. The PutClusterCapacityProviders API is used to associate a * capacity provider with a cluster. Only capacity providers with an * ACTIVE or UPDATING status can be used.

If * specifying a capacity provider that uses an Auto Scaling group, the capacity * provider must already be created. New capacity providers can be created with the * CreateCapacityProvider API operation.

To use a Fargate capacity * provider, specify either the FARGATE or FARGATE_SPOT * capacity providers. The Fargate capacity providers are available to all accounts * and only need to be associated with a cluster to be used.

The * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*

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

The capacity provider strategy to update the service to use.

if the * service uses the default capacity provider strategy for the cluster, the service * can be updated to use one or more capacity providers as opposed to the default * capacity provider strategy. However, when a service is using a capacity provider * strategy that's not the default capacity provider strategy, the service can't be * updated to use the cluster's default capacity provider strategy.

A * capacity provider strategy consists of one or more capacity providers along with * the base and weight to assign to them. A capacity * provider must be associated with the cluster to be used in a capacity provider * strategy. The PutClusterCapacityProviders API is used to associate a * capacity provider with a cluster. Only capacity providers with an * ACTIVE or UPDATING status can be used.

If * specifying a capacity provider that uses an Auto Scaling group, the capacity * provider must already be created. New capacity providers can be created with the * CreateCapacityProvider API operation.

To use a Fargate capacity * provider, specify either the FARGATE or FARGATE_SPOT * capacity providers. The Fargate capacity providers are available to all accounts * and only need to be associated with a cluster to be used.

The * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*

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

The capacity provider strategy to update the service to use.

if the * service uses the default capacity provider strategy for the cluster, the service * can be updated to use one or more capacity providers as opposed to the default * capacity provider strategy. However, when a service is using a capacity provider * strategy that's not the default capacity provider strategy, the service can't be * updated to use the cluster's default capacity provider strategy.

A * capacity provider strategy consists of one or more capacity providers along with * the base and weight to assign to them. A capacity * provider must be associated with the cluster to be used in a capacity provider * strategy. The PutClusterCapacityProviders API is used to associate a * capacity provider with a cluster. Only capacity providers with an * ACTIVE or UPDATING status can be used.

If * specifying a capacity provider that uses an Auto Scaling group, the capacity * provider must already be created. New capacity providers can be created with the * CreateCapacityProvider API operation.

To use a Fargate capacity * provider, specify either the FARGATE or FARGATE_SPOT * capacity providers. The Fargate capacity providers are available to all accounts * and only need to be associated with a cluster to be used.

The * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*

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

The capacity provider strategy to update the service to use.

if the * service uses the default capacity provider strategy for the cluster, the service * can be updated to use one or more capacity providers as opposed to the default * capacity provider strategy. However, when a service is using a capacity provider * strategy that's not the default capacity provider strategy, the service can't be * updated to use the cluster's default capacity provider strategy.

A * capacity provider strategy consists of one or more capacity providers along with * the base and weight to assign to them. A capacity * provider must be associated with the cluster to be used in a capacity provider * strategy. The PutClusterCapacityProviders API is used to associate a * capacity provider with a cluster. Only capacity providers with an * ACTIVE or UPDATING status can be used.

If * specifying a capacity provider that uses an Auto Scaling group, the capacity * provider must already be created. New capacity providers can be created with the * CreateCapacityProvider API operation.

To use a Fargate capacity * provider, specify either the FARGATE or FARGATE_SPOT * capacity providers. The Fargate capacity providers are available to all accounts * and only need to be associated with a cluster to be used.

The * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*

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

The capacity provider strategy to update the service to use.

if the * service uses the default capacity provider strategy for the cluster, the service * can be updated to use one or more capacity providers as opposed to the default * capacity provider strategy. However, when a service is using a capacity provider * strategy that's not the default capacity provider strategy, the service can't be * updated to use the cluster's default capacity provider strategy.

A * capacity provider strategy consists of one or more capacity providers along with * the base and weight to assign to them. A capacity * provider must be associated with the cluster to be used in a capacity provider * strategy. The PutClusterCapacityProviders API is used to associate a * capacity provider with a cluster. Only capacity providers with an * ACTIVE or UPDATING status can be used.

If * specifying a capacity provider that uses an Auto Scaling group, the capacity * provider must already be created. New capacity providers can be created with the * CreateCapacityProvider API operation.

To use a Fargate capacity * provider, specify either the FARGATE or FARGATE_SPOT * capacity providers. The Fargate capacity providers are available to all accounts * and only need to be associated with a cluster to be used.

The * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*

*/ inline UpdateServiceRequest& AddCapacityProviderStrategy(CapacityProviderStrategyItem&& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy.push_back(std::move(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 UpdateServiceRequest& 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 UpdateServiceRequest& WithDeploymentConfiguration(DeploymentConfiguration&& value) { SetDeploymentConfiguration(std::move(value)); return *this;} /** *

An object representing the network configuration for the service.

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

An object representing the network configuration for the service.

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

An object representing the network configuration for the service.

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

An object representing the network configuration for the service.

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

An object representing the network configuration for the service.

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

An object representing the network configuration for the service.

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

An array of task placement constraint objects to update the service to use. * If no value is specified, the existing placement constraints for the service * will remain unchanged. If this value is specified, it will override any existing * placement constraints defined for the service. To remove all existing placement * constraints, specify an empty array.

You can specify a maximum of 10 * constraints for each task. This limit includes constraints in the task * definition and those specified at runtime.

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

An array of task placement constraint objects to update the service to use. * If no value is specified, the existing placement constraints for the service * will remain unchanged. If this value is specified, it will override any existing * placement constraints defined for the service. To remove all existing placement * constraints, specify an empty array.

You can specify a maximum of 10 * constraints for each task. This limit includes constraints in the task * definition and those specified at runtime.

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

An array of task placement constraint objects to update the service to use. * If no value is specified, the existing placement constraints for the service * will remain unchanged. If this value is specified, it will override any existing * placement constraints defined for the service. To remove all existing placement * constraints, specify an empty array.

You can specify a maximum of 10 * constraints for each task. This limit includes constraints in the task * definition and those specified at runtime.

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

An array of task placement constraint objects to update the service to use. * If no value is specified, the existing placement constraints for the service * will remain unchanged. If this value is specified, it will override any existing * placement constraints defined for the service. To remove all existing placement * constraints, specify an empty array.

You can specify a maximum of 10 * constraints for each task. This limit includes constraints in the task * definition and those specified at runtime.

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

An array of task placement constraint objects to update the service to use. * If no value is specified, the existing placement constraints for the service * will remain unchanged. If this value is specified, it will override any existing * placement constraints defined for the service. To remove all existing placement * constraints, specify an empty array.

You can specify a maximum of 10 * constraints for each task. This limit includes constraints in the task * definition and those specified at runtime.

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

An array of task placement constraint objects to update the service to use. * If no value is specified, the existing placement constraints for the service * will remain unchanged. If this value is specified, it will override any existing * placement constraints defined for the service. To remove all existing placement * constraints, specify an empty array.

You can specify a maximum of 10 * constraints for each task. This limit includes constraints in the task * definition and those specified at runtime.

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

An array of task placement constraint objects to update the service to use. * If no value is specified, the existing placement constraints for the service * will remain unchanged. If this value is specified, it will override any existing * placement constraints defined for the service. To remove all existing placement * constraints, specify an empty array.

You can specify a maximum of 10 * constraints for each task. This limit includes constraints in the task * definition and those specified at runtime.

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

An array of task placement constraint objects to update the service to use. * If no value is specified, the existing placement constraints for the service * will remain unchanged. If this value is specified, it will override any existing * placement constraints defined for the service. To remove all existing placement * constraints, specify an empty array.

You can specify a maximum of 10 * constraints for each task. This limit includes constraints in the task * definition and those specified at runtime.

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

The task placement strategy objects to update the service to use. If no value * is specified, the existing placement strategy for the service will remain * unchanged. If this value is specified, it will override the existing placement * strategy defined for the service. To remove an existing placement strategy, * specify an empty object.

You can specify a maximum of five strategy rules * for each service.

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

The task placement strategy objects to update the service to use. If no value * is specified, the existing placement strategy for the service will remain * unchanged. If this value is specified, it will override the existing placement * strategy defined for the service. To remove an existing placement strategy, * specify an empty object.

You can specify a maximum of five strategy rules * for each service.

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

The task placement strategy objects to update the service to use. If no value * is specified, the existing placement strategy for the service will remain * unchanged. If this value is specified, it will override the existing placement * strategy defined for the service. To remove an existing placement strategy, * specify an empty object.

You can specify a maximum of five strategy rules * for each service.

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

The task placement strategy objects to update the service to use. If no value * is specified, the existing placement strategy for the service will remain * unchanged. If this value is specified, it will override the existing placement * strategy defined for the service. To remove an existing placement strategy, * specify an empty object.

You can specify a maximum of five strategy rules * for each service.

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

The task placement strategy objects to update the service to use. If no value * is specified, the existing placement strategy for the service will remain * unchanged. If this value is specified, it will override the existing placement * strategy defined for the service. To remove an existing placement strategy, * specify an empty object.

You can specify a maximum of five strategy rules * for each service.

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

The task placement strategy objects to update the service to use. If no value * is specified, the existing placement strategy for the service will remain * unchanged. If this value is specified, it will override the existing placement * strategy defined for the service. To remove an existing placement strategy, * specify an empty object.

You can specify a maximum of five strategy rules * for each service.

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

The task placement strategy objects to update the service to use. If no value * is specified, the existing placement strategy for the service will remain * unchanged. If this value is specified, it will override the existing placement * strategy defined for the service. To remove an existing placement strategy, * specify an empty object.

You can specify a maximum of five strategy rules * for each service.

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

The task placement strategy objects to update the service to use. If no value * is specified, the existing placement strategy for the service will remain * unchanged. If this value is specified, it will override the existing placement * strategy defined for the service. To remove an existing placement strategy, * specify an empty object.

You can specify a maximum of five strategy rules * for each service.

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

The platform version that your tasks in the service run on. A platform * version is only specified for tasks using the Fargate launch type. If a platform * version is not 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 that your tasks in the service run on. A platform * version is only specified for tasks using the Fargate launch type. If a platform * version is not 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 that your tasks in the service run on. A platform * version is only specified for tasks using the Fargate launch type. If a platform * version is not 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 that your tasks in the service run on. A platform * version is only specified for tasks using the Fargate launch type. If a platform * version is not 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 that your tasks in the service run on. A platform * version is only specified for tasks using the Fargate launch type. If a platform * version is not 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 that your tasks in the service run on. A platform * version is only specified for tasks using the Fargate launch type. If a platform * version is not specified, the LATEST platform version is used. For * more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version that your tasks in the service run on. A platform * version is only specified for tasks using the Fargate launch type. If a platform * version is not specified, the LATEST platform version is used. For * more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version that your tasks in the service run on. A platform * version is only specified for tasks using the Fargate launch type. If a platform * version is not specified, the LATEST platform version is used. For * more information, see Fargate * Platform Versions in the Amazon Elastic Container Service Developer * Guide.

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

Determines whether to force a new deployment of the service. By default, * deployments aren't forced. You can use this option to start a new deployment * with no service definition changes. For example, you can update a service's * tasks to use a newer Docker image with the same image/tag combination * (my_image:latest) or to roll Fargate tasks onto a newer platform * version.

*/ inline bool GetForceNewDeployment() const{ return m_forceNewDeployment; } /** *

Determines whether to force a new deployment of the service. By default, * deployments aren't forced. You can use this option to start a new deployment * with no service definition changes. For example, you can update a service's * tasks to use a newer Docker image with the same image/tag combination * (my_image:latest) or to roll Fargate tasks onto a newer platform * version.

*/ inline bool ForceNewDeploymentHasBeenSet() const { return m_forceNewDeploymentHasBeenSet; } /** *

Determines whether to force a new deployment of the service. By default, * deployments aren't forced. You can use this option to start a new deployment * with no service definition changes. For example, you can update a service's * tasks to use a newer Docker image with the same image/tag combination * (my_image:latest) or to roll Fargate tasks onto a newer platform * version.

*/ inline void SetForceNewDeployment(bool value) { m_forceNewDeploymentHasBeenSet = true; m_forceNewDeployment = value; } /** *

Determines whether to force a new deployment of the service. By default, * deployments aren't forced. You can use this option to start a new deployment * with no service definition changes. For example, you can update a service's * tasks to use a newer Docker image with the same image/tag combination * (my_image:latest) or to roll Fargate tasks onto a newer platform * version.

*/ inline UpdateServiceRequest& WithForceNewDeployment(bool value) { SetForceNewDeployment(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. This is only valid if your service is configured to use a load * balancer. If your service's tasks take a while to start and respond to Elastic * Load Balancing health checks, you can specify a health check grace period of up * to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler * ignores the Elastic Load Balancing health check status. This grace period can * prevent the ECS service scheduler from marking tasks as unhealthy and stopping * them before they have time to come up.

*/ 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. This is only valid if your service is configured to use a load * balancer. If your service's tasks take a while to start and respond to Elastic * Load Balancing health checks, you can specify a health check grace period of up * to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler * ignores the Elastic Load Balancing health check status. This grace period can * prevent the ECS service scheduler from marking tasks as unhealthy and stopping * them before they have time to come up.

*/ 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. This is only valid if your service is configured to use a load * balancer. If your service's tasks take a while to start and respond to Elastic * Load Balancing health checks, you can specify a health check grace period of up * to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler * ignores the Elastic Load Balancing health check status. This grace period can * prevent the ECS service scheduler from marking tasks as unhealthy and stopping * them before they have time to come up.

*/ 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. This is only valid if your service is configured to use a load * balancer. If your service's tasks take a while to start and respond to Elastic * Load Balancing health checks, you can specify a health check grace period of up * to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler * ignores the Elastic Load Balancing health check status. This grace period can * prevent the ECS service scheduler from marking tasks as unhealthy and stopping * them before they have time to come up.

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

If true, this enables execute command functionality on all task * containers.

If you do not want to override the value that was set when * the service was created, you can set this to null when performing * this action.

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

If true, this enables execute command functionality on all task * containers.

If you do not want to override the value that was set when * the service was created, you can set this to null when performing * this action.

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

If true, this enables execute command functionality on all task * containers.

If you do not want to override the value that was set when * the service was created, you can set this to null when performing * this action.

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

If true, this enables execute command functionality on all task * containers.

If you do not want to override the value that was set when * the service was created, you can set this to null when performing * this action.

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

Determines whether to turn on 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.

Only tasks launched after the update will reflect * the update. To update the tags on all tasks, set forceNewDeployment * to true, so that Amazon ECS starts new tasks with the updated * tags.

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

Determines whether to turn on 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.

Only tasks launched after the update will reflect * the update. To update the tags on all tasks, set forceNewDeployment * to true, so that Amazon ECS starts new tasks with the updated * tags.

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

Determines whether to turn on 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.

Only tasks launched after the update will reflect * the update. To update the tags on all tasks, set forceNewDeployment * to true, so that Amazon ECS starts new tasks with the updated * tags.

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

Determines whether to turn on 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.

Only tasks launched after the update will reflect * the update. To update the tags on all tasks, set forceNewDeployment * to true, so that Amazon ECS starts new tasks with the updated * tags.

*/ inline UpdateServiceRequest& WithEnableECSManagedTags(bool value) { SetEnableECSManagedTags(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.

When you add, update, or remove a load balancer * configuration, Amazon ECS starts new tasks with the updated Elastic Load * Balancing configuration, and then stops the old tasks when the new tasks are * running.

For services that use rolling updates, you can add, update, or * remove Elastic Load Balancing target groups. You can update from a single target * group to multiple target groups and from multiple target groups to a single * target group.

For services that use blue/green deployments, you can * update Elastic Load Balancing target groups by using CreateDeployment * through CodeDeploy. Note that multiple target groups are not supported * for blue/green deployments. For more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

For services that use the external * deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. * Note that multiple target groups are not supported for external deployments. For * more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

You can remove existing * loadBalancers by passing an empty list.

*/ 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.

When you add, update, or remove a load balancer * configuration, Amazon ECS starts new tasks with the updated Elastic Load * Balancing configuration, and then stops the old tasks when the new tasks are * running.

For services that use rolling updates, you can add, update, or * remove Elastic Load Balancing target groups. You can update from a single target * group to multiple target groups and from multiple target groups to a single * target group.

For services that use blue/green deployments, you can * update Elastic Load Balancing target groups by using CreateDeployment * through CodeDeploy. Note that multiple target groups are not supported * for blue/green deployments. For more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

For services that use the external * deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. * Note that multiple target groups are not supported for external deployments. For * more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

You can remove existing * loadBalancers by passing an empty list.

*/ 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.

When you add, update, or remove a load balancer * configuration, Amazon ECS starts new tasks with the updated Elastic Load * Balancing configuration, and then stops the old tasks when the new tasks are * running.

For services that use rolling updates, you can add, update, or * remove Elastic Load Balancing target groups. You can update from a single target * group to multiple target groups and from multiple target groups to a single * target group.

For services that use blue/green deployments, you can * update Elastic Load Balancing target groups by using CreateDeployment * through CodeDeploy. Note that multiple target groups are not supported * for blue/green deployments. For more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

For services that use the external * deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. * Note that multiple target groups are not supported for external deployments. For * more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

You can remove existing * loadBalancers by passing an empty list.

*/ 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.

When you add, update, or remove a load balancer * configuration, Amazon ECS starts new tasks with the updated Elastic Load * Balancing configuration, and then stops the old tasks when the new tasks are * running.

For services that use rolling updates, you can add, update, or * remove Elastic Load Balancing target groups. You can update from a single target * group to multiple target groups and from multiple target groups to a single * target group.

For services that use blue/green deployments, you can * update Elastic Load Balancing target groups by using CreateDeployment * through CodeDeploy. Note that multiple target groups are not supported * for blue/green deployments. For more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

For services that use the external * deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. * Note that multiple target groups are not supported for external deployments. For * more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

You can remove existing * loadBalancers by passing an empty list.

*/ 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.

When you add, update, or remove a load balancer * configuration, Amazon ECS starts new tasks with the updated Elastic Load * Balancing configuration, and then stops the old tasks when the new tasks are * running.

For services that use rolling updates, you can add, update, or * remove Elastic Load Balancing target groups. You can update from a single target * group to multiple target groups and from multiple target groups to a single * target group.

For services that use blue/green deployments, you can * update Elastic Load Balancing target groups by using CreateDeployment * through CodeDeploy. Note that multiple target groups are not supported * for blue/green deployments. For more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

For services that use the external * deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. * Note that multiple target groups are not supported for external deployments. For * more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

You can remove existing * loadBalancers by passing an empty list.

*/ inline UpdateServiceRequest& 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.

When you add, update, or remove a load balancer * configuration, Amazon ECS starts new tasks with the updated Elastic Load * Balancing configuration, and then stops the old tasks when the new tasks are * running.

For services that use rolling updates, you can add, update, or * remove Elastic Load Balancing target groups. You can update from a single target * group to multiple target groups and from multiple target groups to a single * target group.

For services that use blue/green deployments, you can * update Elastic Load Balancing target groups by using CreateDeployment * through CodeDeploy. Note that multiple target groups are not supported * for blue/green deployments. For more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

For services that use the external * deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. * Note that multiple target groups are not supported for external deployments. For * more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

You can remove existing * loadBalancers by passing an empty list.

*/ inline UpdateServiceRequest& 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.

When you add, update, or remove a load balancer * configuration, Amazon ECS starts new tasks with the updated Elastic Load * Balancing configuration, and then stops the old tasks when the new tasks are * running.

For services that use rolling updates, you can add, update, or * remove Elastic Load Balancing target groups. You can update from a single target * group to multiple target groups and from multiple target groups to a single * target group.

For services that use blue/green deployments, you can * update Elastic Load Balancing target groups by using CreateDeployment * through CodeDeploy. Note that multiple target groups are not supported * for blue/green deployments. For more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

For services that use the external * deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. * Note that multiple target groups are not supported for external deployments. For * more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

You can remove existing * loadBalancers by passing an empty list.

*/ inline UpdateServiceRequest& 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.

When you add, update, or remove a load balancer * configuration, Amazon ECS starts new tasks with the updated Elastic Load * Balancing configuration, and then stops the old tasks when the new tasks are * running.

For services that use rolling updates, you can add, update, or * remove Elastic Load Balancing target groups. You can update from a single target * group to multiple target groups and from multiple target groups to a single * target group.

For services that use blue/green deployments, you can * update Elastic Load Balancing target groups by using CreateDeployment * through CodeDeploy. Note that multiple target groups are not supported * for blue/green deployments. For more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

For services that use the external * deployment controller, you can add, update, or remove load balancers by using CreateTaskSet. * Note that multiple target groups are not supported for external deployments. For * more information see Register * multiple target groups with a service in the Amazon Elastic Container * Service Developer Guide.

You can remove existing * loadBalancers by passing an empty list.

*/ inline UpdateServiceRequest& AddLoadBalancers(LoadBalancer&& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers.push_back(std::move(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.

*

Only tasks launched after the update will reflect the update. To update the * tags on all tasks, set forceNewDeployment to true, so * that Amazon ECS starts new tasks with the updated tags.

*/ 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.

*

Only tasks launched after the update will reflect the update. To update the * tags on all tasks, set forceNewDeployment to true, so * that Amazon ECS starts new tasks with the updated tags.

*/ 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.

*

Only tasks launched after the update will reflect the update. To update the * tags on all tasks, set forceNewDeployment to true, so * that Amazon ECS starts new tasks with the updated tags.

*/ 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.

*

Only tasks launched after the update will reflect the update. To update the * tags on all tasks, set forceNewDeployment to true, so * that Amazon ECS starts new tasks with the updated tags.

*/ 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.

*

Only tasks launched after the update will reflect the update. To update the * tags on all tasks, set forceNewDeployment to true, so * that Amazon ECS starts new tasks with the updated tags.

*/ inline UpdateServiceRequest& 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.

*

Only tasks launched after the update will reflect the update. To update the * tags on all tasks, set forceNewDeployment to true, so * that Amazon ECS starts new tasks with the updated tags.

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

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

When you add, update, or remove the service registries * configuration, Amazon ECS starts new tasks with the updated service registries * configuration, and then stops the old tasks when the new tasks are running.

*

You can remove existing serviceRegistries by passing an empty * list.

*/ 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.

When you add, update, or remove the service registries * configuration, Amazon ECS starts new tasks with the updated service registries * configuration, and then stops the old tasks when the new tasks are running.

*

You can remove existing serviceRegistries by passing an empty * list.

*/ 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.

When you add, update, or remove the service registries * configuration, Amazon ECS starts new tasks with the updated service registries * configuration, and then stops the old tasks when the new tasks are running.

*

You can remove existing serviceRegistries by passing an empty * list.

*/ 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.

When you add, update, or remove the service registries * configuration, Amazon ECS starts new tasks with the updated service registries * configuration, and then stops the old tasks when the new tasks are running.

*

You can remove existing serviceRegistries by passing an empty * list.

*/ 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.

When you add, update, or remove the service registries * configuration, Amazon ECS starts new tasks with the updated service registries * configuration, and then stops the old tasks when the new tasks are running.

*

You can remove existing serviceRegistries by passing an empty * list.

*/ inline UpdateServiceRequest& 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.

When you add, update, or remove the service registries * configuration, Amazon ECS starts new tasks with the updated service registries * configuration, and then stops the old tasks when the new tasks are running.

*

You can remove existing serviceRegistries by passing an empty * list.

*/ inline UpdateServiceRequest& 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.

When you add, update, or remove the service registries * configuration, Amazon ECS starts new tasks with the updated service registries * configuration, and then stops the old tasks when the new tasks are running.

*

You can remove existing serviceRegistries by passing an empty * list.

*/ inline UpdateServiceRequest& 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.

When you add, update, or remove the service registries * configuration, Amazon ECS starts new tasks with the updated service registries * configuration, and then stops the old tasks when the new tasks are running.

*

You can remove existing serviceRegistries by passing an empty * list.

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

The configuration for this service to discover and connect to services, and * be discovered by, and connected from, other services within a namespace.

*

Tasks that run in a namespace can use short names to connect to services in * the namespace. Tasks can connect to services across all of the clusters in the * namespace. Tasks connect through a managed proxy container that collects logs * and metrics for increased visibility. Only the tasks that Amazon ECS services * create are supported with Service Connect. For more information, see Service * Connect in the Amazon Elastic Container Service Developer Guide.

*/ inline const ServiceConnectConfiguration& GetServiceConnectConfiguration() const{ return m_serviceConnectConfiguration; } /** *

The configuration for this service to discover and connect to services, and * be discovered by, and connected from, other services within a namespace.

*

Tasks that run in a namespace can use short names to connect to services in * the namespace. Tasks can connect to services across all of the clusters in the * namespace. Tasks connect through a managed proxy container that collects logs * and metrics for increased visibility. Only the tasks that Amazon ECS services * create are supported with Service Connect. For more information, see Service * Connect in the Amazon Elastic Container Service Developer Guide.

*/ inline bool ServiceConnectConfigurationHasBeenSet() const { return m_serviceConnectConfigurationHasBeenSet; } /** *

The configuration for this service to discover and connect to services, and * be discovered by, and connected from, other services within a namespace.

*

Tasks that run in a namespace can use short names to connect to services in * the namespace. Tasks can connect to services across all of the clusters in the * namespace. Tasks connect through a managed proxy container that collects logs * and metrics for increased visibility. Only the tasks that Amazon ECS services * create are supported with Service Connect. For more information, see Service * Connect in the Amazon Elastic Container Service Developer Guide.

*/ inline void SetServiceConnectConfiguration(const ServiceConnectConfiguration& value) { m_serviceConnectConfigurationHasBeenSet = true; m_serviceConnectConfiguration = value; } /** *

The configuration for this service to discover and connect to services, and * be discovered by, and connected from, other services within a namespace.

*

Tasks that run in a namespace can use short names to connect to services in * the namespace. Tasks can connect to services across all of the clusters in the * namespace. Tasks connect through a managed proxy container that collects logs * and metrics for increased visibility. Only the tasks that Amazon ECS services * create are supported with Service Connect. For more information, see Service * Connect in the Amazon Elastic Container Service Developer Guide.

*/ inline void SetServiceConnectConfiguration(ServiceConnectConfiguration&& value) { m_serviceConnectConfigurationHasBeenSet = true; m_serviceConnectConfiguration = std::move(value); } /** *

The configuration for this service to discover and connect to services, and * be discovered by, and connected from, other services within a namespace.

*

Tasks that run in a namespace can use short names to connect to services in * the namespace. Tasks can connect to services across all of the clusters in the * namespace. Tasks connect through a managed proxy container that collects logs * and metrics for increased visibility. Only the tasks that Amazon ECS services * create are supported with Service Connect. For more information, see Service * Connect in the Amazon Elastic Container Service Developer Guide.

*/ inline UpdateServiceRequest& WithServiceConnectConfiguration(const ServiceConnectConfiguration& value) { SetServiceConnectConfiguration(value); return *this;} /** *

The configuration for this service to discover and connect to services, and * be discovered by, and connected from, other services within a namespace.

*

Tasks that run in a namespace can use short names to connect to services in * the namespace. Tasks can connect to services across all of the clusters in the * namespace. Tasks connect through a managed proxy container that collects logs * and metrics for increased visibility. Only the tasks that Amazon ECS services * create are supported with Service Connect. For more information, see Service * Connect in the Amazon Elastic Container Service Developer Guide.

*/ inline UpdateServiceRequest& WithServiceConnectConfiguration(ServiceConnectConfiguration&& value) { SetServiceConnectConfiguration(std::move(value)); return *this;} private: Aws::String m_cluster; bool m_clusterHasBeenSet = false; Aws::String m_service; bool m_serviceHasBeenSet = false; int m_desiredCount; bool m_desiredCountHasBeenSet = false; Aws::String m_taskDefinition; bool m_taskDefinitionHasBeenSet = false; Aws::Vector m_capacityProviderStrategy; bool m_capacityProviderStrategyHasBeenSet = false; DeploymentConfiguration m_deploymentConfiguration; bool m_deploymentConfigurationHasBeenSet = false; NetworkConfiguration m_networkConfiguration; bool m_networkConfigurationHasBeenSet = false; Aws::Vector m_placementConstraints; bool m_placementConstraintsHasBeenSet = false; Aws::Vector m_placementStrategy; bool m_placementStrategyHasBeenSet = false; Aws::String m_platformVersion; bool m_platformVersionHasBeenSet = false; bool m_forceNewDeployment; bool m_forceNewDeploymentHasBeenSet = false; int m_healthCheckGracePeriodSeconds; bool m_healthCheckGracePeriodSecondsHasBeenSet = false; bool m_enableExecuteCommand; bool m_enableExecuteCommandHasBeenSet = false; bool m_enableECSManagedTags; bool m_enableECSManagedTagsHasBeenSet = false; Aws::Vector m_loadBalancers; bool m_loadBalancersHasBeenSet = false; PropagateTags m_propagateTags; bool m_propagateTagsHasBeenSet = false; Aws::Vector m_serviceRegistries; bool m_serviceRegistriesHasBeenSet = false; ServiceConnectConfiguration m_serviceConnectConfiguration; bool m_serviceConnectConfigurationHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws