import {
  _InstanceType,
  ActivityStatus,
  AllocationStrategy,
  AllowedImagesSettingsDisabledState,
  AllowedImagesSettingsEnabledState,
  BatchState,
  CapacityManagerStatus,
  ClientCertificateRevocationListStatusCode,
  DeviceTrustProviderType,
  DiskImageFormat,
  DnsNameState,
  ExcessCapacityTerminationPolicy,
  FastLaunchResourceType,
  FastLaunchStateCode,
  FastSnapshotRestoreStateCode,
  FleetType,
  ImageBlockPublicAccessDisabledState,
  ImageBlockPublicAccessEnabledState,
  InitializationType,
  InstanceInterruptionBehavior,
  InternetGatewayBlockMode,
  IpAddressType,
  ManagedBy,
  MetricType,
  OnDemandAllocationStrategy,
  PayerResponsibility,
  ResourceType,
  RIProductDescription,
  RouteServerPropagationState,
  SecurityGroupVpcAssociationState,
  ServiceConnectivityType,
  SnapshotBlockPublicAccessState,
  SpotInstanceState,
  SpotInstanceType,
  State,
  StatisticType,
  TargetCapacityUnitType,
  TransitGatewayAssociationState,
  TransitGatewayAttachmentResourceType,
  TransitGatewayAttachmentState,
  TransitGatewayPropagationState,
  UserTrustProviderType,
  VerifiedAccessLogDeliveryStatusCode,
  VolumeAttributeName,
  VolumeModificationState,
  VolumeStatusInfoStatus,
  VolumeStatusName,
  VolumeType,
  VpcAttributeName,
  VpcBlockPublicAccessExclusionsAllowed,
  VpcBlockPublicAccessState,
} from "./enums";
import {
  ActiveVpnTunnelStatus,
  AddressTransfer,
  AllowedPrincipal,
  AsnAssociation,
  AssociationStatus,
  IamInstanceProfileAssociation,
  IamInstanceProfileSpecification,
  InstanceEventWindow,
  IpamResourceDiscoveryAssociation,
  NatGatewayAddress,
  OperatorResponse,
  RouteServerAssociation,
  SubnetIpv6CidrBlockAssociation,
  Tag,
  TagSpecification,
  TransitGatewayAssociation,
  TransitGatewayMulticastDomainAssociations,
  TransitGatewayPeeringAttachment,
  TransitGatewayPolicyTableAssociation,
  TransitGatewayVpcAttachment,
  TrunkInterfaceAssociation,
  UserIdGroupPair,
  VerifiedAccessInstance,
  VerifiedAccessTrustProvider,
  Volume,
  VpcCidrBlockAssociation,
  VpcIpv6CidrBlockAssociation,
  VpcPeeringConnection,
} from "./models_0";
import {
  BlockDeviceMapping,
  GroupIdentifier,
  Subnet,
  Vpc,
  VpcEncryptionControl,
} from "./models_1";
import {
  ConnectionNotification,
  DnsEntry,
  PayerResponsibilityEntry,
  ServiceConfiguration,
  ServiceTypeDetail,
  SpotInstanceStateFault,
  TrafficMirrorFilter,
  TrafficMirrorFilterRule,
  TrafficMirrorSession,
  TrafficMirrorTarget,
  TransitGateway,
  TransitGatewayConnect,
  TransitGatewayConnectPeer,
  TransitGatewayMeteringPolicy,
  TransitGatewayMulticastDomain,
  TransitGatewayPolicyTable,
  TransitGatewayRouteTable,
  TransitGatewayRouteTableAnnouncement,
  VerifiedAccessEndpoint,
  VerifiedAccessGroup,
  VpcBlockPublicAccessExclusion,
  VpcEndpoint,
  VpnConcentrator,
  VpnConnection,
  VpnGateway,
} from "./models_2";
import {
  ExportTaskS3Location,
  FastLaunchLaunchTemplateSpecificationResponse,
  FastLaunchSnapshotConfigurationResponse,
  Filter,
  ProductCode,
} from "./models_3";
import {
  AttributeBooleanValue,
  InstanceNetworkInterfaceSpecification,
  LaunchTemplateConfig,
  LoadBalancersConfig,
  RegisteredInstance,
  SpotCapacityRebalance,
  SpotFleetLaunchSpecification,
  SpotPlacement,
} from "./models_4";
export interface SpotMaintenanceStrategies {
  CapacityRebalance?: SpotCapacityRebalance | undefined;
}
export interface SpotFleetRequestConfigData {
  AllocationStrategy?: AllocationStrategy | undefined;
  OnDemandAllocationStrategy?: OnDemandAllocationStrategy | undefined;
  SpotMaintenanceStrategies?: SpotMaintenanceStrategies | undefined;
  ClientToken?: string | undefined;
  ExcessCapacityTerminationPolicy?: ExcessCapacityTerminationPolicy | undefined;
  FulfilledCapacity?: number | undefined;
  OnDemandFulfilledCapacity?: number | undefined;
  IamFleetRole: string | undefined;
  LaunchSpecifications?: SpotFleetLaunchSpecification[] | undefined;
  LaunchTemplateConfigs?: LaunchTemplateConfig[] | undefined;
  SpotPrice?: string | undefined;
  TargetCapacity: number | undefined;
  OnDemandTargetCapacity?: number | undefined;
  OnDemandMaxTotalPrice?: string | undefined;
  SpotMaxTotalPrice?: string | undefined;
  TerminateInstancesWithExpiration?: boolean | undefined;
  Type?: FleetType | undefined;
  ValidFrom?: Date | undefined;
  ValidUntil?: Date | undefined;
  ReplaceUnhealthyInstances?: boolean | undefined;
  InstanceInterruptionBehavior?: InstanceInterruptionBehavior | undefined;
  LoadBalancersConfig?: LoadBalancersConfig | undefined;
  InstancePoolsToUseCount?: number | undefined;
  Context?: string | undefined;
  TargetCapacityUnitType?: TargetCapacityUnitType | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface SpotFleetRequestConfig {
  ActivityStatus?: ActivityStatus | undefined;
  CreateTime?: Date | undefined;
  SpotFleetRequestConfig?: SpotFleetRequestConfigData | undefined;
  SpotFleetRequestId?: string | undefined;
  SpotFleetRequestState?: BatchState | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeSpotFleetRequestsResponse {
  NextToken?: string | undefined;
  SpotFleetRequestConfigs?: SpotFleetRequestConfig[] | undefined;
}
export interface DescribeSpotInstanceRequestsRequest {
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  SpotInstanceRequestIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface RunInstancesMonitoringEnabled {
  Enabled: boolean | undefined;
}
export interface LaunchSpecification {
  UserData?: string | undefined;
  AddressingType?: string | undefined;
  BlockDeviceMappings?: BlockDeviceMapping[] | undefined;
  EbsOptimized?: boolean | undefined;
  IamInstanceProfile?: IamInstanceProfileSpecification | undefined;
  ImageId?: string | undefined;
  InstanceType?: _InstanceType | undefined;
  KernelId?: string | undefined;
  KeyName?: string | undefined;
  NetworkInterfaces?: InstanceNetworkInterfaceSpecification[] | undefined;
  Placement?: SpotPlacement | undefined;
  RamdiskId?: string | undefined;
  SubnetId?: string | undefined;
  SecurityGroups?: GroupIdentifier[] | undefined;
  Monitoring?: RunInstancesMonitoringEnabled | undefined;
}
export interface SpotInstanceStatus {
  Code?: string | undefined;
  Message?: string | undefined;
  UpdateTime?: Date | undefined;
}
export interface SpotInstanceRequest {
  ActualBlockHourlyPrice?: string | undefined;
  AvailabilityZoneGroup?: string | undefined;
  BlockDurationMinutes?: number | undefined;
  CreateTime?: Date | undefined;
  Fault?: SpotInstanceStateFault | undefined;
  InstanceId?: string | undefined;
  LaunchGroup?: string | undefined;
  LaunchSpecification?: LaunchSpecification | undefined;
  LaunchedAvailabilityZone?: string | undefined;
  LaunchedAvailabilityZoneId?: string | undefined;
  ProductDescription?: RIProductDescription | undefined;
  SpotInstanceRequestId?: string | undefined;
  SpotPrice?: string | undefined;
  State?: SpotInstanceState | undefined;
  Status?: SpotInstanceStatus | undefined;
  Tags?: Tag[] | undefined;
  Type?: SpotInstanceType | undefined;
  ValidFrom?: Date | undefined;
  ValidUntil?: Date | undefined;
  InstanceInterruptionBehavior?: InstanceInterruptionBehavior | undefined;
}
export interface DescribeSpotInstanceRequestsResult {
  SpotInstanceRequests?: SpotInstanceRequest[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeSpotPriceHistoryRequest {
  AvailabilityZoneId?: string | undefined;
  DryRun?: boolean | undefined;
  StartTime?: Date | undefined;
  EndTime?: Date | undefined;
  InstanceTypes?: _InstanceType[] | undefined;
  ProductDescriptions?: string[] | undefined;
  Filters?: Filter[] | undefined;
  AvailabilityZone?: string | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface SpotPrice {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  InstanceType?: _InstanceType | undefined;
  ProductDescription?: RIProductDescription | undefined;
  SpotPrice?: string | undefined;
  Timestamp?: Date | undefined;
}
export interface DescribeSpotPriceHistoryResult {
  NextToken?: string | undefined;
  SpotPriceHistory?: SpotPrice[] | undefined;
}
export interface DescribeStaleSecurityGroupsRequest {
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  VpcId: string | undefined;
}
export interface StaleIpPermission {
  FromPort?: number | undefined;
  IpProtocol?: string | undefined;
  IpRanges?: string[] | undefined;
  PrefixListIds?: string[] | undefined;
  ToPort?: number | undefined;
  UserIdGroupPairs?: UserIdGroupPair[] | undefined;
}
export interface StaleSecurityGroup {
  Description?: string | undefined;
  GroupId?: string | undefined;
  GroupName?: string | undefined;
  StaleIpPermissions?: StaleIpPermission[] | undefined;
  StaleIpPermissionsEgress?: StaleIpPermission[] | undefined;
  VpcId?: string | undefined;
}
export interface DescribeStaleSecurityGroupsResult {
  NextToken?: string | undefined;
  StaleSecurityGroupSet?: StaleSecurityGroup[] | undefined;
}
export interface DescribeStoreImageTasksRequest {
  ImageIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface StoreImageTaskResult {
  AmiId?: string | undefined;
  TaskStartTime?: Date | undefined;
  Bucket?: string | undefined;
  S3objectKey?: string | undefined;
  ProgressPercentage?: number | undefined;
  StoreTaskState?: string | undefined;
  StoreTaskFailureReason?: string | undefined;
}
export interface DescribeStoreImageTasksResult {
  StoreImageTaskResults?: StoreImageTaskResult[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeSubnetsRequest {
  Filters?: Filter[] | undefined;
  SubnetIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeSubnetsResult {
  NextToken?: string | undefined;
  Subnets?: Subnet[] | undefined;
}
export interface DescribeTagsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface TagDescription {
  Key?: string | undefined;
  ResourceId?: string | undefined;
  ResourceType?: ResourceType | undefined;
  Value?: string | undefined;
}
export interface DescribeTagsResult {
  NextToken?: string | undefined;
  Tags?: TagDescription[] | undefined;
}
export interface DescribeTrafficMirrorFilterRulesRequest {
  TrafficMirrorFilterRuleIds?: string[] | undefined;
  TrafficMirrorFilterId?: string | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTrafficMirrorFilterRulesResult {
  TrafficMirrorFilterRules?: TrafficMirrorFilterRule[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTrafficMirrorFiltersRequest {
  TrafficMirrorFilterIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTrafficMirrorFiltersResult {
  TrafficMirrorFilters?: TrafficMirrorFilter[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTrafficMirrorSessionsRequest {
  TrafficMirrorSessionIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTrafficMirrorSessionsResult {
  TrafficMirrorSessions?: TrafficMirrorSession[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTrafficMirrorTargetsRequest {
  TrafficMirrorTargetIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTrafficMirrorTargetsResult {
  TrafficMirrorTargets?: TrafficMirrorTarget[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayAttachmentsRequest {
  TransitGatewayAttachmentIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayAttachmentAssociation {
  TransitGatewayRouteTableId?: string | undefined;
  State?: TransitGatewayAssociationState | undefined;
}
export interface TransitGatewayAttachment {
  TransitGatewayAttachmentId?: string | undefined;
  TransitGatewayId?: string | undefined;
  TransitGatewayOwnerId?: string | undefined;
  ResourceOwnerId?: string | undefined;
  ResourceType?: TransitGatewayAttachmentResourceType | undefined;
  ResourceId?: string | undefined;
  State?: TransitGatewayAttachmentState | undefined;
  Association?: TransitGatewayAttachmentAssociation | undefined;
  CreationTime?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeTransitGatewayAttachmentsResult {
  TransitGatewayAttachments?: TransitGatewayAttachment[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayConnectPeersRequest {
  TransitGatewayConnectPeerIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayConnectPeersResult {
  TransitGatewayConnectPeers?: TransitGatewayConnectPeer[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayConnectsRequest {
  TransitGatewayAttachmentIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayConnectsResult {
  TransitGatewayConnects?: TransitGatewayConnect[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayMeteringPoliciesRequest {
  TransitGatewayMeteringPolicyIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayMeteringPoliciesResult {
  TransitGatewayMeteringPolicies?: TransitGatewayMeteringPolicy[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayMulticastDomainsRequest {
  TransitGatewayMulticastDomainIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayMulticastDomainsResult {
  TransitGatewayMulticastDomains?: TransitGatewayMulticastDomain[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayPeeringAttachmentsRequest {
  TransitGatewayAttachmentIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayPeeringAttachmentsResult {
  TransitGatewayPeeringAttachments?:
    | TransitGatewayPeeringAttachment[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayPolicyTablesRequest {
  TransitGatewayPolicyTableIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayPolicyTablesResult {
  TransitGatewayPolicyTables?: TransitGatewayPolicyTable[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayRouteTableAnnouncementsRequest {
  TransitGatewayRouteTableAnnouncementIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayRouteTableAnnouncementsResult {
  TransitGatewayRouteTableAnnouncements?:
    | TransitGatewayRouteTableAnnouncement[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayRouteTablesRequest {
  TransitGatewayRouteTableIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayRouteTablesResult {
  TransitGatewayRouteTables?: TransitGatewayRouteTable[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewaysRequest {
  TransitGatewayIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewaysResult {
  TransitGateways?: TransitGateway[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTransitGatewayVpcAttachmentsRequest {
  TransitGatewayAttachmentIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeTransitGatewayVpcAttachmentsResult {
  TransitGatewayVpcAttachments?: TransitGatewayVpcAttachment[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeTrunkInterfaceAssociationsRequest {
  AssociationIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface DescribeTrunkInterfaceAssociationsResult {
  InterfaceAssociations?: TrunkInterfaceAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVerifiedAccessEndpointsRequest {
  VerifiedAccessEndpointIds?: string[] | undefined;
  VerifiedAccessInstanceId?: string | undefined;
  VerifiedAccessGroupId?: string | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVerifiedAccessEndpointsResult {
  VerifiedAccessEndpoints?: VerifiedAccessEndpoint[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVerifiedAccessGroupsRequest {
  VerifiedAccessGroupIds?: string[] | undefined;
  VerifiedAccessInstanceId?: string | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVerifiedAccessGroupsResult {
  VerifiedAccessGroups?: VerifiedAccessGroup[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVerifiedAccessInstanceLoggingConfigurationsRequest {
  VerifiedAccessInstanceIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface VerifiedAccessLogDeliveryStatus {
  Code?: VerifiedAccessLogDeliveryStatusCode | undefined;
  Message?: string | undefined;
}
export interface VerifiedAccessLogCloudWatchLogsDestination {
  Enabled?: boolean | undefined;
  DeliveryStatus?: VerifiedAccessLogDeliveryStatus | undefined;
  LogGroup?: string | undefined;
}
export interface VerifiedAccessLogKinesisDataFirehoseDestination {
  Enabled?: boolean | undefined;
  DeliveryStatus?: VerifiedAccessLogDeliveryStatus | undefined;
  DeliveryStream?: string | undefined;
}
export interface VerifiedAccessLogS3Destination {
  Enabled?: boolean | undefined;
  DeliveryStatus?: VerifiedAccessLogDeliveryStatus | undefined;
  BucketName?: string | undefined;
  Prefix?: string | undefined;
  BucketOwner?: string | undefined;
}
export interface VerifiedAccessLogs {
  S3?: VerifiedAccessLogS3Destination | undefined;
  CloudWatchLogs?: VerifiedAccessLogCloudWatchLogsDestination | undefined;
  KinesisDataFirehose?:
    | VerifiedAccessLogKinesisDataFirehoseDestination
    | undefined;
  LogVersion?: string | undefined;
  IncludeTrustContext?: boolean | undefined;
}
export interface VerifiedAccessInstanceLoggingConfiguration {
  VerifiedAccessInstanceId?: string | undefined;
  AccessLogs?: VerifiedAccessLogs | undefined;
}
export interface DescribeVerifiedAccessInstanceLoggingConfigurationsResult {
  LoggingConfigurations?:
    | VerifiedAccessInstanceLoggingConfiguration[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVerifiedAccessInstancesRequest {
  VerifiedAccessInstanceIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVerifiedAccessInstancesResult {
  VerifiedAccessInstances?: VerifiedAccessInstance[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVerifiedAccessTrustProvidersRequest {
  VerifiedAccessTrustProviderIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVerifiedAccessTrustProvidersResult {
  VerifiedAccessTrustProviders?: VerifiedAccessTrustProvider[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVolumeAttributeRequest {
  Attribute: VolumeAttributeName | undefined;
  VolumeId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVolumeAttributeResult {
  AutoEnableIO?: AttributeBooleanValue | undefined;
  ProductCodes?: ProductCode[] | undefined;
  VolumeId?: string | undefined;
}
export interface DescribeVolumesRequest {
  VolumeIds?: string[] | undefined;
  IncludeManagedResources?: boolean | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface DescribeVolumesResult {
  NextToken?: string | undefined;
  Volumes?: Volume[] | undefined;
}
export interface DescribeVolumesModificationsRequest {
  DryRun?: boolean | undefined;
  VolumeIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  IncludeManagedResources?: boolean | undefined;
}
export interface VolumeModification {
  VolumeId?: string | undefined;
  ModificationState?: VolumeModificationState | undefined;
  StatusMessage?: string | undefined;
  TargetSize?: number | undefined;
  TargetIops?: number | undefined;
  TargetVolumeType?: VolumeType | undefined;
  TargetThroughput?: number | undefined;
  TargetMultiAttachEnabled?: boolean | undefined;
  OriginalSize?: number | undefined;
  OriginalIops?: number | undefined;
  OriginalVolumeType?: VolumeType | undefined;
  OriginalThroughput?: number | undefined;
  OriginalMultiAttachEnabled?: boolean | undefined;
  Progress?: number | undefined;
  StartTime?: Date | undefined;
  EndTime?: Date | undefined;
  Operator?: OperatorResponse | undefined;
}
export interface DescribeVolumesModificationsResult {
  NextToken?: string | undefined;
  VolumesModifications?: VolumeModification[] | undefined;
}
export interface DescribeVolumeStatusRequest {
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  VolumeIds?: string[] | undefined;
  IncludeManagedResources?: boolean | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface VolumeStatusAction {
  Code?: string | undefined;
  Description?: string | undefined;
  EventId?: string | undefined;
  EventType?: string | undefined;
}
export interface VolumeStatusAttachmentStatus {
  IoPerformance?: string | undefined;
  InstanceId?: string | undefined;
}
export interface VolumeStatusEvent {
  Description?: string | undefined;
  EventId?: string | undefined;
  EventType?: string | undefined;
  NotAfter?: Date | undefined;
  NotBefore?: Date | undefined;
  InstanceId?: string | undefined;
}
export interface InitializationStatusDetails {
  InitializationType?: InitializationType | undefined;
  Progress?: number | undefined;
  EstimatedTimeToCompleteInSeconds?: number | undefined;
}
export interface VolumeStatusDetails {
  Name?: VolumeStatusName | undefined;
  Status?: string | undefined;
}
export interface VolumeStatusInfo {
  Details?: VolumeStatusDetails[] | undefined;
  Status?: VolumeStatusInfoStatus | undefined;
}
export interface VolumeStatusItem {
  Actions?: VolumeStatusAction[] | undefined;
  AvailabilityZone?: string | undefined;
  OutpostArn?: string | undefined;
  Events?: VolumeStatusEvent[] | undefined;
  VolumeId?: string | undefined;
  VolumeStatus?: VolumeStatusInfo | undefined;
  AttachmentStatuses?: VolumeStatusAttachmentStatus[] | undefined;
  InitializationStatusDetails?: InitializationStatusDetails | undefined;
  AvailabilityZoneId?: string | undefined;
  Operator?: OperatorResponse | undefined;
}
export interface DescribeVolumeStatusResult {
  NextToken?: string | undefined;
  VolumeStatuses?: VolumeStatusItem[] | undefined;
}
export interface DescribeVpcAttributeRequest {
  Attribute: VpcAttributeName | undefined;
  VpcId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVpcAttributeResult {
  EnableDnsHostnames?: AttributeBooleanValue | undefined;
  EnableDnsSupport?: AttributeBooleanValue | undefined;
  EnableNetworkAddressUsageMetrics?: AttributeBooleanValue | undefined;
  VpcId?: string | undefined;
}
export interface DescribeVpcBlockPublicAccessExclusionsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  ExclusionIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface DescribeVpcBlockPublicAccessExclusionsResult {
  VpcBlockPublicAccessExclusions?: VpcBlockPublicAccessExclusion[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcBlockPublicAccessOptionsRequest {
  DryRun?: boolean | undefined;
}
export interface VpcBlockPublicAccessOptions {
  AwsAccountId?: string | undefined;
  AwsRegion?: string | undefined;
  State?: VpcBlockPublicAccessState | undefined;
  InternetGatewayBlockMode?: InternetGatewayBlockMode | undefined;
  Reason?: string | undefined;
  LastUpdateTimestamp?: Date | undefined;
  ManagedBy?: ManagedBy | undefined;
  ExclusionsAllowed?: VpcBlockPublicAccessExclusionsAllowed | undefined;
}
export interface DescribeVpcBlockPublicAccessOptionsResult {
  VpcBlockPublicAccessOptions?: VpcBlockPublicAccessOptions | undefined;
}
export interface DescribeVpcClassicLinkRequest {
  DryRun?: boolean | undefined;
  VpcIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface VpcClassicLink {
  ClassicLinkEnabled?: boolean | undefined;
  Tags?: Tag[] | undefined;
  VpcId?: string | undefined;
}
export interface DescribeVpcClassicLinkResult {
  Vpcs?: VpcClassicLink[] | undefined;
}
export interface DescribeVpcClassicLinkDnsSupportRequest {
  VpcIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface ClassicLinkDnsSupport {
  ClassicLinkDnsSupported?: boolean | undefined;
  VpcId?: string | undefined;
}
export interface DescribeVpcClassicLinkDnsSupportResult {
  NextToken?: string | undefined;
  Vpcs?: ClassicLinkDnsSupport[] | undefined;
}
export interface DescribeVpcEncryptionControlsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  VpcEncryptionControlIds?: string[] | undefined;
  VpcIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface DescribeVpcEncryptionControlsResult {
  VpcEncryptionControls?: VpcEncryptionControl[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointAssociationsRequest {
  DryRun?: boolean | undefined;
  VpcEndpointIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface VpcEndpointAssociation {
  Id?: string | undefined;
  VpcEndpointId?: string | undefined;
  ServiceNetworkArn?: string | undefined;
  ServiceNetworkName?: string | undefined;
  AssociatedResourceAccessibility?: string | undefined;
  FailureReason?: string | undefined;
  FailureCode?: string | undefined;
  DnsEntry?: DnsEntry | undefined;
  PrivateDnsEntry?: DnsEntry | undefined;
  AssociatedResourceArn?: string | undefined;
  ResourceConfigurationGroupArn?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeVpcEndpointAssociationsResult {
  VpcEndpointAssociations?: VpcEndpointAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointConnectionNotificationsRequest {
  DryRun?: boolean | undefined;
  ConnectionNotificationId?: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointConnectionNotificationsResult {
  ConnectionNotificationSet?: ConnectionNotification[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointConnectionsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface VpcEndpointConnection {
  ServiceId?: string | undefined;
  VpcEndpointId?: string | undefined;
  VpcEndpointOwner?: string | undefined;
  VpcEndpointState?: State | undefined;
  CreationTimestamp?: Date | undefined;
  DnsEntries?: DnsEntry[] | undefined;
  NetworkLoadBalancerArns?: string[] | undefined;
  GatewayLoadBalancerArns?: string[] | undefined;
  IpAddressType?: IpAddressType | undefined;
  VpcEndpointConnectionId?: string | undefined;
  Tags?: Tag[] | undefined;
  VpcEndpointRegion?: string | undefined;
  PayerResponsibilities?: PayerResponsibilityEntry[] | undefined;
}
export interface DescribeVpcEndpointConnectionsResult {
  VpcEndpointConnections?: VpcEndpointConnection[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointsRequest {
  DryRun?: boolean | undefined;
  VpcEndpointIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointsResult {
  VpcEndpoints?: VpcEndpoint[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointServiceConfigurationsRequest {
  DryRun?: boolean | undefined;
  ServiceIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointServiceConfigurationsResult {
  ServiceConfigurations?: ServiceConfiguration[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointServicePermissionsRequest {
  DryRun?: boolean | undefined;
  ServiceId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointServicePermissionsResult {
  AllowedPrincipals?: AllowedPrincipal[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcEndpointServicesRequest {
  DryRun?: boolean | undefined;
  ServiceNames?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  ServiceRegions?: string[] | undefined;
}
export interface PrivateDnsDetails {
  PrivateDnsName?: string | undefined;
}
export interface ServiceDetail {
  ServiceName?: string | undefined;
  ServiceId?: string | undefined;
  ServiceType?: ServiceTypeDetail[] | undefined;
  ServiceRegion?: string | undefined;
  AvailabilityZoneIds?: string[] | undefined;
  AvailabilityZones?: string[] | undefined;
  Owner?: string | undefined;
  BaseEndpointDnsNames?: string[] | undefined;
  PrivateDnsName?: string | undefined;
  PrivateDnsNames?: PrivateDnsDetails[] | undefined;
  VpcEndpointPolicySupported?: boolean | undefined;
  AcceptanceRequired?: boolean | undefined;
  ManagesVpcEndpoints?: boolean | undefined;
  PayerResponsibility?: PayerResponsibility | undefined;
  Tags?: Tag[] | undefined;
  PrivateDnsNameVerificationState?: DnsNameState | undefined;
  SupportedIpAddressTypes?: ServiceConnectivityType[] | undefined;
}
export interface DescribeVpcEndpointServicesResult {
  ServiceNames?: string[] | undefined;
  ServiceDetails?: ServiceDetail[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcPeeringConnectionsRequest {
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  VpcPeeringConnectionIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeVpcPeeringConnectionsResult {
  VpcPeeringConnections?: VpcPeeringConnection[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpcsRequest {
  Filters?: Filter[] | undefined;
  VpcIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVpcsResult {
  NextToken?: string | undefined;
  Vpcs?: Vpc[] | undefined;
}
export interface DescribeVpnConcentratorsRequest {
  VpnConcentratorIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVpnConcentratorsResult {
  VpnConcentrators?: VpnConcentrator[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeVpnConnectionsRequest {
  Filters?: Filter[] | undefined;
  VpnConnectionIds?: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVpnConnectionsResult {
  VpnConnections?: VpnConnection[] | undefined;
}
export interface DescribeVpnGatewaysRequest {
  Filters?: Filter[] | undefined;
  VpnGatewayIds?: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeVpnGatewaysResult {
  VpnGateways?: VpnGateway[] | undefined;
}
export interface DetachClassicLinkVpcRequest {
  DryRun?: boolean | undefined;
  InstanceId: string | undefined;
  VpcId: string | undefined;
}
export interface DetachClassicLinkVpcResult {
  Return?: boolean | undefined;
}
export interface DetachImageWatermarkRequest {
  ImageId: string | undefined;
  WatermarkKey: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DetachImageWatermarkResult {
  Return?: boolean | undefined;
}
export interface DetachInternetGatewayRequest {
  DryRun?: boolean | undefined;
  InternetGatewayId: string | undefined;
  VpcId: string | undefined;
}
export interface DetachNetworkInterfaceRequest {
  DryRun?: boolean | undefined;
  AttachmentId: string | undefined;
  Force?: boolean | undefined;
}
export interface DetachVerifiedAccessTrustProviderRequest {
  VerifiedAccessInstanceId: string | undefined;
  VerifiedAccessTrustProviderId: string | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DetachVerifiedAccessTrustProviderResult {
  VerifiedAccessTrustProvider?: VerifiedAccessTrustProvider | undefined;
  VerifiedAccessInstance?: VerifiedAccessInstance | undefined;
}
export interface DetachVolumeRequest {
  Device?: string | undefined;
  Force?: boolean | undefined;
  InstanceId?: string | undefined;
  VolumeId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DetachVpnGatewayRequest {
  VpcId: string | undefined;
  VpnGatewayId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableAddressTransferRequest {
  AllocationId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableAddressTransferResult {
  AddressTransfer?: AddressTransfer | undefined;
}
export interface DisableAllowedImagesSettingsRequest {
  DryRun?: boolean | undefined;
}
export interface DisableAllowedImagesSettingsResult {
  AllowedImagesSettingsState?: AllowedImagesSettingsDisabledState | undefined;
}
export interface DisableAwsNetworkPerformanceMetricSubscriptionRequest {
  Source?: string | undefined;
  Destination?: string | undefined;
  Metric?: MetricType | undefined;
  Statistic?: StatisticType | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableAwsNetworkPerformanceMetricSubscriptionResult {
  Output?: boolean | undefined;
}
export interface DisableCapacityManagerRequest {
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
}
export interface DisableCapacityManagerResult {
  CapacityManagerStatus?: CapacityManagerStatus | undefined;
  OrganizationsAccess?: boolean | undefined;
}
export interface DisableEbsEncryptionByDefaultRequest {
  DryRun?: boolean | undefined;
}
export interface DisableEbsEncryptionByDefaultResult {
  EbsEncryptionByDefault?: boolean | undefined;
}
export interface DisableFastLaunchRequest {
  ImageId: string | undefined;
  Force?: boolean | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableFastLaunchResult {
  ImageId?: string | undefined;
  ResourceType?: FastLaunchResourceType | undefined;
  SnapshotConfiguration?: FastLaunchSnapshotConfigurationResponse | undefined;
  LaunchTemplate?: FastLaunchLaunchTemplateSpecificationResponse | undefined;
  MaxParallelLaunches?: number | undefined;
  OwnerId?: string | undefined;
  State?: FastLaunchStateCode | undefined;
  StateTransitionReason?: string | undefined;
  StateTransitionTime?: Date | undefined;
}
export interface DisableFastSnapshotRestoresRequest {
  AvailabilityZones?: string[] | undefined;
  AvailabilityZoneIds?: string[] | undefined;
  SourceSnapshotIds: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableFastSnapshotRestoreSuccessItem {
  SnapshotId?: string | undefined;
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  State?: FastSnapshotRestoreStateCode | undefined;
  StateTransitionReason?: string | undefined;
  OwnerId?: string | undefined;
  OwnerAlias?: string | undefined;
  EnablingTime?: Date | undefined;
  OptimizingTime?: Date | undefined;
  EnabledTime?: Date | undefined;
  DisablingTime?: Date | undefined;
  DisabledTime?: Date | undefined;
}
export interface DisableFastSnapshotRestoreStateError {
  Code?: string | undefined;
  Message?: string | undefined;
}
export interface DisableFastSnapshotRestoreStateErrorItem {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  Error?: DisableFastSnapshotRestoreStateError | undefined;
}
export interface DisableFastSnapshotRestoreErrorItem {
  SnapshotId?: string | undefined;
  FastSnapshotRestoreStateErrors?:
    | DisableFastSnapshotRestoreStateErrorItem[]
    | undefined;
}
export interface DisableFastSnapshotRestoresResult {
  Successful?: DisableFastSnapshotRestoreSuccessItem[] | undefined;
  Unsuccessful?: DisableFastSnapshotRestoreErrorItem[] | undefined;
}
export interface DisableImageRequest {
  ImageId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableImageResult {
  Return?: boolean | undefined;
}
export interface DisableImageBlockPublicAccessRequest {
  DryRun?: boolean | undefined;
}
export interface DisableImageBlockPublicAccessResult {
  ImageBlockPublicAccessState?: ImageBlockPublicAccessDisabledState | undefined;
}
export interface DisableImageDeprecationRequest {
  ImageId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableImageDeprecationResult {
  Return?: boolean | undefined;
}
export interface DisableImageDeregistrationProtectionRequest {
  ImageId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableImageDeregistrationProtectionResult {
  Return?: string | undefined;
}
export interface DisableInstanceSqlHaStandbyDetectionsRequest {
  InstanceIds: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableInstanceSqlHaStandbyDetectionsResult {
  Instances?: RegisteredInstance[] | undefined;
}
export interface DisableIpamOrganizationAdminAccountRequest {
  DryRun?: boolean | undefined;
  DelegatedAdminAccountId: string | undefined;
}
export interface DisableIpamOrganizationAdminAccountResult {
  Success?: boolean | undefined;
}
export interface DisableIpamPolicyRequest {
  DryRun?: boolean | undefined;
  IpamPolicyId: string | undefined;
  OrganizationTargetId?: string | undefined;
}
export interface DisableIpamPolicyResult {
  Return?: boolean | undefined;
}
export interface DisableRouteServerPropagationRequest {
  RouteServerId: string | undefined;
  RouteTableId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface RouteServerPropagation {
  RouteServerId?: string | undefined;
  RouteTableId?: string | undefined;
  State?: RouteServerPropagationState | undefined;
}
export interface DisableRouteServerPropagationResult {
  RouteServerPropagation?: RouteServerPropagation | undefined;
}
export interface DisableSerialConsoleAccessRequest {
  DryRun?: boolean | undefined;
}
export interface DisableSerialConsoleAccessResult {
  SerialConsoleAccessEnabled?: boolean | undefined;
}
export interface DisableSnapshotBlockPublicAccessRequest {
  DryRun?: boolean | undefined;
}
export interface DisableSnapshotBlockPublicAccessResult {
  State?: SnapshotBlockPublicAccessState | undefined;
}
export interface DisableTransitGatewayRouteTablePropagationRequest {
  TransitGatewayRouteTableId: string | undefined;
  TransitGatewayAttachmentId?: string | undefined;
  DryRun?: boolean | undefined;
  TransitGatewayRouteTableAnnouncementId?: string | undefined;
}
export interface TransitGatewayPropagation {
  TransitGatewayAttachmentId?: string | undefined;
  ResourceId?: string | undefined;
  ResourceType?: TransitGatewayAttachmentResourceType | undefined;
  TransitGatewayRouteTableId?: string | undefined;
  State?: TransitGatewayPropagationState | undefined;
  TransitGatewayRouteTableAnnouncementId?: string | undefined;
}
export interface DisableTransitGatewayRouteTablePropagationResult {
  Propagation?: TransitGatewayPropagation | undefined;
}
export interface DisableVgwRoutePropagationRequest {
  GatewayId: string | undefined;
  RouteTableId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisableVpcClassicLinkRequest {
  DryRun?: boolean | undefined;
  VpcId: string | undefined;
}
export interface DisableVpcClassicLinkResult {
  Return?: boolean | undefined;
}
export interface DisableVpcClassicLinkDnsSupportRequest {
  VpcId?: string | undefined;
}
export interface DisableVpcClassicLinkDnsSupportResult {
  Return?: boolean | undefined;
}
export interface DisassociateAddressRequest {
  AssociationId?: string | undefined;
  PublicIp?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateCapacityReservationBillingOwnerRequest {
  DryRun?: boolean | undefined;
  CapacityReservationId: string | undefined;
  UnusedReservationBillingOwnerId: string | undefined;
}
export interface DisassociateCapacityReservationBillingOwnerResult {
  Return?: boolean | undefined;
}
export interface DisassociateClientVpnTargetNetworkRequest {
  ClientVpnEndpointId: string | undefined;
  AssociationId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateClientVpnTargetNetworkResult {
  AssociationId?: string | undefined;
  Status?: AssociationStatus | undefined;
}
export interface DisassociateEnclaveCertificateIamRoleRequest {
  CertificateArn: string | undefined;
  RoleArn: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateEnclaveCertificateIamRoleResult {
  Return?: boolean | undefined;
}
export interface DisassociateIamInstanceProfileRequest {
  AssociationId: string | undefined;
}
export interface DisassociateIamInstanceProfileResult {
  IamInstanceProfileAssociation?: IamInstanceProfileAssociation | undefined;
}
export interface InstanceEventWindowDisassociationRequest {
  InstanceIds?: string[] | undefined;
  InstanceTags?: Tag[] | undefined;
  DedicatedHostIds?: string[] | undefined;
}
export interface DisassociateInstanceEventWindowRequest {
  DryRun?: boolean | undefined;
  InstanceEventWindowId: string | undefined;
  AssociationTarget: InstanceEventWindowDisassociationRequest | undefined;
}
export interface DisassociateInstanceEventWindowResult {
  InstanceEventWindow?: InstanceEventWindow | undefined;
}
export interface DisassociateIpamByoasnRequest {
  DryRun?: boolean | undefined;
  Asn: string | undefined;
  Cidr: string | undefined;
}
export interface DisassociateIpamByoasnResult {
  AsnAssociation?: AsnAssociation | undefined;
}
export interface DisassociateIpamResourceDiscoveryRequest {
  DryRun?: boolean | undefined;
  IpamResourceDiscoveryAssociationId: string | undefined;
}
export interface DisassociateIpamResourceDiscoveryResult {
  IpamResourceDiscoveryAssociation?:
    | IpamResourceDiscoveryAssociation
    | undefined;
}
export interface DisassociateNatGatewayAddressRequest {
  NatGatewayId: string | undefined;
  AssociationIds: string[] | undefined;
  MaxDrainDurationSeconds?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateNatGatewayAddressResult {
  NatGatewayId?: string | undefined;
  NatGatewayAddresses?: NatGatewayAddress[] | undefined;
}
export interface DisassociateRouteServerRequest {
  RouteServerId: string | undefined;
  VpcId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateRouteServerResult {
  RouteServerAssociation?: RouteServerAssociation | undefined;
}
export interface DisassociateRouteTableRequest {
  DryRun?: boolean | undefined;
  AssociationId: string | undefined;
}
export interface DisassociateSecurityGroupVpcRequest {
  GroupId: string | undefined;
  VpcId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateSecurityGroupVpcResult {
  State?: SecurityGroupVpcAssociationState | undefined;
}
export interface DisassociateSubnetCidrBlockRequest {
  AssociationId: string | undefined;
}
export interface DisassociateSubnetCidrBlockResult {
  Ipv6CidrBlockAssociation?: SubnetIpv6CidrBlockAssociation | undefined;
  SubnetId?: string | undefined;
}
export interface DisassociateTransitGatewayMulticastDomainRequest {
  TransitGatewayMulticastDomainId: string | undefined;
  TransitGatewayAttachmentId: string | undefined;
  SubnetIds: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateTransitGatewayMulticastDomainResult {
  Associations?: TransitGatewayMulticastDomainAssociations | undefined;
}
export interface DisassociateTransitGatewayPolicyTableRequest {
  TransitGatewayPolicyTableId: string | undefined;
  TransitGatewayAttachmentId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateTransitGatewayPolicyTableResult {
  Association?: TransitGatewayPolicyTableAssociation | undefined;
}
export interface DisassociateTransitGatewayRouteTableRequest {
  TransitGatewayRouteTableId: string | undefined;
  TransitGatewayAttachmentId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateTransitGatewayRouteTableResult {
  Association?: TransitGatewayAssociation | undefined;
}
export interface DisassociateTrunkInterfaceRequest {
  AssociationId: string | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DisassociateTrunkInterfaceResult {
  Return?: boolean | undefined;
  ClientToken?: string | undefined;
}
export interface DisassociateVpcCidrBlockRequest {
  AssociationId: string | undefined;
}
export interface DisassociateVpcCidrBlockResult {
  Ipv6CidrBlockAssociation?: VpcIpv6CidrBlockAssociation | undefined;
  CidrBlockAssociation?: VpcCidrBlockAssociation | undefined;
  VpcId?: string | undefined;
}
export interface EnableAddressTransferRequest {
  AllocationId: string | undefined;
  TransferAccountId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableAddressTransferResult {
  AddressTransfer?: AddressTransfer | undefined;
}
export interface EnableAllowedImagesSettingsRequest {
  AllowedImagesSettingsState: AllowedImagesSettingsEnabledState | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableAllowedImagesSettingsResult {
  AllowedImagesSettingsState?: AllowedImagesSettingsEnabledState | undefined;
}
export interface EnableAwsNetworkPerformanceMetricSubscriptionRequest {
  Source?: string | undefined;
  Destination?: string | undefined;
  Metric?: MetricType | undefined;
  Statistic?: StatisticType | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableAwsNetworkPerformanceMetricSubscriptionResult {
  Output?: boolean | undefined;
}
export interface EnableCapacityManagerRequest {
  OrganizationsAccess?: boolean | undefined;
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
}
export interface EnableCapacityManagerResult {
  CapacityManagerStatus?: CapacityManagerStatus | undefined;
  OrganizationsAccess?: boolean | undefined;
}
export interface EnableEbsEncryptionByDefaultRequest {
  DryRun?: boolean | undefined;
}
export interface EnableEbsEncryptionByDefaultResult {
  EbsEncryptionByDefault?: boolean | undefined;
}
export interface FastLaunchLaunchTemplateSpecificationRequest {
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  Version: string | undefined;
}
export interface FastLaunchSnapshotConfigurationRequest {
  TargetResourceCount?: number | undefined;
}
export interface EnableFastLaunchRequest {
  ImageId: string | undefined;
  ResourceType?: string | undefined;
  SnapshotConfiguration?: FastLaunchSnapshotConfigurationRequest | undefined;
  LaunchTemplate?: FastLaunchLaunchTemplateSpecificationRequest | undefined;
  MaxParallelLaunches?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableFastLaunchResult {
  ImageId?: string | undefined;
  ResourceType?: FastLaunchResourceType | undefined;
  SnapshotConfiguration?: FastLaunchSnapshotConfigurationResponse | undefined;
  LaunchTemplate?: FastLaunchLaunchTemplateSpecificationResponse | undefined;
  MaxParallelLaunches?: number | undefined;
  OwnerId?: string | undefined;
  State?: FastLaunchStateCode | undefined;
  StateTransitionReason?: string | undefined;
  StateTransitionTime?: Date | undefined;
}
export interface EnableFastSnapshotRestoresRequest {
  AvailabilityZones?: string[] | undefined;
  AvailabilityZoneIds?: string[] | undefined;
  SourceSnapshotIds: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableFastSnapshotRestoreSuccessItem {
  SnapshotId?: string | undefined;
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  State?: FastSnapshotRestoreStateCode | undefined;
  StateTransitionReason?: string | undefined;
  OwnerId?: string | undefined;
  OwnerAlias?: string | undefined;
  EnablingTime?: Date | undefined;
  OptimizingTime?: Date | undefined;
  EnabledTime?: Date | undefined;
  DisablingTime?: Date | undefined;
  DisabledTime?: Date | undefined;
}
export interface EnableFastSnapshotRestoreStateError {
  Code?: string | undefined;
  Message?: string | undefined;
}
export interface EnableFastSnapshotRestoreStateErrorItem {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  Error?: EnableFastSnapshotRestoreStateError | undefined;
}
export interface EnableFastSnapshotRestoreErrorItem {
  SnapshotId?: string | undefined;
  FastSnapshotRestoreStateErrors?:
    | EnableFastSnapshotRestoreStateErrorItem[]
    | undefined;
}
export interface EnableFastSnapshotRestoresResult {
  Successful?: EnableFastSnapshotRestoreSuccessItem[] | undefined;
  Unsuccessful?: EnableFastSnapshotRestoreErrorItem[] | undefined;
}
export interface EnableImageRequest {
  ImageId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableImageResult {
  Return?: boolean | undefined;
}
export interface EnableImageBlockPublicAccessRequest {
  ImageBlockPublicAccessState: ImageBlockPublicAccessEnabledState | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableImageBlockPublicAccessResult {
  ImageBlockPublicAccessState?: ImageBlockPublicAccessEnabledState | undefined;
}
export interface EnableImageDeprecationRequest {
  ImageId: string | undefined;
  DeprecateAt: Date | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableImageDeprecationResult {
  Return?: boolean | undefined;
}
export interface EnableImageDeregistrationProtectionRequest {
  ImageId: string | undefined;
  WithCooldown?: boolean | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableImageDeregistrationProtectionResult {
  Return?: string | undefined;
}
export interface EnableInstanceSqlHaStandbyDetectionsRequest {
  InstanceIds: string[] | undefined;
  SqlServerCredentials?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableInstanceSqlHaStandbyDetectionsResult {
  Instances?: RegisteredInstance[] | undefined;
}
export interface EnableIpamOrganizationAdminAccountRequest {
  DryRun?: boolean | undefined;
  DelegatedAdminAccountId: string | undefined;
}
export interface EnableIpamOrganizationAdminAccountResult {
  Success?: boolean | undefined;
}
export interface EnableIpamPolicyRequest {
  DryRun?: boolean | undefined;
  IpamPolicyId: string | undefined;
  OrganizationTargetId?: string | undefined;
}
export interface EnableIpamPolicyResult {
  IpamPolicyId?: string | undefined;
}
export interface EnableReachabilityAnalyzerOrganizationSharingRequest {
  DryRun?: boolean | undefined;
}
export interface EnableReachabilityAnalyzerOrganizationSharingResult {
  ReturnValue?: boolean | undefined;
}
export interface EnableRouteServerPropagationRequest {
  RouteServerId: string | undefined;
  RouteTableId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableRouteServerPropagationResult {
  RouteServerPropagation?: RouteServerPropagation | undefined;
}
export interface EnableSerialConsoleAccessRequest {
  DryRun?: boolean | undefined;
}
export interface EnableSerialConsoleAccessResult {
  SerialConsoleAccessEnabled?: boolean | undefined;
}
export interface EnableSnapshotBlockPublicAccessRequest {
  State: SnapshotBlockPublicAccessState | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableSnapshotBlockPublicAccessResult {
  State?: SnapshotBlockPublicAccessState | undefined;
}
export interface EnableTransitGatewayRouteTablePropagationRequest {
  TransitGatewayRouteTableId: string | undefined;
  TransitGatewayAttachmentId?: string | undefined;
  DryRun?: boolean | undefined;
  TransitGatewayRouteTableAnnouncementId?: string | undefined;
}
export interface EnableTransitGatewayRouteTablePropagationResult {
  Propagation?: TransitGatewayPropagation | undefined;
}
export interface EnableVgwRoutePropagationRequest {
  GatewayId: string | undefined;
  RouteTableId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface EnableVolumeIORequest {
  DryRun?: boolean | undefined;
  VolumeId: string | undefined;
}
export interface EnableVpcClassicLinkRequest {
  DryRun?: boolean | undefined;
  VpcId: string | undefined;
}
export interface EnableVpcClassicLinkResult {
  Return?: boolean | undefined;
}
export interface EnableVpcClassicLinkDnsSupportRequest {
  VpcId?: string | undefined;
}
export interface EnableVpcClassicLinkDnsSupportResult {
  Return?: boolean | undefined;
}
export interface ExportClientVpnClientCertificateRevocationListRequest {
  ClientVpnEndpointId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ClientCertificateRevocationListStatus {
  Code?: ClientCertificateRevocationListStatusCode | undefined;
  Message?: string | undefined;
}
export interface ExportClientVpnClientCertificateRevocationListResult {
  CertificateRevocationList?: string | undefined;
  Status?: ClientCertificateRevocationListStatus | undefined;
}
export interface ExportClientVpnClientConfigurationRequest {
  ClientVpnEndpointId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ExportClientVpnClientConfigurationResult {
  ClientConfiguration?: string | undefined;
}
export interface ExportTaskS3LocationRequest {
  S3Bucket: string | undefined;
  S3Prefix?: string | undefined;
}
export interface ExportImageRequest {
  ClientToken?: string | undefined;
  Description?: string | undefined;
  DiskImageFormat: DiskImageFormat | undefined;
  DryRun?: boolean | undefined;
  ImageId: string | undefined;
  S3ExportLocation: ExportTaskS3LocationRequest | undefined;
  RoleName?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface ExportImageResult {
  Description?: string | undefined;
  DiskImageFormat?: DiskImageFormat | undefined;
  ExportImageTaskId?: string | undefined;
  ImageId?: string | undefined;
  RoleName?: string | undefined;
  Progress?: string | undefined;
  S3ExportLocation?: ExportTaskS3Location | undefined;
  Status?: string | undefined;
  StatusMessage?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface ExportTransitGatewayRoutesRequest {
  TransitGatewayRouteTableId: string | undefined;
  Filters?: Filter[] | undefined;
  S3Bucket: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ExportTransitGatewayRoutesResult {
  S3Location?: string | undefined;
}
export interface ExportVerifiedAccessInstanceClientConfigurationRequest {
  VerifiedAccessInstanceId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface VerifiedAccessInstanceOpenVpnClientConfigurationRoute {
  Cidr?: string | undefined;
}
export interface VerifiedAccessInstanceOpenVpnClientConfiguration {
  Config?: string | undefined;
  Routes?: VerifiedAccessInstanceOpenVpnClientConfigurationRoute[] | undefined;
}
export interface VerifiedAccessInstanceUserTrustProviderClientConfiguration {
  Type?: UserTrustProviderType | undefined;
  Scopes?: string | undefined;
  Issuer?: string | undefined;
  AuthorizationEndpoint?: string | undefined;
  PublicSigningKeyEndpoint?: string | undefined;
  TokenEndpoint?: string | undefined;
  UserInfoEndpoint?: string | undefined;
  ClientId?: string | undefined;
  ClientSecret?: string | undefined;
  PkceEnabled?: boolean | undefined;
}
export interface ExportVerifiedAccessInstanceClientConfigurationResult {
  Version?: string | undefined;
  VerifiedAccessInstanceId?: string | undefined;
  Region?: string | undefined;
  DeviceTrustProviders?: DeviceTrustProviderType[] | undefined;
  UserTrustProvider?:
    | VerifiedAccessInstanceUserTrustProviderClientConfiguration
    | undefined;
  OpenVpnConfigurations?:
    | VerifiedAccessInstanceOpenVpnClientConfiguration[]
    | undefined;
}
export interface GetActiveVpnTunnelStatusRequest {
  VpnConnectionId: string | undefined;
  VpnTunnelOutsideIpAddress: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetActiveVpnTunnelStatusResult {
  ActiveVpnTunnelStatus?: ActiveVpnTunnelStatus | undefined;
}
export interface GetAllowedImagesSettingsRequest {
  DryRun?: boolean | undefined;
}
export interface CreationDateCondition {
  MaximumDaysSinceCreated?: number | undefined;
}
export interface DeprecationTimeCondition {
  MaximumDaysSinceDeprecated?: number | undefined;
}
export interface ImageWatermarkFilterResponse {
  WatermarkKey?: string | undefined;
  SourceImageRegion?: string | undefined;
  MaximumDaysSinceSourceImageCreated?: number | undefined;
  MaximumDaysSinceWatermarkCreated?: number | undefined;
}
export interface ImageCriterion {
  ImageProviders?: string[] | undefined;
  MarketplaceProductCodes?: string[] | undefined;
  ImageNames?: string[] | undefined;
  DeprecationTimeCondition?: DeprecationTimeCondition | undefined;
  CreationDateCondition?: CreationDateCondition | undefined;
  ImageWatermarks?: ImageWatermarkFilterResponse[] | undefined;
}
export interface GetAllowedImagesSettingsResult {
  State?: string | undefined;
  ImageCriteria?: ImageCriterion[] | undefined;
  ManagedBy?: ManagedBy | undefined;
}
export interface GetAssociatedEnclaveCertificateIamRolesRequest {
  CertificateArn: string | undefined;
  DryRun?: boolean | undefined;
}
