/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace CodeDeploy { namespace Model { /** *

Represents the input of a CreateDeploymentGroup * operation.

See Also:

AWS * API Reference

*/ class CreateDeploymentGroupRequest : public CodeDeployRequest { public: AWS_CODEDEPLOY_API CreateDeploymentGroupRequest(); // 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 "CreateDeploymentGroup"; } AWS_CODEDEPLOY_API Aws::String SerializePayload() const override; AWS_CODEDEPLOY_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of an CodeDeploy application associated with the IAM user or Amazon * Web Services account.

*/ inline const Aws::String& GetApplicationName() const{ return m_applicationName; } /** *

The name of an CodeDeploy application associated with the IAM user or Amazon * Web Services account.

*/ inline bool ApplicationNameHasBeenSet() const { return m_applicationNameHasBeenSet; } /** *

The name of an CodeDeploy application associated with the IAM user or Amazon * Web Services account.

*/ inline void SetApplicationName(const Aws::String& value) { m_applicationNameHasBeenSet = true; m_applicationName = value; } /** *

The name of an CodeDeploy application associated with the IAM user or Amazon * Web Services account.

*/ inline void SetApplicationName(Aws::String&& value) { m_applicationNameHasBeenSet = true; m_applicationName = std::move(value); } /** *

The name of an CodeDeploy application associated with the IAM user or Amazon * Web Services account.

*/ inline void SetApplicationName(const char* value) { m_applicationNameHasBeenSet = true; m_applicationName.assign(value); } /** *

The name of an CodeDeploy application associated with the IAM user or Amazon * Web Services account.

*/ inline CreateDeploymentGroupRequest& WithApplicationName(const Aws::String& value) { SetApplicationName(value); return *this;} /** *

The name of an CodeDeploy application associated with the IAM user or Amazon * Web Services account.

*/ inline CreateDeploymentGroupRequest& WithApplicationName(Aws::String&& value) { SetApplicationName(std::move(value)); return *this;} /** *

The name of an CodeDeploy application associated with the IAM user or Amazon * Web Services account.

*/ inline CreateDeploymentGroupRequest& WithApplicationName(const char* value) { SetApplicationName(value); return *this;} /** *

The name of a new deployment group for the specified application.

*/ inline const Aws::String& GetDeploymentGroupName() const{ return m_deploymentGroupName; } /** *

The name of a new deployment group for the specified application.

*/ inline bool DeploymentGroupNameHasBeenSet() const { return m_deploymentGroupNameHasBeenSet; } /** *

The name of a new deployment group for the specified application.

*/ inline void SetDeploymentGroupName(const Aws::String& value) { m_deploymentGroupNameHasBeenSet = true; m_deploymentGroupName = value; } /** *

The name of a new deployment group for the specified application.

*/ inline void SetDeploymentGroupName(Aws::String&& value) { m_deploymentGroupNameHasBeenSet = true; m_deploymentGroupName = std::move(value); } /** *

The name of a new deployment group for the specified application.

*/ inline void SetDeploymentGroupName(const char* value) { m_deploymentGroupNameHasBeenSet = true; m_deploymentGroupName.assign(value); } /** *

The name of a new deployment group for the specified application.

*/ inline CreateDeploymentGroupRequest& WithDeploymentGroupName(const Aws::String& value) { SetDeploymentGroupName(value); return *this;} /** *

The name of a new deployment group for the specified application.

*/ inline CreateDeploymentGroupRequest& WithDeploymentGroupName(Aws::String&& value) { SetDeploymentGroupName(std::move(value)); return *this;} /** *

The name of a new deployment group for the specified application.

*/ inline CreateDeploymentGroupRequest& WithDeploymentGroupName(const char* value) { SetDeploymentGroupName(value); return *this;} /** *

If specified, the deployment configuration name can be either one of the * predefined configurations provided with CodeDeploy or a custom deployment * configuration that you create by calling the create deployment configuration * operation.

CodeDeployDefault.OneAtATime is the default * deployment configuration. It is used if a configuration isn't specified for the * deployment or deployment group.

For more information about the predefined * deployment configurations in CodeDeploy, see Working * with Deployment Configurations in CodeDeploy in the CodeDeploy User * Guide.

*/ inline const Aws::String& GetDeploymentConfigName() const{ return m_deploymentConfigName; } /** *

If specified, the deployment configuration name can be either one of the * predefined configurations provided with CodeDeploy or a custom deployment * configuration that you create by calling the create deployment configuration * operation.

CodeDeployDefault.OneAtATime is the default * deployment configuration. It is used if a configuration isn't specified for the * deployment or deployment group.

For more information about the predefined * deployment configurations in CodeDeploy, see Working * with Deployment Configurations in CodeDeploy in the CodeDeploy User * Guide.

*/ inline bool DeploymentConfigNameHasBeenSet() const { return m_deploymentConfigNameHasBeenSet; } /** *

If specified, the deployment configuration name can be either one of the * predefined configurations provided with CodeDeploy or a custom deployment * configuration that you create by calling the create deployment configuration * operation.

CodeDeployDefault.OneAtATime is the default * deployment configuration. It is used if a configuration isn't specified for the * deployment or deployment group.

For more information about the predefined * deployment configurations in CodeDeploy, see Working * with Deployment Configurations in CodeDeploy in the CodeDeploy User * Guide.

*/ inline void SetDeploymentConfigName(const Aws::String& value) { m_deploymentConfigNameHasBeenSet = true; m_deploymentConfigName = value; } /** *

If specified, the deployment configuration name can be either one of the * predefined configurations provided with CodeDeploy or a custom deployment * configuration that you create by calling the create deployment configuration * operation.

CodeDeployDefault.OneAtATime is the default * deployment configuration. It is used if a configuration isn't specified for the * deployment or deployment group.

For more information about the predefined * deployment configurations in CodeDeploy, see Working * with Deployment Configurations in CodeDeploy in the CodeDeploy User * Guide.

*/ inline void SetDeploymentConfigName(Aws::String&& value) { m_deploymentConfigNameHasBeenSet = true; m_deploymentConfigName = std::move(value); } /** *

If specified, the deployment configuration name can be either one of the * predefined configurations provided with CodeDeploy or a custom deployment * configuration that you create by calling the create deployment configuration * operation.

CodeDeployDefault.OneAtATime is the default * deployment configuration. It is used if a configuration isn't specified for the * deployment or deployment group.

For more information about the predefined * deployment configurations in CodeDeploy, see Working * with Deployment Configurations in CodeDeploy in the CodeDeploy User * Guide.

*/ inline void SetDeploymentConfigName(const char* value) { m_deploymentConfigNameHasBeenSet = true; m_deploymentConfigName.assign(value); } /** *

If specified, the deployment configuration name can be either one of the * predefined configurations provided with CodeDeploy or a custom deployment * configuration that you create by calling the create deployment configuration * operation.

CodeDeployDefault.OneAtATime is the default * deployment configuration. It is used if a configuration isn't specified for the * deployment or deployment group.

For more information about the predefined * deployment configurations in CodeDeploy, see Working * with Deployment Configurations in CodeDeploy in the CodeDeploy User * Guide.

*/ inline CreateDeploymentGroupRequest& WithDeploymentConfigName(const Aws::String& value) { SetDeploymentConfigName(value); return *this;} /** *

If specified, the deployment configuration name can be either one of the * predefined configurations provided with CodeDeploy or a custom deployment * configuration that you create by calling the create deployment configuration * operation.

CodeDeployDefault.OneAtATime is the default * deployment configuration. It is used if a configuration isn't specified for the * deployment or deployment group.

For more information about the predefined * deployment configurations in CodeDeploy, see Working * with Deployment Configurations in CodeDeploy in the CodeDeploy User * Guide.

*/ inline CreateDeploymentGroupRequest& WithDeploymentConfigName(Aws::String&& value) { SetDeploymentConfigName(std::move(value)); return *this;} /** *

If specified, the deployment configuration name can be either one of the * predefined configurations provided with CodeDeploy or a custom deployment * configuration that you create by calling the create deployment configuration * operation.

CodeDeployDefault.OneAtATime is the default * deployment configuration. It is used if a configuration isn't specified for the * deployment or deployment group.

For more information about the predefined * deployment configurations in CodeDeploy, see Working * with Deployment Configurations in CodeDeploy in the CodeDeploy User * Guide.

*/ inline CreateDeploymentGroupRequest& WithDeploymentConfigName(const char* value) { SetDeploymentConfigName(value); return *this;} /** *

The Amazon EC2 tags on which to filter. The deployment group includes Amazon * EC2 instances with any of the specified tags. Cannot be used in the same call as * ec2TagSet.

*/ inline const Aws::Vector& GetEc2TagFilters() const{ return m_ec2TagFilters; } /** *

The Amazon EC2 tags on which to filter. The deployment group includes Amazon * EC2 instances with any of the specified tags. Cannot be used in the same call as * ec2TagSet.

*/ inline bool Ec2TagFiltersHasBeenSet() const { return m_ec2TagFiltersHasBeenSet; } /** *

The Amazon EC2 tags on which to filter. The deployment group includes Amazon * EC2 instances with any of the specified tags. Cannot be used in the same call as * ec2TagSet.

*/ inline void SetEc2TagFilters(const Aws::Vector& value) { m_ec2TagFiltersHasBeenSet = true; m_ec2TagFilters = value; } /** *

The Amazon EC2 tags on which to filter. The deployment group includes Amazon * EC2 instances with any of the specified tags. Cannot be used in the same call as * ec2TagSet.

*/ inline void SetEc2TagFilters(Aws::Vector&& value) { m_ec2TagFiltersHasBeenSet = true; m_ec2TagFilters = std::move(value); } /** *

The Amazon EC2 tags on which to filter. The deployment group includes Amazon * EC2 instances with any of the specified tags. Cannot be used in the same call as * ec2TagSet.

*/ inline CreateDeploymentGroupRequest& WithEc2TagFilters(const Aws::Vector& value) { SetEc2TagFilters(value); return *this;} /** *

The Amazon EC2 tags on which to filter. The deployment group includes Amazon * EC2 instances with any of the specified tags. Cannot be used in the same call as * ec2TagSet.

*/ inline CreateDeploymentGroupRequest& WithEc2TagFilters(Aws::Vector&& value) { SetEc2TagFilters(std::move(value)); return *this;} /** *

The Amazon EC2 tags on which to filter. The deployment group includes Amazon * EC2 instances with any of the specified tags. Cannot be used in the same call as * ec2TagSet.

*/ inline CreateDeploymentGroupRequest& AddEc2TagFilters(const EC2TagFilter& value) { m_ec2TagFiltersHasBeenSet = true; m_ec2TagFilters.push_back(value); return *this; } /** *

The Amazon EC2 tags on which to filter. The deployment group includes Amazon * EC2 instances with any of the specified tags. Cannot be used in the same call as * ec2TagSet.

*/ inline CreateDeploymentGroupRequest& AddEc2TagFilters(EC2TagFilter&& value) { m_ec2TagFiltersHasBeenSet = true; m_ec2TagFilters.push_back(std::move(value)); return *this; } /** *

The on-premises instance tags on which to filter. The deployment group * includes on-premises instances with any of the specified tags. Cannot be used in * the same call as OnPremisesTagSet.

*/ inline const Aws::Vector& GetOnPremisesInstanceTagFilters() const{ return m_onPremisesInstanceTagFilters; } /** *

The on-premises instance tags on which to filter. The deployment group * includes on-premises instances with any of the specified tags. Cannot be used in * the same call as OnPremisesTagSet.

*/ inline bool OnPremisesInstanceTagFiltersHasBeenSet() const { return m_onPremisesInstanceTagFiltersHasBeenSet; } /** *

The on-premises instance tags on which to filter. The deployment group * includes on-premises instances with any of the specified tags. Cannot be used in * the same call as OnPremisesTagSet.

*/ inline void SetOnPremisesInstanceTagFilters(const Aws::Vector& value) { m_onPremisesInstanceTagFiltersHasBeenSet = true; m_onPremisesInstanceTagFilters = value; } /** *

The on-premises instance tags on which to filter. The deployment group * includes on-premises instances with any of the specified tags. Cannot be used in * the same call as OnPremisesTagSet.

*/ inline void SetOnPremisesInstanceTagFilters(Aws::Vector&& value) { m_onPremisesInstanceTagFiltersHasBeenSet = true; m_onPremisesInstanceTagFilters = std::move(value); } /** *

The on-premises instance tags on which to filter. The deployment group * includes on-premises instances with any of the specified tags. Cannot be used in * the same call as OnPremisesTagSet.

*/ inline CreateDeploymentGroupRequest& WithOnPremisesInstanceTagFilters(const Aws::Vector& value) { SetOnPremisesInstanceTagFilters(value); return *this;} /** *

The on-premises instance tags on which to filter. The deployment group * includes on-premises instances with any of the specified tags. Cannot be used in * the same call as OnPremisesTagSet.

*/ inline CreateDeploymentGroupRequest& WithOnPremisesInstanceTagFilters(Aws::Vector&& value) { SetOnPremisesInstanceTagFilters(std::move(value)); return *this;} /** *

The on-premises instance tags on which to filter. The deployment group * includes on-premises instances with any of the specified tags. Cannot be used in * the same call as OnPremisesTagSet.

*/ inline CreateDeploymentGroupRequest& AddOnPremisesInstanceTagFilters(const TagFilter& value) { m_onPremisesInstanceTagFiltersHasBeenSet = true; m_onPremisesInstanceTagFilters.push_back(value); return *this; } /** *

The on-premises instance tags on which to filter. The deployment group * includes on-premises instances with any of the specified tags. Cannot be used in * the same call as OnPremisesTagSet.

*/ inline CreateDeploymentGroupRequest& AddOnPremisesInstanceTagFilters(TagFilter&& value) { m_onPremisesInstanceTagFiltersHasBeenSet = true; m_onPremisesInstanceTagFilters.push_back(std::move(value)); return *this; } /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline const Aws::Vector& GetAutoScalingGroups() const{ return m_autoScalingGroups; } /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline bool AutoScalingGroupsHasBeenSet() const { return m_autoScalingGroupsHasBeenSet; } /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline void SetAutoScalingGroups(const Aws::Vector& value) { m_autoScalingGroupsHasBeenSet = true; m_autoScalingGroups = value; } /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline void SetAutoScalingGroups(Aws::Vector&& value) { m_autoScalingGroupsHasBeenSet = true; m_autoScalingGroups = std::move(value); } /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline CreateDeploymentGroupRequest& WithAutoScalingGroups(const Aws::Vector& value) { SetAutoScalingGroups(value); return *this;} /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline CreateDeploymentGroupRequest& WithAutoScalingGroups(Aws::Vector&& value) { SetAutoScalingGroups(std::move(value)); return *this;} /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline CreateDeploymentGroupRequest& AddAutoScalingGroups(const Aws::String& value) { m_autoScalingGroupsHasBeenSet = true; m_autoScalingGroups.push_back(value); return *this; } /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline CreateDeploymentGroupRequest& AddAutoScalingGroups(Aws::String&& value) { m_autoScalingGroupsHasBeenSet = true; m_autoScalingGroups.push_back(std::move(value)); return *this; } /** *

A list of associated Amazon EC2 Auto Scaling groups.

*/ inline CreateDeploymentGroupRequest& AddAutoScalingGroups(const char* value) { m_autoScalingGroupsHasBeenSet = true; m_autoScalingGroups.push_back(value); return *this; } /** *

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on * the user's behalf when interacting with Amazon Web Services services.

*/ inline const Aws::String& GetServiceRoleArn() const{ return m_serviceRoleArn; } /** *

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on * the user's behalf when interacting with Amazon Web Services services.

*/ inline bool ServiceRoleArnHasBeenSet() const { return m_serviceRoleArnHasBeenSet; } /** *

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on * the user's behalf when interacting with Amazon Web Services services.

*/ inline void SetServiceRoleArn(const Aws::String& value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn = value; } /** *

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on * the user's behalf when interacting with Amazon Web Services services.

*/ inline void SetServiceRoleArn(Aws::String&& value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn = std::move(value); } /** *

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on * the user's behalf when interacting with Amazon Web Services services.

*/ inline void SetServiceRoleArn(const char* value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn.assign(value); } /** *

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on * the user's behalf when interacting with Amazon Web Services services.

*/ inline CreateDeploymentGroupRequest& WithServiceRoleArn(const Aws::String& value) { SetServiceRoleArn(value); return *this;} /** *

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on * the user's behalf when interacting with Amazon Web Services services.

*/ inline CreateDeploymentGroupRequest& WithServiceRoleArn(Aws::String&& value) { SetServiceRoleArn(std::move(value)); return *this;} /** *

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on * the user's behalf when interacting with Amazon Web Services services.

*/ inline CreateDeploymentGroupRequest& WithServiceRoleArn(const char* value) { SetServiceRoleArn(value); return *this;} /** *

Information about triggers to create when the deployment group is created. * For examples, see Create * a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

*/ inline const Aws::Vector& GetTriggerConfigurations() const{ return m_triggerConfigurations; } /** *

Information about triggers to create when the deployment group is created. * For examples, see Create * a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

*/ inline bool TriggerConfigurationsHasBeenSet() const { return m_triggerConfigurationsHasBeenSet; } /** *

Information about triggers to create when the deployment group is created. * For examples, see Create * a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

*/ inline void SetTriggerConfigurations(const Aws::Vector& value) { m_triggerConfigurationsHasBeenSet = true; m_triggerConfigurations = value; } /** *

Information about triggers to create when the deployment group is created. * For examples, see Create * a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

*/ inline void SetTriggerConfigurations(Aws::Vector&& value) { m_triggerConfigurationsHasBeenSet = true; m_triggerConfigurations = std::move(value); } /** *

Information about triggers to create when the deployment group is created. * For examples, see Create * a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

*/ inline CreateDeploymentGroupRequest& WithTriggerConfigurations(const Aws::Vector& value) { SetTriggerConfigurations(value); return *this;} /** *

Information about triggers to create when the deployment group is created. * For examples, see Create * a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

*/ inline CreateDeploymentGroupRequest& WithTriggerConfigurations(Aws::Vector&& value) { SetTriggerConfigurations(std::move(value)); return *this;} /** *

Information about triggers to create when the deployment group is created. * For examples, see Create * a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

*/ inline CreateDeploymentGroupRequest& AddTriggerConfigurations(const TriggerConfig& value) { m_triggerConfigurationsHasBeenSet = true; m_triggerConfigurations.push_back(value); return *this; } /** *

Information about triggers to create when the deployment group is created. * For examples, see Create * a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

*/ inline CreateDeploymentGroupRequest& AddTriggerConfigurations(TriggerConfig&& value) { m_triggerConfigurationsHasBeenSet = true; m_triggerConfigurations.push_back(std::move(value)); return *this; } /** *

Information to add about Amazon CloudWatch alarms when the deployment group * is created.

*/ inline const AlarmConfiguration& GetAlarmConfiguration() const{ return m_alarmConfiguration; } /** *

Information to add about Amazon CloudWatch alarms when the deployment group * is created.

*/ inline bool AlarmConfigurationHasBeenSet() const { return m_alarmConfigurationHasBeenSet; } /** *

Information to add about Amazon CloudWatch alarms when the deployment group * is created.

*/ inline void SetAlarmConfiguration(const AlarmConfiguration& value) { m_alarmConfigurationHasBeenSet = true; m_alarmConfiguration = value; } /** *

Information to add about Amazon CloudWatch alarms when the deployment group * is created.

*/ inline void SetAlarmConfiguration(AlarmConfiguration&& value) { m_alarmConfigurationHasBeenSet = true; m_alarmConfiguration = std::move(value); } /** *

Information to add about Amazon CloudWatch alarms when the deployment group * is created.

*/ inline CreateDeploymentGroupRequest& WithAlarmConfiguration(const AlarmConfiguration& value) { SetAlarmConfiguration(value); return *this;} /** *

Information to add about Amazon CloudWatch alarms when the deployment group * is created.

*/ inline CreateDeploymentGroupRequest& WithAlarmConfiguration(AlarmConfiguration&& value) { SetAlarmConfiguration(std::move(value)); return *this;} /** *

Configuration information for an automatic rollback that is added when a * deployment group is created.

*/ inline const AutoRollbackConfiguration& GetAutoRollbackConfiguration() const{ return m_autoRollbackConfiguration; } /** *

Configuration information for an automatic rollback that is added when a * deployment group is created.

*/ inline bool AutoRollbackConfigurationHasBeenSet() const { return m_autoRollbackConfigurationHasBeenSet; } /** *

Configuration information for an automatic rollback that is added when a * deployment group is created.

*/ inline void SetAutoRollbackConfiguration(const AutoRollbackConfiguration& value) { m_autoRollbackConfigurationHasBeenSet = true; m_autoRollbackConfiguration = value; } /** *

Configuration information for an automatic rollback that is added when a * deployment group is created.

*/ inline void SetAutoRollbackConfiguration(AutoRollbackConfiguration&& value) { m_autoRollbackConfigurationHasBeenSet = true; m_autoRollbackConfiguration = std::move(value); } /** *

Configuration information for an automatic rollback that is added when a * deployment group is created.

*/ inline CreateDeploymentGroupRequest& WithAutoRollbackConfiguration(const AutoRollbackConfiguration& value) { SetAutoRollbackConfiguration(value); return *this;} /** *

Configuration information for an automatic rollback that is added when a * deployment group is created.

*/ inline CreateDeploymentGroupRequest& WithAutoRollbackConfiguration(AutoRollbackConfiguration&& value) { SetAutoRollbackConfiguration(std::move(value)); return *this;} /** *

Indicates what happens when new Amazon EC2 instances are launched * mid-deployment and do not receive the deployed application revision.

If * this option is set to UPDATE or is unspecified, CodeDeploy * initiates one or more 'auto-update outdated instances' deployments to apply the * deployed application revision to the new Amazon EC2 instances.

If this * option is set to IGNORE, CodeDeploy does not initiate a deployment * to update the new Amazon EC2 instances. This may result in instances having * different revisions.

*/ inline const OutdatedInstancesStrategy& GetOutdatedInstancesStrategy() const{ return m_outdatedInstancesStrategy; } /** *

Indicates what happens when new Amazon EC2 instances are launched * mid-deployment and do not receive the deployed application revision.

If * this option is set to UPDATE or is unspecified, CodeDeploy * initiates one or more 'auto-update outdated instances' deployments to apply the * deployed application revision to the new Amazon EC2 instances.

If this * option is set to IGNORE, CodeDeploy does not initiate a deployment * to update the new Amazon EC2 instances. This may result in instances having * different revisions.

*/ inline bool OutdatedInstancesStrategyHasBeenSet() const { return m_outdatedInstancesStrategyHasBeenSet; } /** *

Indicates what happens when new Amazon EC2 instances are launched * mid-deployment and do not receive the deployed application revision.

If * this option is set to UPDATE or is unspecified, CodeDeploy * initiates one or more 'auto-update outdated instances' deployments to apply the * deployed application revision to the new Amazon EC2 instances.

If this * option is set to IGNORE, CodeDeploy does not initiate a deployment * to update the new Amazon EC2 instances. This may result in instances having * different revisions.

*/ inline void SetOutdatedInstancesStrategy(const OutdatedInstancesStrategy& value) { m_outdatedInstancesStrategyHasBeenSet = true; m_outdatedInstancesStrategy = value; } /** *

Indicates what happens when new Amazon EC2 instances are launched * mid-deployment and do not receive the deployed application revision.

If * this option is set to UPDATE or is unspecified, CodeDeploy * initiates one or more 'auto-update outdated instances' deployments to apply the * deployed application revision to the new Amazon EC2 instances.

If this * option is set to IGNORE, CodeDeploy does not initiate a deployment * to update the new Amazon EC2 instances. This may result in instances having * different revisions.

*/ inline void SetOutdatedInstancesStrategy(OutdatedInstancesStrategy&& value) { m_outdatedInstancesStrategyHasBeenSet = true; m_outdatedInstancesStrategy = std::move(value); } /** *

Indicates what happens when new Amazon EC2 instances are launched * mid-deployment and do not receive the deployed application revision.

If * this option is set to UPDATE or is unspecified, CodeDeploy * initiates one or more 'auto-update outdated instances' deployments to apply the * deployed application revision to the new Amazon EC2 instances.

If this * option is set to IGNORE, CodeDeploy does not initiate a deployment * to update the new Amazon EC2 instances. This may result in instances having * different revisions.

*/ inline CreateDeploymentGroupRequest& WithOutdatedInstancesStrategy(const OutdatedInstancesStrategy& value) { SetOutdatedInstancesStrategy(value); return *this;} /** *

Indicates what happens when new Amazon EC2 instances are launched * mid-deployment and do not receive the deployed application revision.

If * this option is set to UPDATE or is unspecified, CodeDeploy * initiates one or more 'auto-update outdated instances' deployments to apply the * deployed application revision to the new Amazon EC2 instances.

If this * option is set to IGNORE, CodeDeploy does not initiate a deployment * to update the new Amazon EC2 instances. This may result in instances having * different revisions.

*/ inline CreateDeploymentGroupRequest& WithOutdatedInstancesStrategy(OutdatedInstancesStrategy&& value) { SetOutdatedInstancesStrategy(std::move(value)); return *this;} /** *

Information about the type of deployment, in-place or blue/green, that you * want to run and whether to route deployment traffic behind a load balancer.

*/ inline const DeploymentStyle& GetDeploymentStyle() const{ return m_deploymentStyle; } /** *

Information about the type of deployment, in-place or blue/green, that you * want to run and whether to route deployment traffic behind a load balancer.

*/ inline bool DeploymentStyleHasBeenSet() const { return m_deploymentStyleHasBeenSet; } /** *

Information about the type of deployment, in-place or blue/green, that you * want to run and whether to route deployment traffic behind a load balancer.

*/ inline void SetDeploymentStyle(const DeploymentStyle& value) { m_deploymentStyleHasBeenSet = true; m_deploymentStyle = value; } /** *

Information about the type of deployment, in-place or blue/green, that you * want to run and whether to route deployment traffic behind a load balancer.

*/ inline void SetDeploymentStyle(DeploymentStyle&& value) { m_deploymentStyleHasBeenSet = true; m_deploymentStyle = std::move(value); } /** *

Information about the type of deployment, in-place or blue/green, that you * want to run and whether to route deployment traffic behind a load balancer.

*/ inline CreateDeploymentGroupRequest& WithDeploymentStyle(const DeploymentStyle& value) { SetDeploymentStyle(value); return *this;} /** *

Information about the type of deployment, in-place or blue/green, that you * want to run and whether to route deployment traffic behind a load balancer.

*/ inline CreateDeploymentGroupRequest& WithDeploymentStyle(DeploymentStyle&& value) { SetDeploymentStyle(std::move(value)); return *this;} /** *

Information about blue/green deployment options for a deployment group.

*/ inline const BlueGreenDeploymentConfiguration& GetBlueGreenDeploymentConfiguration() const{ return m_blueGreenDeploymentConfiguration; } /** *

Information about blue/green deployment options for a deployment group.

*/ inline bool BlueGreenDeploymentConfigurationHasBeenSet() const { return m_blueGreenDeploymentConfigurationHasBeenSet; } /** *

Information about blue/green deployment options for a deployment group.

*/ inline void SetBlueGreenDeploymentConfiguration(const BlueGreenDeploymentConfiguration& value) { m_blueGreenDeploymentConfigurationHasBeenSet = true; m_blueGreenDeploymentConfiguration = value; } /** *

Information about blue/green deployment options for a deployment group.

*/ inline void SetBlueGreenDeploymentConfiguration(BlueGreenDeploymentConfiguration&& value) { m_blueGreenDeploymentConfigurationHasBeenSet = true; m_blueGreenDeploymentConfiguration = std::move(value); } /** *

Information about blue/green deployment options for a deployment group.

*/ inline CreateDeploymentGroupRequest& WithBlueGreenDeploymentConfiguration(const BlueGreenDeploymentConfiguration& value) { SetBlueGreenDeploymentConfiguration(value); return *this;} /** *

Information about blue/green deployment options for a deployment group.

*/ inline CreateDeploymentGroupRequest& WithBlueGreenDeploymentConfiguration(BlueGreenDeploymentConfiguration&& value) { SetBlueGreenDeploymentConfiguration(std::move(value)); return *this;} /** *

Information about the load balancer used in a deployment.

*/ inline const LoadBalancerInfo& GetLoadBalancerInfo() const{ return m_loadBalancerInfo; } /** *

Information about the load balancer used in a deployment.

*/ inline bool LoadBalancerInfoHasBeenSet() const { return m_loadBalancerInfoHasBeenSet; } /** *

Information about the load balancer used in a deployment.

*/ inline void SetLoadBalancerInfo(const LoadBalancerInfo& value) { m_loadBalancerInfoHasBeenSet = true; m_loadBalancerInfo = value; } /** *

Information about the load balancer used in a deployment.

*/ inline void SetLoadBalancerInfo(LoadBalancerInfo&& value) { m_loadBalancerInfoHasBeenSet = true; m_loadBalancerInfo = std::move(value); } /** *

Information about the load balancer used in a deployment.

*/ inline CreateDeploymentGroupRequest& WithLoadBalancerInfo(const LoadBalancerInfo& value) { SetLoadBalancerInfo(value); return *this;} /** *

Information about the load balancer used in a deployment.

*/ inline CreateDeploymentGroupRequest& WithLoadBalancerInfo(LoadBalancerInfo&& value) { SetLoadBalancerInfo(std::move(value)); return *this;} /** *

Information about groups of tags applied to Amazon EC2 instances. The * deployment group includes only Amazon EC2 instances identified by all the tag * groups. Cannot be used in the same call as ec2TagFilters.

*/ inline const EC2TagSet& GetEc2TagSet() const{ return m_ec2TagSet; } /** *

Information about groups of tags applied to Amazon EC2 instances. The * deployment group includes only Amazon EC2 instances identified by all the tag * groups. Cannot be used in the same call as ec2TagFilters.

*/ inline bool Ec2TagSetHasBeenSet() const { return m_ec2TagSetHasBeenSet; } /** *

Information about groups of tags applied to Amazon EC2 instances. The * deployment group includes only Amazon EC2 instances identified by all the tag * groups. Cannot be used in the same call as ec2TagFilters.

*/ inline void SetEc2TagSet(const EC2TagSet& value) { m_ec2TagSetHasBeenSet = true; m_ec2TagSet = value; } /** *

Information about groups of tags applied to Amazon EC2 instances. The * deployment group includes only Amazon EC2 instances identified by all the tag * groups. Cannot be used in the same call as ec2TagFilters.

*/ inline void SetEc2TagSet(EC2TagSet&& value) { m_ec2TagSetHasBeenSet = true; m_ec2TagSet = std::move(value); } /** *

Information about groups of tags applied to Amazon EC2 instances. The * deployment group includes only Amazon EC2 instances identified by all the tag * groups. Cannot be used in the same call as ec2TagFilters.

*/ inline CreateDeploymentGroupRequest& WithEc2TagSet(const EC2TagSet& value) { SetEc2TagSet(value); return *this;} /** *

Information about groups of tags applied to Amazon EC2 instances. The * deployment group includes only Amazon EC2 instances identified by all the tag * groups. Cannot be used in the same call as ec2TagFilters.

*/ inline CreateDeploymentGroupRequest& WithEc2TagSet(EC2TagSet&& value) { SetEc2TagSet(std::move(value)); return *this;} /** *

The target Amazon ECS services in the deployment group. This applies only to * deployment groups that use the Amazon ECS compute platform. A target Amazon ECS * service is specified as an Amazon ECS cluster and service name pair using the * format <clustername>:<servicename>.

*/ inline const Aws::Vector& GetEcsServices() const{ return m_ecsServices; } /** *

The target Amazon ECS services in the deployment group. This applies only to * deployment groups that use the Amazon ECS compute platform. A target Amazon ECS * service is specified as an Amazon ECS cluster and service name pair using the * format <clustername>:<servicename>.

*/ inline bool EcsServicesHasBeenSet() const { return m_ecsServicesHasBeenSet; } /** *

The target Amazon ECS services in the deployment group. This applies only to * deployment groups that use the Amazon ECS compute platform. A target Amazon ECS * service is specified as an Amazon ECS cluster and service name pair using the * format <clustername>:<servicename>.

*/ inline void SetEcsServices(const Aws::Vector& value) { m_ecsServicesHasBeenSet = true; m_ecsServices = value; } /** *

The target Amazon ECS services in the deployment group. This applies only to * deployment groups that use the Amazon ECS compute platform. A target Amazon ECS * service is specified as an Amazon ECS cluster and service name pair using the * format <clustername>:<servicename>.

*/ inline void SetEcsServices(Aws::Vector&& value) { m_ecsServicesHasBeenSet = true; m_ecsServices = std::move(value); } /** *

The target Amazon ECS services in the deployment group. This applies only to * deployment groups that use the Amazon ECS compute platform. A target Amazon ECS * service is specified as an Amazon ECS cluster and service name pair using the * format <clustername>:<servicename>.

*/ inline CreateDeploymentGroupRequest& WithEcsServices(const Aws::Vector& value) { SetEcsServices(value); return *this;} /** *

The target Amazon ECS services in the deployment group. This applies only to * deployment groups that use the Amazon ECS compute platform. A target Amazon ECS * service is specified as an Amazon ECS cluster and service name pair using the * format <clustername>:<servicename>.

*/ inline CreateDeploymentGroupRequest& WithEcsServices(Aws::Vector&& value) { SetEcsServices(std::move(value)); return *this;} /** *

The target Amazon ECS services in the deployment group. This applies only to * deployment groups that use the Amazon ECS compute platform. A target Amazon ECS * service is specified as an Amazon ECS cluster and service name pair using the * format <clustername>:<servicename>.

*/ inline CreateDeploymentGroupRequest& AddEcsServices(const ECSService& value) { m_ecsServicesHasBeenSet = true; m_ecsServices.push_back(value); return *this; } /** *

The target Amazon ECS services in the deployment group. This applies only to * deployment groups that use the Amazon ECS compute platform. A target Amazon ECS * service is specified as an Amazon ECS cluster and service name pair using the * format <clustername>:<servicename>.

*/ inline CreateDeploymentGroupRequest& AddEcsServices(ECSService&& value) { m_ecsServicesHasBeenSet = true; m_ecsServices.push_back(std::move(value)); return *this; } /** *

Information about groups of tags applied to on-premises instances. The * deployment group includes only on-premises instances identified by all of the * tag groups. Cannot be used in the same call as * onPremisesInstanceTagFilters.

*/ inline const OnPremisesTagSet& GetOnPremisesTagSet() const{ return m_onPremisesTagSet; } /** *

Information about groups of tags applied to on-premises instances. The * deployment group includes only on-premises instances identified by all of the * tag groups. Cannot be used in the same call as * onPremisesInstanceTagFilters.

*/ inline bool OnPremisesTagSetHasBeenSet() const { return m_onPremisesTagSetHasBeenSet; } /** *

Information about groups of tags applied to on-premises instances. The * deployment group includes only on-premises instances identified by all of the * tag groups. Cannot be used in the same call as * onPremisesInstanceTagFilters.

*/ inline void SetOnPremisesTagSet(const OnPremisesTagSet& value) { m_onPremisesTagSetHasBeenSet = true; m_onPremisesTagSet = value; } /** *

Information about groups of tags applied to on-premises instances. The * deployment group includes only on-premises instances identified by all of the * tag groups. Cannot be used in the same call as * onPremisesInstanceTagFilters.

*/ inline void SetOnPremisesTagSet(OnPremisesTagSet&& value) { m_onPremisesTagSetHasBeenSet = true; m_onPremisesTagSet = std::move(value); } /** *

Information about groups of tags applied to on-premises instances. The * deployment group includes only on-premises instances identified by all of the * tag groups. Cannot be used in the same call as * onPremisesInstanceTagFilters.

*/ inline CreateDeploymentGroupRequest& WithOnPremisesTagSet(const OnPremisesTagSet& value) { SetOnPremisesTagSet(value); return *this;} /** *

Information about groups of tags applied to on-premises instances. The * deployment group includes only on-premises instances identified by all of the * tag groups. Cannot be used in the same call as * onPremisesInstanceTagFilters.

*/ inline CreateDeploymentGroupRequest& WithOnPremisesTagSet(OnPremisesTagSet&& value) { SetOnPremisesTagSet(std::move(value)); return *this;} /** *

The metadata that you apply to CodeDeploy deployment groups to help you * organize and categorize them. Each tag consists of a key and an optional value, * both of which you define.

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

The metadata that you apply to CodeDeploy deployment groups to help you * organize and categorize them. Each tag consists of a key and an optional value, * both of which you define.

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

The metadata that you apply to CodeDeploy deployment groups to help you * organize and categorize them. Each tag consists of a key and an optional value, * both of which you define.

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

The metadata that you apply to CodeDeploy deployment groups to help you * organize and categorize them. Each tag consists of a key and an optional value, * both of which you define.

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

The metadata that you apply to CodeDeploy deployment groups to help you * organize and categorize them. Each tag consists of a key and an optional value, * both of which you define.

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

The metadata that you apply to CodeDeploy deployment groups to help you * organize and categorize them. Each tag consists of a key and an optional value, * both of which you define.

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

The metadata that you apply to CodeDeploy deployment groups to help you * organize and categorize them. Each tag consists of a key and an optional value, * both of which you define.

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

The metadata that you apply to CodeDeploy deployment groups to help you * organize and categorize them. Each tag consists of a key and an optional value, * both of which you define.

*/ inline CreateDeploymentGroupRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_applicationName; bool m_applicationNameHasBeenSet = false; Aws::String m_deploymentGroupName; bool m_deploymentGroupNameHasBeenSet = false; Aws::String m_deploymentConfigName; bool m_deploymentConfigNameHasBeenSet = false; Aws::Vector m_ec2TagFilters; bool m_ec2TagFiltersHasBeenSet = false; Aws::Vector m_onPremisesInstanceTagFilters; bool m_onPremisesInstanceTagFiltersHasBeenSet = false; Aws::Vector m_autoScalingGroups; bool m_autoScalingGroupsHasBeenSet = false; Aws::String m_serviceRoleArn; bool m_serviceRoleArnHasBeenSet = false; Aws::Vector m_triggerConfigurations; bool m_triggerConfigurationsHasBeenSet = false; AlarmConfiguration m_alarmConfiguration; bool m_alarmConfigurationHasBeenSet = false; AutoRollbackConfiguration m_autoRollbackConfiguration; bool m_autoRollbackConfigurationHasBeenSet = false; OutdatedInstancesStrategy m_outdatedInstancesStrategy; bool m_outdatedInstancesStrategyHasBeenSet = false; DeploymentStyle m_deploymentStyle; bool m_deploymentStyleHasBeenSet = false; BlueGreenDeploymentConfiguration m_blueGreenDeploymentConfiguration; bool m_blueGreenDeploymentConfigurationHasBeenSet = false; LoadBalancerInfo m_loadBalancerInfo; bool m_loadBalancerInfoHasBeenSet = false; EC2TagSet m_ec2TagSet; bool m_ec2TagSetHasBeenSet = false; Aws::Vector m_ecsServices; bool m_ecsServicesHasBeenSet = false; OnPremisesTagSet m_onPremisesTagSet; bool m_onPremisesTagSetHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace CodeDeploy } // namespace Aws