export interface Tag {
    /** The tag's key. */
    Key?: string;
    /** The tag's value. */
    Value?: string;
}
export interface RevisionLocation {
    /** The type of application revision: S3: An application revision stored in Amazon S3. GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). String: A YAML-formatted or JSON */
    revisionType?: 'S3' | 'GitHub' | 'String' | 'AppSpecContent';
    /** Information about the location of a revision stored in Amazon S3. */
    s3Location?: any;
    /** Information about the location of application artifacts stored in GitHub. */
    gitHubLocation?: any;
    /** Information about the location of an Lambda deployment revision stored as a RawString. */
    string?: any;
    /** The content of an AppSpec file for an Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. */
    appSpecContent?: any;
}
export interface EC2TagSet {
    /** A list that contains other lists of Amazon EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list. */
    ec2TagSetList?: any[];
}
export interface TargetInstances {
    /** The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. Cannot be used in the same call as ec2TagSet. */
    tagFilters?: any[];
    /** The names of one or more Auto Scaling groups to identify a replacement environment for a blue/green deployment. */
    autoScalingGroups?: string[];
    /** Information about the groups of Amazon EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be use */
    ec2TagSet?: EC2TagSet;
}
export interface AutoRollbackConfiguration {
    /** Indicates whether a defined automatic rollback configuration is currently enabled. */
    enabled?: boolean;
    /** The event type or types that trigger a rollback. */
    events?: 'DEPLOYMENT_FAILURE' | 'DEPLOYMENT_STOP_ON_ALARM' | 'DEPLOYMENT_STOP_ON_REQUEST'[];
}
export interface AlarmConfiguration {
    /** Indicates whether the alarm configuration is enabled. */
    enabled?: boolean;
    /** Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false. true: The deployment proceeds ev */
    ignorePollAlarmFailure?: boolean;
    /** A list of alarms configured for the deployment or deployment group. A maximum of 10 alarms can be added. */
    alarms?: any[];
}
export interface MinimumHealthyHosts {
    /** The minimum healthy instance type: HOST_COUNT: The minimum number of healthy instances as an absolute value. FLEET_PERCENT: The minimum number of healthy instances as a percentage of the total number  */
    type?: 'HOST_COUNT' | 'FLEET_PERCENT';
    /** The minimum healthy instance value. */
    value?: number;
}
export interface TimeBasedCanary {
    /** The percentage of traffic to shift in the first increment of a TimeBasedCanary deployment. */
    canaryPercentage?: number;
    /** The number of minutes between the first and second traffic shifts of a TimeBasedCanary deployment. */
    canaryInterval?: number;
}
export interface TimeBasedLinear {
    /** The percentage of traffic that is shifted at the start of each increment of a TimeBasedLinear deployment. */
    linearPercentage?: number;
    /** The number of minutes between each incremental traffic shift of a TimeBasedLinear deployment. */
    linearInterval?: number;
}
export interface TrafficRoutingConfig {
    /** The type of traffic shifting (TimeBasedCanary or TimeBasedLinear) used by a deployment configuration. */
    type?: 'TimeBasedCanary' | 'TimeBasedLinear' | 'AllAtOnce';
    /** A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified  */
    timeBasedCanary?: TimeBasedCanary;
    /** A configuration that shifts traffic from one version of a Lambda function or Amazon ECS task set to another in equal increments, with an equal number of minutes between each increment. The original an */
    timeBasedLinear?: TimeBasedLinear;
}
export interface MinimumHealthyHostsPerZone {
    /** The type associated with the MinimumHealthyHostsPerZone option. */
    type?: 'HOST_COUNT' | 'FLEET_PERCENT';
    /** The value associated with the MinimumHealthyHostsPerZone option. */
    value?: number;
}
export interface ZonalConfig {
    /** The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the sec */
    firstZoneMonitorDurationInSeconds?: number;
    /** The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Avail */
    monitorDurationInSeconds?: number;
    /** The number or percentage of instances that must remain available per Availability Zone during a deployment. This option works in conjunction with the MinimumHealthyHosts option. For more information,  */
    minimumHealthyHostsPerZone?: MinimumHealthyHostsPerZone;
}
export interface EC2TagFilter {
    /** The tag filter key. */
    Key?: string;
    /** The tag filter value. */
    Value?: string;
    /** The tag filter type: KEY_ONLY: Key only. VALUE_ONLY: Value only. KEY_AND_VALUE: Key and value. */
    Type?: 'KEY_ONLY' | 'VALUE_ONLY' | 'KEY_AND_VALUE';
}
export interface TagFilter {
    /** The on-premises instance tag filter key. */
    Key?: string;
    /** The on-premises instance tag filter value. */
    Value?: string;
    /** The on-premises instance tag filter type: KEY_ONLY: Key only. VALUE_ONLY: Value only. KEY_AND_VALUE: Key and value. */
    Type?: 'KEY_ONLY' | 'VALUE_ONLY' | 'KEY_AND_VALUE';
}
export interface TriggerConfig {
    /** The name of the notification trigger. */
    triggerName?: string;
    /** The Amazon Resource Name (ARN) of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent. */
    triggerTargetArn?: string;
    /** The event type or types for which notifications are triggered. */
    triggerEvents?: any[];
}
export interface DeploymentStyle {
    /** Indicates whether to run an in-place deployment or a blue/green deployment. */
    deploymentType?: 'IN_PLACE' | 'BLUE_GREEN';
    /** Indicates whether to route deployment traffic behind a load balancer. */
    deploymentOption?: 'WITH_TRAFFIC_CONTROL' | 'WITHOUT_TRAFFIC_CONTROL';
}
export interface BlueInstanceTerminationOption {
    /** The action to take on instances in the original environment after a successful blue/green deployment. TERMINATE: Instances are terminated after a specified wait time. KEEP_ALIVE: Instances are left ru */
    action?: 'TERMINATE' | 'KEEP_ALIVE';
    /** For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment. For an Amazon ECS deployment, the numbe */
    terminationWaitTimeInMinutes?: number;
}
export interface DeploymentReadyOption {
    /** Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment. CONTINUE_DEPLOYMENT: Register new instances with the load balancer immed */
    actionOnTimeout?: 'CONTINUE_DEPLOYMENT' | 'STOP_DEPLOYMENT';
    /** The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually. Applies only to the STOP_DEPLOYMENT option for actionOnTimeout. */
    waitTimeInMinutes?: number;
}
export interface GreenFleetProvisioningOption {
    /** The method used to add instances to a replacement environment. DISCOVER_EXISTING: Use instances that already exist or will be created manually. COPY_AUTO_SCALING_GROUP: Use settings from a specified A */
    action?: 'DISCOVER_EXISTING' | 'COPY_AUTO_SCALING_GROUP';
}
export interface BlueGreenDeploymentConfiguration {
    /** Information about whether to terminate instances in the original fleet during a blue/green deployment. */
    terminateBlueInstancesOnDeploymentSuccess?: BlueInstanceTerminationOption;
    /** Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment. */
    deploymentReadyOption?: DeploymentReadyOption;
    /** Information about how instances are provisioned for a replacement environment in a blue/green deployment. */
    greenFleetProvisioningOption?: GreenFleetProvisioningOption;
}
export interface LoadBalancerInfo {
    /** An array that contains information about the load balancers to use for load balancing in a deployment. If you're using Classic Load Balancers, specify those load balancers in this array. You can add u */
    elbInfoList?: any[];
    /** An array that contains information about the target groups to use for load balancing in a deployment. If you're using Application Load Balancers and Network Load Balancers, specify their associated ta */
    targetGroupInfoList?: any[];
    /** The target group pair information. This is an array of TargeGroupPairInfo objects with a maximum size of one. */
    targetGroupPairInfoList?: any[];
}
export interface ECSService {
    /** The name of the target Amazon ECS service. */
    serviceName?: string;
    /** The name of the cluster that the Amazon ECS service is associated with. */
    clusterName?: string;
}
export interface OnPremisesTagSet {
    /** A list that contains other lists of on-premises instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list. */
    onPremisesTagSetList?: any[][];
}
export interface TimeRange {
    /** The start time of the time range. Specify null to leave the start time open-ended. */
    start?: string;
    /** The end time of the time range. Specify null to leave the end time open-ended. */
    end?: string;
}
/** Represents the input of, and adds tags to, an on-premises instance operation. */
export interface AddTagsToOnPremisesInstancesInput {
    /** The names of the on-premises instances to which to add tags. */
    instanceNames: string[];
    /** The tag key-value pairs to add to the on-premises instances. Keys and values are both required. Keys cannot be null or empty strings. Value-only tags are not allowed. */
    tags: Tag[];
}
/** Represents the input of a BatchGetApplicationRevisions operation. */
export interface BatchGetApplicationRevisionsInput {
    /** The name of an CodeDeploy application about which to get revision information. */
    applicationName: string;
    /** An array of RevisionLocation objects that specify information to get about the application revisions, including type and location. The maximum number of RevisionLocation objects you can specify is 25. */
    revisions: RevisionLocation[];
}
/** Represents the input of a BatchGetApplications operation. */
export interface BatchGetApplicationsInput {
    /** A list of application names separated by spaces. The maximum number of application names you can specify is 100. */
    applicationNames: string[];
}
/** Represents the input of a BatchGetDeploymentGroups operation. */
export interface BatchGetDeploymentGroupsInput {
    /** The name of an CodeDeploy application associated with the applicable user or Amazon Web Services account. */
    applicationName: string;
    /** The names of the deployment groups. */
    deploymentGroupNames: string[];
}
/** Represents the input of a BatchGetDeploymentInstances operation. */
export interface BatchGetDeploymentInstancesInput {
    /** The unique ID of a deployment. */
    deploymentId: string;
    /** The unique IDs of instances used in the deployment. The maximum number of instance IDs you can specify is 25. */
    instanceIds: string[];
}
/** Represents the input of a BatchGetDeployments operation. */
export interface BatchGetDeploymentsInput {
    /** A list of deployment IDs, separated by spaces. The maximum number of deployment IDs you can specify is 25. */
    deploymentIds: string[];
}
export interface BatchGetDeploymentTargetsInput {
    /** The unique ID of a deployment. */
    deploymentId: string;
    /** The unique IDs of the deployment targets. The compute platform of the deployment determines the type of the targets and their formats. The maximum number of deployment target IDs you can specify is 25 */
    targetIds: string[];
}
/** Represents the input of a BatchGetOnPremisesInstances operation. */
export interface BatchGetOnPremisesInstancesInput {
    /** The names of the on-premises instances about which to get information. The maximum number of instance names you can specify is 25. */
    instanceNames: string[];
}
export interface ContinueDeploymentInput {
    /** The unique ID of a blue/green deployment for which you want to start rerouting traffic to the replacement environment. */
    deploymentId?: string;
    /** The status of the deployment's waiting period. READY_WAIT indicates that the deployment is ready to start shifting traffic. TERMINATION_WAIT indicates that the traffic is shifted, but the original tar */
    deploymentWaitType?: 'READY_WAIT' | 'TERMINATION_WAIT';
}
/** Represents the input of a CreateApplication operation. */
export interface CreateApplicationInput {
    /** The name of the application. This name must be unique with the applicable user or Amazon Web Services account. */
    applicationName: string;
    /** The destination platform type for the deployment (Lambda, Server, or ECS). */
    computePlatform?: 'Server' | 'Lambda' | 'ECS';
    /** The metadata that you apply to CodeDeploy applications to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define. */
    tags?: Tag[];
}
/** Represents the input of a CreateDeployment operation. */
export interface CreateDeploymentInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
    /** Configuration information for an automatic rollback that is added when a deployment is created. */
    autoRollbackConfiguration?: AutoRollbackConfiguration;
    /** The name of a deployment configuration associated with the user or Amazon Web Services account. If not specified, the value configured in the deployment group is used as the default. If the deployment */
    deploymentConfigName?: string;
    /** The name of the deployment group. */
    deploymentGroupName?: string;
    /** A comment about the deployment. */
    description?: string;
    /** Information about how CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment. The fileExistsBehavior parameter takes any of  */
    fileExistsBehavior?: 'DISALLOW' | 'OVERWRITE' | 'RETAIN';
    /** If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For */
    ignoreApplicationStopFailures?: boolean;
    /** Allows you to specify information about alarms associated with a deployment. The alarm configuration that you specify here will override the alarm configuration at the deployment group level. Consider */
    overrideAlarmConfiguration?: AlarmConfiguration;
    /** The type and location of the revision to deploy. */
    revision?: RevisionLocation;
    /** Information about the instances that belong to the replacement environment in a blue/green deployment. */
    targetInstances?: TargetInstances;
    /** Indicates whether to deploy to all instances or only to instances that are not running the latest application revision. */
    updateOutdatedInstancesOnly?: boolean;
}
/** Represents the input of a CreateDeploymentConfig operation. */
export interface CreateDeploymentConfigInput {
    /** The name of the deployment configuration to create. */
    deploymentConfigName: string;
    /** The destination platform type for the deployment (Lambda, Server, or ECS). */
    computePlatform?: 'Server' | 'Lambda' | 'ECS';
    /** The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of t */
    minimumHealthyHosts?: MinimumHealthyHosts;
    /** The configuration that specifies how the deployment traffic is routed. */
    trafficRoutingConfig?: TrafficRoutingConfig;
    /** Configure the ZonalConfig object if you want CodeDeploy to deploy your application to one Availability Zone at a time, within an Amazon Web Services Region. For more information about the zonal config */
    zonalConfig?: ZonalConfig;
}
/** Represents the input of a CreateDeploymentGroup operation. */
export interface CreateDeploymentGroupInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
    /** The name of a new deployment group for the specified application. */
    deploymentGroupName: string;
    /** A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on the user's behalf when interacting with Amazon Web Services services. */
    serviceRoleArn: string;
    /** Information to add about Amazon CloudWatch alarms when the deployment group is created. */
    alarmConfiguration?: AlarmConfiguration;
    /** Configuration information for an automatic rollback that is added when a deployment group is created. */
    autoRollbackConfiguration?: AutoRollbackConfiguration;
    /** A list of associated Amazon EC2 Auto Scaling groups. */
    autoScalingGroups?: string[];
    /** Information about blue/green deployment options for a deployment group. */
    blueGreenDeploymentConfiguration?: BlueGreenDeploymentConfiguration;
    /** 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 d */
    deploymentConfigName?: string;
    /** 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. */
    deploymentStyle?: DeploymentStyle;
    /** 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. */
    ec2TagFilters?: EC2TagFilter[];
    /** 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 ec2TagFil */
    ec2TagSet?: EC2TagSet;
    /** 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 clust */
    ecsServices?: ECSService[];
    /** Information about the load balancer used in a deployment. */
    loadBalancerInfo?: LoadBalancerInfo;
    /** 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. */
    onPremisesInstanceTagFilters?: TagFilter[];
    /** 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 onPr */
    onPremisesTagSet?: OnPremisesTagSet;
    /** 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 ini */
    outdatedInstancesStrategy?: 'UPDATE' | 'IGNORE';
    /** 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?: Tag[];
    /** This parameter only applies if you are using CodeDeploy with Amazon EC2 Auto Scaling. For more information, see Integrating CodeDeploy with Amazon EC2 Auto Scaling in the CodeDeploy User Guide. Set te */
    terminationHookEnabled?: boolean;
    /** 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. */
    triggerConfigurations?: TriggerConfig[];
}
/** Represents the input of a DeleteApplication operation. */
export interface DeleteApplicationInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
}
/** Represents the input of a DeleteDeploymentConfig operation. */
export interface DeleteDeploymentConfigInput {
    /** The name of a deployment configuration associated with the user or Amazon Web Services account. */
    deploymentConfigName: string;
}
/** Represents the input of a DeleteDeploymentGroup operation. */
export interface DeleteDeploymentGroupInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
    /** The name of a deployment group for the specified application. */
    deploymentGroupName: string;
}
/** Represents the input of a DeleteGitHubAccount operation. */
export interface DeleteGitHubAccountTokenInput {
    /** The name of the GitHub account connection to delete. */
    tokenName?: string;
}
export interface DeleteResourcesByExternalIdInput {
    /** The unique ID of an external resource (for example, a CloudFormation stack ID) that is linked to one or more CodeDeploy resources. */
    externalId?: string;
}
/** Represents the input of a DeregisterOnPremisesInstance operation. */
export interface DeregisterOnPremisesInstanceInput {
    /** The name of the on-premises instance to deregister. */
    instanceName: string;
}
/** Represents the input of a GetApplication operation. */
export interface GetApplicationInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
}
/** Represents the input of a GetApplicationRevision operation. */
export interface GetApplicationRevisionInput {
    /** The name of the application that corresponds to the revision. */
    applicationName: string;
    /** Information about the application revision to get, including type and location. */
    revision: RevisionLocation;
}
/** Represents the input of a GetDeployment operation. */
export interface GetDeploymentInput {
    /** The unique ID of a deployment associated with the user or Amazon Web Services account. */
    deploymentId: string;
}
/** Represents the input of a GetDeploymentConfig operation. */
export interface GetDeploymentConfigInput {
    /** The name of a deployment configuration associated with the user or Amazon Web Services account. */
    deploymentConfigName: string;
}
/** Represents the input of a GetDeploymentGroup operation. */
export interface GetDeploymentGroupInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
    /** The name of a deployment group for the specified application. */
    deploymentGroupName: string;
}
/** Represents the input of a GetDeploymentInstance operation. */
export interface GetDeploymentInstanceInput {
    /** The unique ID of a deployment. */
    deploymentId: string;
    /** The unique ID of an instance in the deployment group. */
    instanceId: string;
}
export interface GetDeploymentTargetInput {
    /** The unique ID of a deployment. */
    deploymentId: string;
    /** The unique ID of a deployment target. */
    targetId: string;
}
/** Represents the input of a GetOnPremisesInstance operation. */
export interface GetOnPremisesInstanceInput {
    /** The name of the on-premises instance about which to get information. */
    instanceName: string;
}
/** Represents the input of a ListApplicationRevisions operation. */
export interface ListApplicationRevisionsInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
    /** Whether to list revisions based on whether the revision is the target revision of a deployment group: include: List revisions that are target revisions of a deployment group. exclude: Do not list revi */
    deployed?: 'include' | 'exclude' | 'ignore';
    /** An identifier returned from the previous ListApplicationRevisions call. It can be used to return the next set of applications in the list. */
    nextToken?: string;
    /** An Amazon S3 bucket name to limit the search for revisions. If set to null, all of the user's buckets are searched. */
    s3Bucket?: string;
    /** A key prefix for the set of Amazon S3 objects to limit the search for revisions. */
    s3KeyPrefix?: string;
    /** The column name to use to sort the list results: registerTime: Sort by the time the revisions were registered with CodeDeploy. firstUsedTime: Sort by the time the revisions were first used in a deploy */
    sortBy?: 'registerTime' | 'firstUsedTime' | 'lastUsedTime';
    /** The order in which to sort the list results: ascending: ascending order. descending: descending order. If not specified, the results are sorted in ascending order. If set to null, the results are sort */
    sortOrder?: 'ascending' | 'descending';
}
/** Represents the input of a ListApplications operation. */
export interface ListApplicationsInput {
    /** An identifier returned from the previous list applications call. It can be used to return the next set of applications in the list. */
    nextToken?: string;
}
/** Represents the input of a ListDeploymentConfigs operation. */
export interface ListDeploymentConfigsInput {
    /** An identifier returned from the previous ListDeploymentConfigs call. It can be used to return the next set of deployment configurations in the list. */
    nextToken?: string;
}
/** Represents the input of a ListDeploymentGroups operation. */
export interface ListDeploymentGroupsInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
    /** An identifier returned from the previous list deployment groups call. It can be used to return the next set of deployment groups in the list. */
    nextToken?: string;
}
/** Represents the input of a ListDeploymentInstances operation. */
export interface ListDeploymentInstancesInput {
    /** The unique ID of a deployment. */
    deploymentId: string;
    /** A subset of instances to list by status: Pending: Include those instances with pending deployments. InProgress: Include those instances where deployments are still in progress. Succeeded: Include thos */
    instanceStatusFilter?: 'Pending' | 'InProgress' | 'Succeeded' | 'Failed' | 'Skipped' | 'Unknown' | 'Ready'[];
    /** The set of instances in a blue/green deployment, either those in the original environment ("BLUE") or those in the replacement environment ("GREEN"), for which you want to view instance information. */
    instanceTypeFilter?: 'Blue' | 'Green'[];
    /** An identifier returned from the previous list deployment instances call. It can be used to return the next set of deployment instances in the list. */
    nextToken?: string;
}
/** Represents the input of a ListDeployments operation. */
export interface ListDeploymentsInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. If applicationName is specified, then deploymentGroupName must be specified. If it is not specified, then */
    applicationName?: string;
    /** A time range (start and end) for returning a subset of the list of deployments. */
    createTimeRange?: TimeRange;
    /** The name of a deployment group for the specified application. If deploymentGroupName is specified, then applicationName must be specified. If it is not specified, then applicationName must not be spec */
    deploymentGroupName?: string;
    /** The unique ID of an external resource for returning deployments linked to the external resource. */
    externalId?: string;
    /** A subset of deployments to list by status: Created: Include created deployments in the resulting list. Queued: Include queued deployments in the resulting list. In Progress: Include in-progress deploy */
    includeOnlyStatuses?: 'Created' | 'Queued' | 'InProgress' | 'Baking' | 'Succeeded' | 'Failed' | 'Stopped' | 'Ready'[];
    /** An identifier returned from the previous list deployments call. It can be used to return the next set of deployments in the list. */
    nextToken?: string;
}
export interface ListDeploymentTargetsInput {
    /** The unique ID of a deployment. */
    deploymentId: string;
    /** A token identifier returned from the previous ListDeploymentTargets call. It can be used to return the next set of deployment targets in the list. */
    nextToken?: string;
    /** A key used to filter the returned targets. The two valid values are: TargetStatus - A TargetStatus filter string can be Failed, InProgress, Pending, Ready, Skipped, Succeeded, or Unknown. ServerInstan */
    targetFilters?: Record<string, string[]>;
}
/** Represents the input of a ListGitHubAccountTokenNames operation. */
export interface ListGitHubAccountTokenNamesInput {
    /** An identifier returned from the previous ListGitHubAccountTokenNames call. It can be used to return the next set of names in the list. */
    nextToken?: string;
}
/** Represents the input of a ListOnPremisesInstances operation. */
export interface ListOnPremisesInstancesInput {
    /** An identifier returned from the previous list on-premises instances call. It can be used to return the next set of on-premises instances in the list. */
    nextToken?: string;
    /** The registration status of the on-premises instances: Deregistered: Include deregistered on-premises instances in the resulting list. Registered: Include registered on-premises instances in the result */
    registrationStatus?: 'Registered' | 'Deregistered';
    /** The on-premises instance tags that are used to restrict the on-premises instance names returned. */
    tagFilters?: TagFilter[];
}
export interface ListTagsForResourceInput {
    /** The ARN of a CodeDeploy resource. ListTagsForResource returns all the tags associated with the resource that is identified by the ResourceArn. */
    ResourceArn: string;
    /** An identifier returned from the previous ListTagsForResource call. It can be used to return the next set of applications in the list. */
    NextToken?: string;
}
export interface PutLifecycleEventHookExecutionStatusInput {
    /** The unique ID of a deployment. Pass this ID to a Lambda function that validates a deployment lifecycle event. */
    deploymentId?: string;
    /** The execution ID of a deployment's lifecycle hook. A deployment lifecycle hook is specified in the hooks section of the AppSpec file. */
    lifecycleEventHookExecutionId?: string;
    /** The result of a Lambda function that validates a deployment lifecycle event. The values listed in Valid Values are valid for lifecycle statuses in general; however, only Succeeded and Failed can be pa */
    status?: 'Pending' | 'InProgress' | 'Succeeded' | 'Failed' | 'Skipped' | 'Unknown';
}
/** Represents the input of a RegisterApplicationRevision operation. */
export interface RegisterApplicationRevisionInput {
    /** The name of an CodeDeploy application associated with the user or Amazon Web Services account. */
    applicationName: string;
    /** Information about the application revision to register, including type and location. */
    revision: RevisionLocation;
    /** A comment about the revision. */
    description?: string;
}
/** Represents the input of the register on-premises instance operation. */
export interface RegisterOnPremisesInstanceInput {
    /** The name of the on-premises instance to register. */
    instanceName: string;
    /** The ARN of the IAM session to associate with the on-premises instance. */
    iamSessionArn?: string;
    /** The ARN of the user to associate with the on-premises instance. */
    iamUserArn?: string;
}
/** Represents the input of a RemoveTagsFromOnPremisesInstances operation. */
export interface RemoveTagsFromOnPremisesInstancesInput {
    /** The names of the on-premises instances from which to remove tags. */
    instanceNames: string[];
    /** The tag key-value pairs to remove from the on-premises instances. */
    tags: Tag[];
}
export interface SkipWaitTimeForInstanceTerminationInput {
    /** The unique ID of a blue/green deployment for which you want to skip the instance termination wait time. */
    deploymentId?: string;
}
/** Represents the input of a StopDeployment operation. */
export interface StopDeploymentInput {
    /** The unique ID of a deployment. */
    deploymentId: string;
    /** Indicates, when a deployment is stopped, whether instances that have been updated should be rolled back to the previous version of the application revision. */
    autoRollbackEnabled?: boolean;
}
export interface TagResourceInput {
    /** The ARN of a resource, such as a CodeDeploy application or deployment group. */
    ResourceArn: string;
    /** A list of tags that TagResource associates with a resource. The resource is identified by the ResourceArn input parameter. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) that specifies from which resource to disassociate the tags with the keys in the TagKeys input parameter. */
    ResourceArn: string;
    /** A list of keys of Tag objects. The Tag objects identified by the keys are disassociated from the resource specified by the ResourceArn input parameter. */
    TagKeys: string[];
}
/** Represents the input of an UpdateApplication operation. */
export interface UpdateApplicationInput {
    /** The current name of the application you want to change. */
    applicationName?: string;
    /** The new name to give the application. */
    newApplicationName?: string;
}
/** Represents the input of an UpdateDeploymentGroup operation. */
export interface UpdateDeploymentGroupInput {
    /** The application name that corresponds to the deployment group to update. */
    applicationName: string;
    /** The current name of the deployment group. */
    currentDeploymentGroupName: string;
    /** Information to add or change about Amazon CloudWatch alarms when the deployment group is updated. */
    alarmConfiguration?: AlarmConfiguration;
    /** Information for an automatic rollback configuration that is added or changed when a deployment group is updated. */
    autoRollbackConfiguration?: AutoRollbackConfiguration;
    /** The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them. To keep the Auto Scaling groups, enter their names or do not specify this parameter. To  */
    autoScalingGroups?: string[];
    /** Information about blue/green deployment options for a deployment group. */
    blueGreenDeploymentConfiguration?: BlueGreenDeploymentConfiguration;
    /** The replacement deployment configuration name to use, if you want to change it. */
    deploymentConfigName?: string;
    /** Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer. */
    deploymentStyle?: DeploymentStyle;
    /** The replacement set of Amazon EC2 tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names. */
    ec2TagFilters?: EC2TagFilter[];
    /** Information about groups of tags applied to on-premises instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. */
    ec2TagSet?: EC2TagSet;
    /** 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 clust */
    ecsServices?: ECSService[];
    /** Information about the load balancer used in a deployment. */
    loadBalancerInfo?: LoadBalancerInfo;
    /** The new name of the deployment group, if you want to change it. */
    newDeploymentGroupName?: string;
    /** The replacement set of on-premises instance tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names. */
    onPremisesInstanceTagFilters?: TagFilter[];
    /** Information about an on-premises instance tag set. The deployment group includes only on-premises instances identified by all the tag groups. */
    onPremisesTagSet?: OnPremisesTagSet;
    /** 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 ini */
    outdatedInstancesStrategy?: 'UPDATE' | 'IGNORE';
    /** A replacement ARN for the service role, if you want to change it. */
    serviceRoleArn?: string;
    /** This parameter only applies if you are using CodeDeploy with Amazon EC2 Auto Scaling. For more information, see Integrating CodeDeploy with Amazon EC2 Auto Scaling in the CodeDeploy User Guide. Set te */
    terminationHookEnabled?: boolean;
    /** Information about triggers to change when the deployment group is updated. For examples, see Edit a Trigger in a CodeDeploy Deployment Group in the CodeDeploy User Guide. */
    triggerConfigurations?: TriggerConfig[];
}
/** CodeDeploy service binding for Step Functions SDK integrations. */
export declare class CodeDeploy {
    constructor();
    addTagsToOnPremisesInstances<T>(params: AddTagsToOnPremisesInstancesInput): Promise<T>;
    batchGetApplicationRevisions<T>(params: BatchGetApplicationRevisionsInput): Promise<T>;
    batchGetApplications<T>(params: BatchGetApplicationsInput): Promise<T>;
    batchGetDeploymentGroups<T>(params: BatchGetDeploymentGroupsInput): Promise<T>;
    batchGetDeploymentInstances<T>(params: BatchGetDeploymentInstancesInput): Promise<T>;
    batchGetDeployments<T>(params: BatchGetDeploymentsInput): Promise<T>;
    batchGetDeploymentTargets<T>(params: BatchGetDeploymentTargetsInput): Promise<T>;
    batchGetOnPremisesInstances<T>(params: BatchGetOnPremisesInstancesInput): Promise<T>;
    continueDeployment<T>(params: ContinueDeploymentInput): Promise<T>;
    createApplication<T>(params: CreateApplicationInput): Promise<T>;
    createDeployment<T>(params: CreateDeploymentInput): Promise<T>;
    createDeploymentConfig<T>(params: CreateDeploymentConfigInput): Promise<T>;
    createDeploymentGroup<T>(params: CreateDeploymentGroupInput): Promise<T>;
    deleteApplication<T>(params: DeleteApplicationInput): Promise<T>;
    deleteDeploymentConfig<T>(params: DeleteDeploymentConfigInput): Promise<T>;
    deleteDeploymentGroup<T>(params: DeleteDeploymentGroupInput): Promise<T>;
    deleteGitHubAccountToken<T>(params: DeleteGitHubAccountTokenInput): Promise<T>;
    deleteResourcesByExternalId<T>(params: DeleteResourcesByExternalIdInput): Promise<T>;
    deregisterOnPremisesInstance<T>(params: DeregisterOnPremisesInstanceInput): Promise<T>;
    getApplication<T>(params: GetApplicationInput): Promise<T>;
    getApplicationRevision<T>(params: GetApplicationRevisionInput): Promise<T>;
    getDeployment<T>(params: GetDeploymentInput): Promise<T>;
    getDeploymentConfig<T>(params: GetDeploymentConfigInput): Promise<T>;
    getDeploymentGroup<T>(params: GetDeploymentGroupInput): Promise<T>;
    getDeploymentInstance<T>(params: GetDeploymentInstanceInput): Promise<T>;
    getDeploymentTarget<T>(params: GetDeploymentTargetInput): Promise<T>;
    getOnPremisesInstance<T>(params: GetOnPremisesInstanceInput): Promise<T>;
    listApplicationRevisions<T>(params: ListApplicationRevisionsInput): Promise<T>;
    listApplications<T>(params: ListApplicationsInput): Promise<T>;
    listDeploymentConfigs<T>(params: ListDeploymentConfigsInput): Promise<T>;
    listDeploymentGroups<T>(params: ListDeploymentGroupsInput): Promise<T>;
    listDeploymentInstances<T>(params: ListDeploymentInstancesInput): Promise<T>;
    listDeployments<T>(params: ListDeploymentsInput): Promise<T>;
    listDeploymentTargets<T>(params: ListDeploymentTargetsInput): Promise<T>;
    listGitHubAccountTokenNames<T>(params: ListGitHubAccountTokenNamesInput): Promise<T>;
    listOnPremisesInstances<T>(params: ListOnPremisesInstancesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putLifecycleEventHookExecutionStatus<T>(params: PutLifecycleEventHookExecutionStatusInput): Promise<T>;
    registerApplicationRevision<T>(params: RegisterApplicationRevisionInput): Promise<T>;
    registerOnPremisesInstance<T>(params: RegisterOnPremisesInstanceInput): Promise<T>;
    removeTagsFromOnPremisesInstances<T>(params: RemoveTagsFromOnPremisesInstancesInput): Promise<T>;
    skipWaitTimeForInstanceTermination<T>(params: SkipWaitTimeForInstanceTerminationInput): Promise<T>;
    stopDeployment<T>(params: StopDeploymentInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateApplication<T>(params: UpdateApplicationInput): Promise<T>;
    updateDeploymentGroup<T>(params: UpdateDeploymentGroupInput): Promise<T>;
}
//# sourceMappingURL=CodeDeploy.d.ts.map