/** * 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 namespace Aws { namespace ECS { namespace Model { /** */ class AWS_ECS_API UpdateServiceRequest : public ECSRequest { public: 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::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The short name or full Amazon Resource Name (ARN) of the cluster that your * service is running 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 is running 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 is running 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 is running 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 is running 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 is running 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 is running 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 is running 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 is using 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 is not the default capacity provider strategy, the * service cannot 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 AWS Fargate * capacity provider, specify either the FARGATE or * FARGATE_SPOT capacity providers. The AWS 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 is using 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 is not the default capacity provider strategy, the * service cannot 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 AWS Fargate * capacity provider, specify either the FARGATE or * FARGATE_SPOT capacity providers. The AWS 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 is using 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 is not the default capacity provider strategy, the * service cannot 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 AWS Fargate * capacity provider, specify either the FARGATE or * FARGATE_SPOT capacity providers. The AWS 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 is using 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 is not the default capacity provider strategy, the * service cannot 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 AWS Fargate * capacity provider, specify either the FARGATE or * FARGATE_SPOT capacity providers. The AWS 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 is using 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 is not the default capacity provider strategy, the * service cannot 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 AWS Fargate * capacity provider, specify either the FARGATE or * FARGATE_SPOT capacity providers. The AWS 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 is using 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 is not the default capacity provider strategy, the * service cannot 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 AWS Fargate * capacity provider, specify either the FARGATE or * FARGATE_SPOT capacity providers. The AWS 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 is using 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 is not the default capacity provider strategy, the * service cannot 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 AWS Fargate * capacity provider, specify either the FARGATE or * FARGATE_SPOT capacity providers. The AWS 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 is using 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 is not the default capacity provider strategy, the * service cannot 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 AWS Fargate * capacity provider, specify either the FARGATE or * FARGATE_SPOT capacity providers. The AWS 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;} inline const NetworkConfiguration& GetNetworkConfiguration() const{ return m_networkConfiguration; } inline bool NetworkConfigurationHasBeenSet() const { return m_networkConfigurationHasBeenSet; } inline void SetNetworkConfiguration(const NetworkConfiguration& value) { m_networkConfigurationHasBeenSet = true; m_networkConfiguration = value; } inline void SetNetworkConfiguration(NetworkConfiguration&& value) { m_networkConfigurationHasBeenSet = true; m_networkConfiguration = std::move(value); } inline UpdateServiceRequest& WithNetworkConfiguration(const NetworkConfiguration& value) { SetNetworkConfiguration(value); return *this;} 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 per 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 per 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 per 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 per 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 per 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 per 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 per 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 per 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 * per 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 * per 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 * per 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 * per 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 * per 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 * per 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 * per 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 * per service.

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

The platform version on which your tasks in the service are running. 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 by default. For more information, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version on which your tasks in the service are running. 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 by default. For more information, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version on which your tasks in the service are running. 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 by default. For more information, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version on which your tasks in the service are running. 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 by default. For more information, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version on which your tasks in the service are running. 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 by default. For more information, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version on which your tasks in the service are running. 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 by default. For more information, see AWS * 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 on which your tasks in the service are running. 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 by default. For more information, see AWS * 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 on which your tasks in the service are running. 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 by default. For more information, see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

Whether to force a new deployment of the service. Deployments are not forced * by default. You can use this option to trigger 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; } /** *

Whether to force a new deployment of the service. Deployments are not forced * by default. You can use this option to trigger 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; } /** *

Whether to force a new deployment of the service. Deployments are not forced * by default. You can use this option to trigger 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; } /** *

Whether to force a new deployment of the service. Deployments are not forced * by default. You can use this option to trigger 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 should * ignore 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 should * ignore 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 should * ignore 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 should * ignore 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;} private: Aws::String m_cluster; bool m_clusterHasBeenSet; Aws::String m_service; bool m_serviceHasBeenSet; int m_desiredCount; bool m_desiredCountHasBeenSet; Aws::String m_taskDefinition; bool m_taskDefinitionHasBeenSet; Aws::Vector m_capacityProviderStrategy; bool m_capacityProviderStrategyHasBeenSet; DeploymentConfiguration m_deploymentConfiguration; bool m_deploymentConfigurationHasBeenSet; NetworkConfiguration m_networkConfiguration; bool m_networkConfigurationHasBeenSet; Aws::Vector m_placementConstraints; bool m_placementConstraintsHasBeenSet; Aws::Vector m_placementStrategy; bool m_placementStrategyHasBeenSet; Aws::String m_platformVersion; bool m_platformVersionHasBeenSet; bool m_forceNewDeployment; bool m_forceNewDeploymentHasBeenSet; int m_healthCheckGracePeriodSeconds; bool m_healthCheckGracePeriodSecondsHasBeenSet; }; } // namespace Model } // namespace ECS } // namespace Aws