import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Resource type definition for AWS::CodeDeploy::DeploymentGroup
 */
export declare class DeploymentGroup extends pulumi.CustomResource {
    /**
     * Get an existing DeploymentGroup resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): DeploymentGroup;
    /**
     * Returns true if the given object is an instance of DeploymentGroup.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is DeploymentGroup;
    /**
     * Information about the Amazon CloudWatch alarms that are associated with the deployment group.
     */
    readonly alarmConfiguration: pulumi.Output<outputs.codedeploy.DeploymentGroupAlarmConfiguration | undefined>;
    /**
     * The name of an existing CodeDeploy application to associate this deployment group with.
     */
    readonly applicationName: pulumi.Output<string>;
    /**
     * Information about the automatic rollback configuration that is associated with the deployment group. If you specify this property, don't specify the Deployment property.
     */
    readonly autoRollbackConfiguration: pulumi.Output<outputs.codedeploy.DeploymentGroupAutoRollbackConfiguration | undefined>;
    /**
     * A list of associated Auto Scaling groups that CodeDeploy automatically deploys revisions to when new instances are created. Duplicates are not allowed.
     */
    readonly autoScalingGroups: pulumi.Output<string[] | undefined>;
    /**
     * Information about blue/green deployment options for a deployment group.
     */
    readonly blueGreenDeploymentConfiguration: pulumi.Output<outputs.codedeploy.DeploymentGroupBlueGreenDeploymentConfiguration | undefined>;
    /**
     * The application revision to deploy to this deployment group. If you specify this property, your target application revision is deployed as soon as the provisioning process is complete. If you specify this property, don't specify the AutoRollbackConfiguration property.
     */
    readonly deployment: pulumi.Output<outputs.codedeploy.DeploymentGroupDeployment | undefined>;
    /**
     * A deployment configuration name or a predefined configuration name. With predefined configurations, you can deploy application revisions to one instance at a time (CodeDeployDefault.OneAtATime), half of the instances at a time (CodeDeployDefault.HalfAtATime), or all the instances at once (CodeDeployDefault.AllAtOnce).
     */
    readonly deploymentConfigName: pulumi.Output<string | undefined>;
    /**
     * A name for the deployment group. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment group name.
     */
    readonly deploymentGroupName: pulumi.Output<string | undefined>;
    /**
     * Attributes that determine the type of deployment to run and whether to route deployment traffic behind a load balancer. If you specify this property with a blue/green deployment type, don't specify the AutoScalingGroups, LoadBalancerInfo, or Deployment properties.
     */
    readonly deploymentStyle: pulumi.Output<outputs.codedeploy.DeploymentGroupDeploymentStyle | undefined>;
    /**
     * The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify EC2TagFilters or Ec2TagSet, but not both.
     */
    readonly ec2TagFilters: pulumi.Output<outputs.codedeploy.DeploymentGroupEc2TagFilter[] | undefined>;
    /**
     * Information about groups of tags applied to Amazon EC2 instances. Use when the deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilter.
     */
    readonly ec2TagSet: pulumi.Output<outputs.codedeploy.DeploymentGroupEc2TagSet | undefined>;
    /**
     * 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>.
     */
    readonly ecsServices: pulumi.Output<outputs.codedeploy.DeploymentGroupEcsService[] | undefined>;
    /**
     * Information about the load balancer to use in a deployment.
     */
    readonly loadBalancerInfo: pulumi.Output<outputs.codedeploy.DeploymentGroupLoadBalancerInfo | undefined>;
    /**
     * The on-premises instance tags already applied to on-premises instances that you want to include in the deployment group. CodeDeploy includes all on-premises instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both.
     */
    readonly onPremisesInstanceTagFilters: pulumi.Output<outputs.codedeploy.DeploymentGroupTagFilter[] | undefined>;
    /**
     * Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all the tag groups. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both.
     */
    readonly onPremisesTagSet: pulumi.Output<outputs.codedeploy.DeploymentGroupOnPremisesTagSet | undefined>;
    /**
     * 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.
     */
    readonly outdatedInstancesStrategy: pulumi.Output<string | undefined>;
    /**
     * A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to make calls to AWS services on your behalf. For more information, see 'Create a Service Role for AWS CodeDeploy' in the AWS CodeDeploy User Guide.
     */
    readonly serviceRoleArn: pulumi.Output<string>;
    /**
     * 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.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.
     */
    readonly terminationHookEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Information about triggers associated with the deployment group. Duplicates are not allowed.
     */
    readonly triggerConfigurations: pulumi.Output<outputs.codedeploy.DeploymentGroupTriggerConfig[] | undefined>;
    /**
     * Create a DeploymentGroup resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: DeploymentGroupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a DeploymentGroup resource.
 */
export interface DeploymentGroupArgs {
    /**
     * Information about the Amazon CloudWatch alarms that are associated with the deployment group.
     */
    alarmConfiguration?: pulumi.Input<inputs.codedeploy.DeploymentGroupAlarmConfigurationArgs>;
    /**
     * The name of an existing CodeDeploy application to associate this deployment group with.
     */
    applicationName: pulumi.Input<string>;
    /**
     * Information about the automatic rollback configuration that is associated with the deployment group. If you specify this property, don't specify the Deployment property.
     */
    autoRollbackConfiguration?: pulumi.Input<inputs.codedeploy.DeploymentGroupAutoRollbackConfigurationArgs>;
    /**
     * A list of associated Auto Scaling groups that CodeDeploy automatically deploys revisions to when new instances are created. Duplicates are not allowed.
     */
    autoScalingGroups?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Information about blue/green deployment options for a deployment group.
     */
    blueGreenDeploymentConfiguration?: pulumi.Input<inputs.codedeploy.DeploymentGroupBlueGreenDeploymentConfigurationArgs>;
    /**
     * The application revision to deploy to this deployment group. If you specify this property, your target application revision is deployed as soon as the provisioning process is complete. If you specify this property, don't specify the AutoRollbackConfiguration property.
     */
    deployment?: pulumi.Input<inputs.codedeploy.DeploymentGroupDeploymentArgs>;
    /**
     * A deployment configuration name or a predefined configuration name. With predefined configurations, you can deploy application revisions to one instance at a time (CodeDeployDefault.OneAtATime), half of the instances at a time (CodeDeployDefault.HalfAtATime), or all the instances at once (CodeDeployDefault.AllAtOnce).
     */
    deploymentConfigName?: pulumi.Input<string>;
    /**
     * A name for the deployment group. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment group name.
     */
    deploymentGroupName?: pulumi.Input<string>;
    /**
     * Attributes that determine the type of deployment to run and whether to route deployment traffic behind a load balancer. If you specify this property with a blue/green deployment type, don't specify the AutoScalingGroups, LoadBalancerInfo, or Deployment properties.
     */
    deploymentStyle?: pulumi.Input<inputs.codedeploy.DeploymentGroupDeploymentStyleArgs>;
    /**
     * The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify EC2TagFilters or Ec2TagSet, but not both.
     */
    ec2TagFilters?: pulumi.Input<pulumi.Input<inputs.codedeploy.DeploymentGroupEc2TagFilterArgs>[]>;
    /**
     * Information about groups of tags applied to Amazon EC2 instances. Use when the deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilter.
     */
    ec2TagSet?: pulumi.Input<inputs.codedeploy.DeploymentGroupEc2TagSetArgs>;
    /**
     * 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>.
     */
    ecsServices?: pulumi.Input<pulumi.Input<inputs.codedeploy.DeploymentGroupEcsServiceArgs>[]>;
    /**
     * Information about the load balancer to use in a deployment.
     */
    loadBalancerInfo?: pulumi.Input<inputs.codedeploy.DeploymentGroupLoadBalancerInfoArgs>;
    /**
     * The on-premises instance tags already applied to on-premises instances that you want to include in the deployment group. CodeDeploy includes all on-premises instances identified by any of the tags you specify in this deployment group. Duplicates are not allowed. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both.
     */
    onPremisesInstanceTagFilters?: pulumi.Input<pulumi.Input<inputs.codedeploy.DeploymentGroupTagFilterArgs>[]>;
    /**
     * Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all the tag groups. You can specify OnPremisesInstanceTagFilters or OnPremisesInstanceTagSet, but not both.
     */
    onPremisesTagSet?: pulumi.Input<inputs.codedeploy.DeploymentGroupOnPremisesTagSetArgs>;
    /**
     * 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.
     */
    outdatedInstancesStrategy?: pulumi.Input<string>;
    /**
     * A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to make calls to AWS services on your behalf. For more information, see 'Create a Service Role for AWS CodeDeploy' in the AWS CodeDeploy User Guide.
     */
    serviceRoleArn: pulumi.Input<string>;
    /**
     * 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.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.
     */
    terminationHookEnabled?: pulumi.Input<boolean>;
    /**
     * Information about triggers associated with the deployment group. Duplicates are not allowed.
     */
    triggerConfigurations?: pulumi.Input<pulumi.Input<inputs.codedeploy.DeploymentGroupTriggerConfigArgs>[]>;
}
