class Aws::CodeDeploy::Types::CreateDeploymentGroupInput

Represents the input of a `CreateDeploymentGroup` operation.

@note When making an API call, you may pass CreateDeploymentGroupInput

data as a hash:

    {
      application_name: "ApplicationName", # required
      deployment_group_name: "DeploymentGroupName", # required
      deployment_config_name: "DeploymentConfigName",
      ec2_tag_filters: [
        {
          key: "Key",
          value: "Value",
          type: "KEY_ONLY", # accepts KEY_ONLY, VALUE_ONLY, KEY_AND_VALUE
        },
      ],
      on_premises_instance_tag_filters: [
        {
          key: "Key",
          value: "Value",
          type: "KEY_ONLY", # accepts KEY_ONLY, VALUE_ONLY, KEY_AND_VALUE
        },
      ],
      auto_scaling_groups: ["AutoScalingGroupName"],
      service_role_arn: "Role", # required
      trigger_configurations: [
        {
          trigger_name: "TriggerName",
          trigger_target_arn: "TriggerTargetArn",
          trigger_events: ["DeploymentStart"], # accepts DeploymentStart, DeploymentSuccess, DeploymentFailure, DeploymentStop, DeploymentRollback, DeploymentReady, InstanceStart, InstanceSuccess, InstanceFailure, InstanceReady
        },
      ],
      alarm_configuration: {
        enabled: false,
        ignore_poll_alarm_failure: false,
        alarms: [
          {
            name: "AlarmName",
          },
        ],
      },
      auto_rollback_configuration: {
        enabled: false,
        events: ["DEPLOYMENT_FAILURE"], # accepts DEPLOYMENT_FAILURE, DEPLOYMENT_STOP_ON_ALARM, DEPLOYMENT_STOP_ON_REQUEST
      },
      outdated_instances_strategy: "UPDATE", # accepts UPDATE, IGNORE
      deployment_style: {
        deployment_type: "IN_PLACE", # accepts IN_PLACE, BLUE_GREEN
        deployment_option: "WITH_TRAFFIC_CONTROL", # accepts WITH_TRAFFIC_CONTROL, WITHOUT_TRAFFIC_CONTROL
      },
      blue_green_deployment_configuration: {
        terminate_blue_instances_on_deployment_success: {
          action: "TERMINATE", # accepts TERMINATE, KEEP_ALIVE
          termination_wait_time_in_minutes: 1,
        },
        deployment_ready_option: {
          action_on_timeout: "CONTINUE_DEPLOYMENT", # accepts CONTINUE_DEPLOYMENT, STOP_DEPLOYMENT
          wait_time_in_minutes: 1,
        },
        green_fleet_provisioning_option: {
          action: "DISCOVER_EXISTING", # accepts DISCOVER_EXISTING, COPY_AUTO_SCALING_GROUP
        },
      },
      load_balancer_info: {
        elb_info_list: [
          {
            name: "ELBName",
          },
        ],
        target_group_info_list: [
          {
            name: "TargetGroupName",
          },
        ],
        target_group_pair_info_list: [
          {
            target_groups: [
              {
                name: "TargetGroupName",
              },
            ],
            prod_traffic_route: {
              listener_arns: ["ListenerArn"],
            },
            test_traffic_route: {
              listener_arns: ["ListenerArn"],
            },
          },
        ],
      },
      ec2_tag_set: {
        ec2_tag_set_list: [
          [
            {
              key: "Key",
              value: "Value",
              type: "KEY_ONLY", # accepts KEY_ONLY, VALUE_ONLY, KEY_AND_VALUE
            },
          ],
        ],
      },
      ecs_services: [
        {
          service_name: "ECSServiceName",
          cluster_name: "ECSClusterName",
        },
      ],
      on_premises_tag_set: {
        on_premises_tag_set_list: [
          [
            {
              key: "Key",
              value: "Value",
              type: "KEY_ONLY", # accepts KEY_ONLY, VALUE_ONLY, KEY_AND_VALUE
            },
          ],
        ],
      },
      tags: [
        {
          key: "Key",
          value: "Value",
        },
      ],
    }

@!attribute [rw] application_name

The name of an AWS CodeDeploy application associated with the IAM
user or AWS account.
@return [String]

@!attribute [rw] deployment_group_name

The name of a new deployment group for the specified application.
@return [String]

@!attribute [rw] deployment_config_name

If specified, the deployment configuration name can be either one of
the predefined configurations provided with AWS 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 AWS CodeDeploy, see [Working with Deployment Configurations in
CodeDeploy][1] in the *AWS CodeDeploy User Guide*.

[1]: https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html
@return [String]

@!attribute [rw] ec2_tag_filters

The Amazon EC2 tags on which to filter. The deployment group
includes EC2 instances with any of the specified tags. Cannot be
used in the same call as ec2TagSet.
@return [Array<Types::EC2TagFilter>]

@!attribute [rw] on_premises_instance_tag_filters

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`.
@return [Array<Types::TagFilter>]

@!attribute [rw] auto_scaling_groups

A list of associated Amazon EC2 Auto Scaling groups.
@return [Array<String>]

@!attribute [rw] service_role_arn

A service role Amazon Resource Name (ARN) that allows AWS CodeDeploy
to act on the user's behalf when interacting with AWS services.
@return [String]

@!attribute [rw] trigger_configurations

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

[1]: https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-sns.html
@return [Array<Types::TriggerConfig>]

@!attribute [rw] alarm_configuration

Information to add about Amazon CloudWatch alarms when the
deployment group is created.
@return [Types::AlarmConfiguration]

@!attribute [rw] auto_rollback_configuration

Configuration information for an automatic rollback that is added
when a deployment group is created.
@return [Types::AutoRollbackConfiguration]

@!attribute [rw] outdated_instances_strategy

Indicates what happens when new 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 EC2 instances.

If this option is set to `IGNORE`, CodeDeploy does not initiate a
deployment to update the new EC2 instances. This may result in
instances having different revisions.
@return [String]

@!attribute [rw] deployment_style

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.
@return [Types::DeploymentStyle]

@!attribute [rw] blue_green_deployment_configuration

Information about blue/green deployment options for a deployment
group.
@return [Types::BlueGreenDeploymentConfiguration]

@!attribute [rw] load_balancer_info

Information about the load balancer used in a deployment.
@return [Types::LoadBalancerInfo]

@!attribute [rw] ec2_tag_set

Information about groups of tags applied to EC2 instances. The
deployment group includes only EC2 instances identified by all the
tag groups. Cannot be used in the same call as `ec2TagFilters`.
@return [Types::EC2TagSet]

@!attribute [rw] ecs_services

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>`.
@return [Array<Types::ECSService>]

@!attribute [rw] on_premises_tag_set

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`.
@return [Types::OnPremisesTagSet]

@!attribute [rw] 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.
@return [Array<Types::Tag>]

@see docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateDeploymentGroupInput AWS API Documentation

Constants

SENSITIVE