import {
  _InstanceType,
  ApplicationRevisionSortBy,
  AutoRollbackEvent,
  BundleType,
  ComputePlatform,
  DeploymentCreator,
  DeploymentOption,
  DeploymentReadyAction,
  DeploymentStatus,
  DeploymentTargetType,
  DeploymentType,
  DeploymentWaitType,
  EC2TagFilterType,
  ErrorCode,
  FileExistsBehavior,
  GreenFleetProvisioningAction,
  InstanceAction,
  InstanceStatus,
  LifecycleErrorCode,
  LifecycleEventStatus,
  ListStateFilterAction,
  MinimumHealthyHostsPerZoneType,
  MinimumHealthyHostsType,
  OutdatedInstancesStrategy,
  RegistrationStatus,
  RevisionLocationType,
  SortOrder,
  StopStatus,
  TagFilterType,
  TargetFilterName,
  TargetLabel,
  TargetStatus,
  TrafficRoutingType,
  TriggerEventType,
} from "./enums";
export interface Tag {
  Key?: string | undefined;
  Value?: string | undefined;
}
export interface AddTagsToOnPremisesInstancesInput {
  tags: Tag[] | undefined;
  instanceNames: string[] | undefined;
}
export interface Alarm {
  name?: string | undefined;
}
export interface AlarmConfiguration {
  enabled?: boolean | undefined;
  ignorePollAlarmFailure?: boolean | undefined;
  alarms?: Alarm[] | undefined;
}
export interface ApplicationInfo {
  applicationId?: string | undefined;
  applicationName?: string | undefined;
  createTime?: Date | undefined;
  linkedToGitHub?: boolean | undefined;
  gitHubAccountName?: string | undefined;
  computePlatform?: ComputePlatform | undefined;
}
export interface AppSpecContent {
  content?: string | undefined;
  sha256?: string | undefined;
}
export interface AutoRollbackConfiguration {
  enabled?: boolean | undefined;
  events?: AutoRollbackEvent[] | undefined;
}
export interface AutoScalingGroup {
  name?: string | undefined;
  hook?: string | undefined;
  terminationHook?: string | undefined;
}
export interface GitHubLocation {
  repository?: string | undefined;
  commitId?: string | undefined;
}
export interface S3Location {
  bucket?: string | undefined;
  key?: string | undefined;
  bundleType?: BundleType | undefined;
  version?: string | undefined;
  eTag?: string | undefined;
}
export interface RawString {
  content?: string | undefined;
  sha256?: string | undefined;
}
export interface RevisionLocation {
  revisionType?: RevisionLocationType | undefined;
  s3Location?: S3Location | undefined;
  gitHubLocation?: GitHubLocation | undefined;
  string?: RawString | undefined;
  appSpecContent?: AppSpecContent | undefined;
}
export interface BatchGetApplicationRevisionsInput {
  applicationName: string | undefined;
  revisions: RevisionLocation[] | undefined;
}
export interface GenericRevisionInfo {
  description?: string | undefined;
  deploymentGroups?: string[] | undefined;
  firstUsedTime?: Date | undefined;
  lastUsedTime?: Date | undefined;
  registerTime?: Date | undefined;
}
export interface RevisionInfo {
  revisionLocation?: RevisionLocation | undefined;
  genericRevisionInfo?: GenericRevisionInfo | undefined;
}
export interface BatchGetApplicationRevisionsOutput {
  applicationName?: string | undefined;
  errorMessage?: string | undefined;
  revisions?: RevisionInfo[] | undefined;
}
export interface BatchGetApplicationsInput {
  applicationNames: string[] | undefined;
}
export interface BatchGetApplicationsOutput {
  applicationsInfo?: ApplicationInfo[] | undefined;
}
export interface BatchGetDeploymentGroupsInput {
  applicationName: string | undefined;
  deploymentGroupNames: string[] | undefined;
}
export interface DeploymentReadyOption {
  actionOnTimeout?: DeploymentReadyAction | undefined;
  waitTimeInMinutes?: number | undefined;
}
export interface GreenFleetProvisioningOption {
  action?: GreenFleetProvisioningAction | undefined;
}
export interface BlueInstanceTerminationOption {
  action?: InstanceAction | undefined;
  terminationWaitTimeInMinutes?: number | undefined;
}
export interface BlueGreenDeploymentConfiguration {
  terminateBlueInstancesOnDeploymentSuccess?:
    | BlueInstanceTerminationOption
    | undefined;
  deploymentReadyOption?: DeploymentReadyOption | undefined;
  greenFleetProvisioningOption?: GreenFleetProvisioningOption | undefined;
}
export interface DeploymentStyle {
  deploymentType?: DeploymentType | undefined;
  deploymentOption?: DeploymentOption | undefined;
}
export interface EC2TagFilter {
  Key?: string | undefined;
  Value?: string | undefined;
  Type?: EC2TagFilterType | undefined;
}
export interface EC2TagSet {
  ec2TagSetList?: EC2TagFilter[][] | undefined;
}
export interface ECSService {
  serviceName?: string | undefined;
  clusterName?: string | undefined;
}
export interface LastDeploymentInfo {
  deploymentId?: string | undefined;
  status?: DeploymentStatus | undefined;
  endTime?: Date | undefined;
  createTime?: Date | undefined;
}
export interface ELBInfo {
  name?: string | undefined;
}
export interface TargetGroupInfo {
  name?: string | undefined;
}
export interface TrafficRoute {
  listenerArns?: string[] | undefined;
}
export interface TargetGroupPairInfo {
  targetGroups?: TargetGroupInfo[] | undefined;
  prodTrafficRoute?: TrafficRoute | undefined;
  testTrafficRoute?: TrafficRoute | undefined;
}
export interface LoadBalancerInfo {
  elbInfoList?: ELBInfo[] | undefined;
  targetGroupInfoList?: TargetGroupInfo[] | undefined;
  targetGroupPairInfoList?: TargetGroupPairInfo[] | undefined;
}
export interface TagFilter {
  Key?: string | undefined;
  Value?: string | undefined;
  Type?: TagFilterType | undefined;
}
export interface OnPremisesTagSet {
  onPremisesTagSetList?: TagFilter[][] | undefined;
}
export interface TriggerConfig {
  triggerName?: string | undefined;
  triggerTargetArn?: string | undefined;
  triggerEvents?: TriggerEventType[] | undefined;
}
export interface DeploymentGroupInfo {
  applicationName?: string | undefined;
  deploymentGroupId?: string | undefined;
  deploymentGroupName?: string | undefined;
  deploymentConfigName?: string | undefined;
  ec2TagFilters?: EC2TagFilter[] | undefined;
  onPremisesInstanceTagFilters?: TagFilter[] | undefined;
  autoScalingGroups?: AutoScalingGroup[] | undefined;
  serviceRoleArn?: string | undefined;
  targetRevision?: RevisionLocation | undefined;
  triggerConfigurations?: TriggerConfig[] | undefined;
  alarmConfiguration?: AlarmConfiguration | undefined;
  autoRollbackConfiguration?: AutoRollbackConfiguration | undefined;
  deploymentStyle?: DeploymentStyle | undefined;
  outdatedInstancesStrategy?: OutdatedInstancesStrategy | undefined;
  blueGreenDeploymentConfiguration?:
    | BlueGreenDeploymentConfiguration
    | undefined;
  loadBalancerInfo?: LoadBalancerInfo | undefined;
  lastSuccessfulDeployment?: LastDeploymentInfo | undefined;
  lastAttemptedDeployment?: LastDeploymentInfo | undefined;
  ec2TagSet?: EC2TagSet | undefined;
  onPremisesTagSet?: OnPremisesTagSet | undefined;
  computePlatform?: ComputePlatform | undefined;
  ecsServices?: ECSService[] | undefined;
  terminationHookEnabled?: boolean | undefined;
}
export interface BatchGetDeploymentGroupsOutput {
  deploymentGroupsInfo?: DeploymentGroupInfo[] | undefined;
  errorMessage?: string | undefined;
}
export interface BatchGetDeploymentInstancesInput {
  deploymentId: string | undefined;
  instanceIds: string[] | undefined;
}
export interface Diagnostics {
  errorCode?: LifecycleErrorCode | undefined;
  scriptName?: string | undefined;
  message?: string | undefined;
  logTail?: string | undefined;
}
export interface LifecycleEvent {
  lifecycleEventName?: string | undefined;
  diagnostics?: Diagnostics | undefined;
  startTime?: Date | undefined;
  endTime?: Date | undefined;
  status?: LifecycleEventStatus | undefined;
}
export interface InstanceSummary {
  deploymentId?: string | undefined;
  instanceId?: string | undefined;
  status?: InstanceStatus | undefined;
  lastUpdatedAt?: Date | undefined;
  lifecycleEvents?: LifecycleEvent[] | undefined;
  instanceType?: _InstanceType | undefined;
}
export interface BatchGetDeploymentInstancesOutput {
  instancesSummary?: InstanceSummary[] | undefined;
  errorMessage?: string | undefined;
}
export interface BatchGetDeploymentsInput {
  deploymentIds: string[] | undefined;
}
export interface DeploymentOverview {
  Pending?: number | undefined;
  InProgress?: number | undefined;
  Succeeded?: number | undefined;
  Failed?: number | undefined;
  Skipped?: number | undefined;
  Ready?: number | undefined;
}
export interface ErrorInformation {
  code?: ErrorCode | undefined;
  message?: string | undefined;
}
export interface RelatedDeployments {
  autoUpdateOutdatedInstancesRootDeploymentId?: string | undefined;
  autoUpdateOutdatedInstancesDeploymentIds?: string[] | undefined;
}
export interface RollbackInfo {
  rollbackDeploymentId?: string | undefined;
  rollbackTriggeringDeploymentId?: string | undefined;
  rollbackMessage?: string | undefined;
}
export interface TargetInstances {
  tagFilters?: EC2TagFilter[] | undefined;
  autoScalingGroups?: string[] | undefined;
  ec2TagSet?: EC2TagSet | undefined;
}
export interface DeploymentInfo {
  applicationName?: string | undefined;
  deploymentGroupName?: string | undefined;
  deploymentConfigName?: string | undefined;
  deploymentId?: string | undefined;
  previousRevision?: RevisionLocation | undefined;
  revision?: RevisionLocation | undefined;
  status?: DeploymentStatus | undefined;
  errorInformation?: ErrorInformation | undefined;
  createTime?: Date | undefined;
  startTime?: Date | undefined;
  completeTime?: Date | undefined;
  deploymentOverview?: DeploymentOverview | undefined;
  description?: string | undefined;
  creator?: DeploymentCreator | undefined;
  ignoreApplicationStopFailures?: boolean | undefined;
  autoRollbackConfiguration?: AutoRollbackConfiguration | undefined;
  updateOutdatedInstancesOnly?: boolean | undefined;
  rollbackInfo?: RollbackInfo | undefined;
  deploymentStyle?: DeploymentStyle | undefined;
  targetInstances?: TargetInstances | undefined;
  instanceTerminationWaitTimeStarted?: boolean | undefined;
  blueGreenDeploymentConfiguration?:
    | BlueGreenDeploymentConfiguration
    | undefined;
  loadBalancerInfo?: LoadBalancerInfo | undefined;
  additionalDeploymentStatusInfo?: string | undefined;
  fileExistsBehavior?: FileExistsBehavior | undefined;
  deploymentStatusMessages?: string[] | undefined;
  computePlatform?: ComputePlatform | undefined;
  externalId?: string | undefined;
  relatedDeployments?: RelatedDeployments | undefined;
  overrideAlarmConfiguration?: AlarmConfiguration | undefined;
}
export interface BatchGetDeploymentsOutput {
  deploymentsInfo?: DeploymentInfo[] | undefined;
}
export interface BatchGetDeploymentTargetsInput {
  deploymentId: string | undefined;
  targetIds: string[] | undefined;
}
export interface CloudFormationTarget {
  deploymentId?: string | undefined;
  targetId?: string | undefined;
  lastUpdatedAt?: Date | undefined;
  lifecycleEvents?: LifecycleEvent[] | undefined;
  status?: TargetStatus | undefined;
  resourceType?: string | undefined;
  targetVersionWeight?: number | undefined;
}
export interface ECSTaskSet {
  identifer?: string | undefined;
  desiredCount?: number | undefined;
  pendingCount?: number | undefined;
  runningCount?: number | undefined;
  status?: string | undefined;
  trafficWeight?: number | undefined;
  targetGroup?: TargetGroupInfo | undefined;
  taskSetLabel?: TargetLabel | undefined;
}
export interface ECSTarget {
  deploymentId?: string | undefined;
  targetId?: string | undefined;
  targetArn?: string | undefined;
  lastUpdatedAt?: Date | undefined;
  lifecycleEvents?: LifecycleEvent[] | undefined;
  status?: TargetStatus | undefined;
  taskSetsInfo?: ECSTaskSet[] | undefined;
}
export interface InstanceTarget {
  deploymentId?: string | undefined;
  targetId?: string | undefined;
  targetArn?: string | undefined;
  status?: TargetStatus | undefined;
  lastUpdatedAt?: Date | undefined;
  lifecycleEvents?: LifecycleEvent[] | undefined;
  instanceLabel?: TargetLabel | undefined;
}
export interface LambdaFunctionInfo {
  functionName?: string | undefined;
  functionAlias?: string | undefined;
  currentVersion?: string | undefined;
  targetVersion?: string | undefined;
  targetVersionWeight?: number | undefined;
}
export interface LambdaTarget {
  deploymentId?: string | undefined;
  targetId?: string | undefined;
  targetArn?: string | undefined;
  status?: TargetStatus | undefined;
  lastUpdatedAt?: Date | undefined;
  lifecycleEvents?: LifecycleEvent[] | undefined;
  lambdaFunctionInfo?: LambdaFunctionInfo | undefined;
}
export interface DeploymentTarget {
  deploymentTargetType?: DeploymentTargetType | undefined;
  instanceTarget?: InstanceTarget | undefined;
  lambdaTarget?: LambdaTarget | undefined;
  ecsTarget?: ECSTarget | undefined;
  cloudFormationTarget?: CloudFormationTarget | undefined;
}
export interface BatchGetDeploymentTargetsOutput {
  deploymentTargets?: DeploymentTarget[] | undefined;
}
export interface BatchGetOnPremisesInstancesInput {
  instanceNames: string[] | undefined;
}
export interface InstanceInfo {
  instanceName?: string | undefined;
  iamSessionArn?: string | undefined;
  iamUserArn?: string | undefined;
  instanceArn?: string | undefined;
  registerTime?: Date | undefined;
  deregisterTime?: Date | undefined;
  tags?: Tag[] | undefined;
}
export interface BatchGetOnPremisesInstancesOutput {
  instanceInfos?: InstanceInfo[] | undefined;
}
export interface ContinueDeploymentInput {
  deploymentId?: string | undefined;
  deploymentWaitType?: DeploymentWaitType | undefined;
}
export interface CreateApplicationInput {
  applicationName: string | undefined;
  computePlatform?: ComputePlatform | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateApplicationOutput {
  applicationId?: string | undefined;
}
export interface CreateDeploymentInput {
  applicationName: string | undefined;
  deploymentGroupName?: string | undefined;
  revision?: RevisionLocation | undefined;
  deploymentConfigName?: string | undefined;
  description?: string | undefined;
  ignoreApplicationStopFailures?: boolean | undefined;
  targetInstances?: TargetInstances | undefined;
  autoRollbackConfiguration?: AutoRollbackConfiguration | undefined;
  updateOutdatedInstancesOnly?: boolean | undefined;
  fileExistsBehavior?: FileExistsBehavior | undefined;
  overrideAlarmConfiguration?: AlarmConfiguration | undefined;
}
export interface CreateDeploymentOutput {
  deploymentId?: string | undefined;
}
export interface MinimumHealthyHosts {
  type?: MinimumHealthyHostsType | undefined;
  value?: number | undefined;
}
export interface TimeBasedCanary {
  canaryPercentage?: number | undefined;
  canaryInterval?: number | undefined;
}
export interface TimeBasedLinear {
  linearPercentage?: number | undefined;
  linearInterval?: number | undefined;
}
export interface TrafficRoutingConfig {
  type?: TrafficRoutingType | undefined;
  timeBasedCanary?: TimeBasedCanary | undefined;
  timeBasedLinear?: TimeBasedLinear | undefined;
}
export interface MinimumHealthyHostsPerZone {
  type?: MinimumHealthyHostsPerZoneType | undefined;
  value?: number | undefined;
}
export interface ZonalConfig {
  firstZoneMonitorDurationInSeconds?: number | undefined;
  monitorDurationInSeconds?: number | undefined;
  minimumHealthyHostsPerZone?: MinimumHealthyHostsPerZone | undefined;
}
export interface CreateDeploymentConfigInput {
  deploymentConfigName: string | undefined;
  minimumHealthyHosts?: MinimumHealthyHosts | undefined;
  trafficRoutingConfig?: TrafficRoutingConfig | undefined;
  computePlatform?: ComputePlatform | undefined;
  zonalConfig?: ZonalConfig | undefined;
}
export interface CreateDeploymentConfigOutput {
  deploymentConfigId?: string | undefined;
}
export interface CreateDeploymentGroupInput {
  applicationName: string | undefined;
  deploymentGroupName: string | undefined;
  deploymentConfigName?: string | undefined;
  ec2TagFilters?: EC2TagFilter[] | undefined;
  onPremisesInstanceTagFilters?: TagFilter[] | undefined;
  autoScalingGroups?: string[] | undefined;
  serviceRoleArn: string | undefined;
  triggerConfigurations?: TriggerConfig[] | undefined;
  alarmConfiguration?: AlarmConfiguration | undefined;
  autoRollbackConfiguration?: AutoRollbackConfiguration | undefined;
  outdatedInstancesStrategy?: OutdatedInstancesStrategy | undefined;
  deploymentStyle?: DeploymentStyle | undefined;
  blueGreenDeploymentConfiguration?:
    | BlueGreenDeploymentConfiguration
    | undefined;
  loadBalancerInfo?: LoadBalancerInfo | undefined;
  ec2TagSet?: EC2TagSet | undefined;
  ecsServices?: ECSService[] | undefined;
  onPremisesTagSet?: OnPremisesTagSet | undefined;
  tags?: Tag[] | undefined;
  terminationHookEnabled?: boolean | undefined;
}
export interface CreateDeploymentGroupOutput {
  deploymentGroupId?: string | undefined;
}
export interface DeleteApplicationInput {
  applicationName: string | undefined;
}
export interface DeleteDeploymentConfigInput {
  deploymentConfigName: string | undefined;
}
export interface DeleteDeploymentGroupInput {
  applicationName: string | undefined;
  deploymentGroupName: string | undefined;
}
export interface DeleteDeploymentGroupOutput {
  hooksNotCleanedUp?: AutoScalingGroup[] | undefined;
}
export interface DeleteGitHubAccountTokenInput {
  tokenName?: string | undefined;
}
export interface DeleteGitHubAccountTokenOutput {
  tokenName?: string | undefined;
}
export interface DeleteResourcesByExternalIdInput {
  externalId?: string | undefined;
}
export interface DeleteResourcesByExternalIdOutput {}
export interface DeregisterOnPremisesInstanceInput {
  instanceName: string | undefined;
}
export interface GetApplicationInput {
  applicationName: string | undefined;
}
export interface GetApplicationOutput {
  application?: ApplicationInfo | undefined;
}
export interface GetApplicationRevisionInput {
  applicationName: string | undefined;
  revision: RevisionLocation | undefined;
}
export interface GetApplicationRevisionOutput {
  applicationName?: string | undefined;
  revision?: RevisionLocation | undefined;
  revisionInfo?: GenericRevisionInfo | undefined;
}
export interface GetDeploymentInput {
  deploymentId: string | undefined;
}
export interface GetDeploymentOutput {
  deploymentInfo?: DeploymentInfo | undefined;
}
export interface GetDeploymentConfigInput {
  deploymentConfigName: string | undefined;
}
export interface DeploymentConfigInfo {
  deploymentConfigId?: string | undefined;
  deploymentConfigName?: string | undefined;
  minimumHealthyHosts?: MinimumHealthyHosts | undefined;
  createTime?: Date | undefined;
  computePlatform?: ComputePlatform | undefined;
  trafficRoutingConfig?: TrafficRoutingConfig | undefined;
  zonalConfig?: ZonalConfig | undefined;
}
export interface GetDeploymentConfigOutput {
  deploymentConfigInfo?: DeploymentConfigInfo | undefined;
}
export interface GetDeploymentGroupInput {
  applicationName: string | undefined;
  deploymentGroupName: string | undefined;
}
export interface GetDeploymentGroupOutput {
  deploymentGroupInfo?: DeploymentGroupInfo | undefined;
}
export interface GetDeploymentInstanceInput {
  deploymentId: string | undefined;
  instanceId: string | undefined;
}
export interface GetDeploymentInstanceOutput {
  instanceSummary?: InstanceSummary | undefined;
}
export interface GetDeploymentTargetInput {
  deploymentId: string | undefined;
  targetId: string | undefined;
}
export interface GetDeploymentTargetOutput {
  deploymentTarget?: DeploymentTarget | undefined;
}
export interface GetOnPremisesInstanceInput {
  instanceName: string | undefined;
}
export interface GetOnPremisesInstanceOutput {
  instanceInfo?: InstanceInfo | undefined;
}
export interface ListApplicationRevisionsInput {
  applicationName: string | undefined;
  sortBy?: ApplicationRevisionSortBy | undefined;
  sortOrder?: SortOrder | undefined;
  s3Bucket?: string | undefined;
  s3KeyPrefix?: string | undefined;
  deployed?: ListStateFilterAction | undefined;
  nextToken?: string | undefined;
}
export interface ListApplicationRevisionsOutput {
  revisions?: RevisionLocation[] | undefined;
  nextToken?: string | undefined;
}
export interface ListApplicationsInput {
  nextToken?: string | undefined;
}
export interface ListApplicationsOutput {
  applications?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListDeploymentConfigsInput {
  nextToken?: string | undefined;
}
export interface ListDeploymentConfigsOutput {
  deploymentConfigsList?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListDeploymentGroupsInput {
  applicationName: string | undefined;
  nextToken?: string | undefined;
}
export interface ListDeploymentGroupsOutput {
  applicationName?: string | undefined;
  deploymentGroups?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListDeploymentInstancesInput {
  deploymentId: string | undefined;
  nextToken?: string | undefined;
  instanceStatusFilter?: InstanceStatus[] | undefined;
  instanceTypeFilter?: _InstanceType[] | undefined;
}
export interface ListDeploymentInstancesOutput {
  instancesList?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface TimeRange {
  start?: Date | undefined;
  end?: Date | undefined;
}
export interface ListDeploymentsInput {
  applicationName?: string | undefined;
  deploymentGroupName?: string | undefined;
  externalId?: string | undefined;
  includeOnlyStatuses?: DeploymentStatus[] | undefined;
  createTimeRange?: TimeRange | undefined;
  nextToken?: string | undefined;
}
export interface ListDeploymentsOutput {
  deployments?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListDeploymentTargetsInput {
  deploymentId: string | undefined;
  nextToken?: string | undefined;
  targetFilters?: Partial<Record<TargetFilterName, string[]>> | undefined;
}
export interface ListDeploymentTargetsOutput {
  targetIds?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListGitHubAccountTokenNamesInput {
  nextToken?: string | undefined;
}
export interface ListGitHubAccountTokenNamesOutput {
  tokenNameList?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListOnPremisesInstancesInput {
  registrationStatus?: RegistrationStatus | undefined;
  tagFilters?: TagFilter[] | undefined;
  nextToken?: string | undefined;
}
export interface ListOnPremisesInstancesOutput {
  instanceNames?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListTagsForResourceInput {
  ResourceArn: string | undefined;
  NextToken?: string | undefined;
}
export interface ListTagsForResourceOutput {
  Tags?: Tag[] | undefined;
  NextToken?: string | undefined;
}
export interface PutLifecycleEventHookExecutionStatusInput {
  deploymentId?: string | undefined;
  lifecycleEventHookExecutionId?: string | undefined;
  status?: LifecycleEventStatus | undefined;
}
export interface PutLifecycleEventHookExecutionStatusOutput {
  lifecycleEventHookExecutionId?: string | undefined;
}
export interface RegisterApplicationRevisionInput {
  applicationName: string | undefined;
  description?: string | undefined;
  revision: RevisionLocation | undefined;
}
export interface RegisterOnPremisesInstanceInput {
  instanceName: string | undefined;
  iamSessionArn?: string | undefined;
  iamUserArn?: string | undefined;
}
export interface RemoveTagsFromOnPremisesInstancesInput {
  tags: Tag[] | undefined;
  instanceNames: string[] | undefined;
}
export interface SkipWaitTimeForInstanceTerminationInput {
  deploymentId?: string | undefined;
}
export interface StopDeploymentInput {
  deploymentId: string | undefined;
  autoRollbackEnabled?: boolean | undefined;
}
export interface StopDeploymentOutput {
  status?: StopStatus | undefined;
  statusMessage?: string | undefined;
}
export interface TagResourceInput {
  ResourceArn: string | undefined;
  Tags: Tag[] | undefined;
}
export interface TagResourceOutput {}
export interface UntagResourceInput {
  ResourceArn: string | undefined;
  TagKeys: string[] | undefined;
}
export interface UntagResourceOutput {}
export interface UpdateApplicationInput {
  applicationName?: string | undefined;
  newApplicationName?: string | undefined;
}
export interface UpdateDeploymentGroupInput {
  applicationName: string | undefined;
  currentDeploymentGroupName: string | undefined;
  newDeploymentGroupName?: string | undefined;
  deploymentConfigName?: string | undefined;
  ec2TagFilters?: EC2TagFilter[] | undefined;
  onPremisesInstanceTagFilters?: TagFilter[] | undefined;
  autoScalingGroups?: string[] | undefined;
  serviceRoleArn?: string | undefined;
  triggerConfigurations?: TriggerConfig[] | undefined;
  alarmConfiguration?: AlarmConfiguration | undefined;
  autoRollbackConfiguration?: AutoRollbackConfiguration | undefined;
  outdatedInstancesStrategy?: OutdatedInstancesStrategy | undefined;
  deploymentStyle?: DeploymentStyle | undefined;
  blueGreenDeploymentConfiguration?:
    | BlueGreenDeploymentConfiguration
    | undefined;
  loadBalancerInfo?: LoadBalancerInfo | undefined;
  ec2TagSet?: EC2TagSet | undefined;
  ecsServices?: ECSService[] | undefined;
  onPremisesTagSet?: OnPremisesTagSet | undefined;
  terminationHookEnabled?: boolean | undefined;
}
export interface UpdateDeploymentGroupOutput {
  hooksNotCleanedUp?: AutoScalingGroup[] | undefined;
}
