import {
  _InstanceType,
  AccountAttributeName,
  AddressAttributeName,
  AllocationState,
  AllowsMultipleInstanceTypes,
  AmdSevSnp,
  ArchitectureValues,
  AsnState,
  AssociatedNetworkType,
  AutoPlacement,
  AvailabilityZoneOptInStatus,
  AvailabilityZoneState,
  BootModeValues,
  CallerRole,
  CapacityBlockExtensionStatus,
  CapacityBlockInterconnectStatus,
  CapacityBlockResourceState,
  CapacityManagerDataExportStatus,
  CapacityReservationBillingRequestStatus,
  CapacityReservationFleetState,
  CapacityReservationTenancy,
  ClientVpnAuthenticationType,
  ClientVpnConnectionStatusCode,
  ClientVpnEndpointAttributeStatusCode,
  ConversionTaskState,
  CurrencyCodeValues,
  DefaultTargetCapacityType,
  DestinationFileFormat,
  DeviceType,
  DiskImageFormat,
  ElasticGpuState,
  ElasticGpuStatus,
  EndpointIpAddressType,
  FastLaunchResourceType,
  FastLaunchStateCode,
  FastSnapshotRestoreStateCode,
  FleetActivityStatus,
  FleetCapacityReservationTenancy,
  FleetCapacityReservationUsageStrategy,
  FleetEventType,
  FleetExcessCapacityTerminationPolicy,
  FleetInstanceMatchCriteria,
  FleetOnDemandAllocationStrategy,
  FleetReplacementStrategy,
  FleetReservationType,
  FleetStateCode,
  FleetType,
  FpgaImageAttributeName,
  FpgaImageStateCode,
  HostMaintenance,
  HostRecovery,
  HypervisorType,
  ImageAttributeName,
  ImageReferenceOptionName,
  ImageReferenceResourceType,
  ImageState,
  ImageTypeValues,
  ImdsSupportValues,
  InstanceLifecycle,
  IpamPoolCidrFailureCode,
  IpamPoolCidrState,
  LogDestinationType,
  MetricType,
  OutputFormat,
  PaymentOption,
  PeriodType,
  PermissionGroup,
  PlatformValues,
  ProductCodeValues,
  ReportState,
  ReservationState,
  Schedule,
  SnapshotReturnCodes,
  SpotAllocationStrategy,
  SpotInstanceInterruptionBehavior,
  StatisticType,
  TaggableResourceType,
  TargetCapacityUnitType,
  TpmSupportValues,
  TrafficIpAddressType,
  TrafficType,
  TransportProtocol,
  VirtualizationType,
  VpnProtocol,
} from "./enums";
import {
  AccountAttribute,
  AccountVpcEncryptionControl,
  ActiveInstance,
  Address,
  AddressAttribute,
  AddressTransfer,
  AssociationStatus,
  BundleTask,
  ByoipCidr,
  CapacityReservation,
  CapacityReservationCancellationQuote,
  CarrierGateway,
  ClientVpnAuthorizationRuleStatus,
  ClientVpnEndpointStatus,
  ClientVpnRouteStatus,
  CoipPool,
  CustomerGateway,
  FleetCapacityReservation,
  IamInstanceProfileAssociation,
  Tag,
  TransitGatewayClientVpnAttachment,
  TransitGatewayPeeringAttachment,
  TransitGatewayVpcAttachment,
  UnsuccessfulItem,
  VerifiedAccessInstance,
  VerifiedAccessTrustProvider,
} from "./models_0";
import {
  AttributeValue,
  BlockDeviceMapping,
  DhcpOptions,
  EgressOnlyInternetGateway,
  ExportTask,
  FleetLaunchTemplateOverrides,
  FleetLaunchTemplateSpecification,
  GroupIdentifier,
  LaunchTemplateAndOverridesResponse,
  StateReason,
  VpcEncryptionControl,
} from "./models_1";
import {
  SecondaryNetwork,
  SecondarySubnet,
  SubnetCidrReservation,
  TransitGateway,
  TransitGatewayConnect,
  TransitGatewayConnectPeer,
  TransitGatewayMeteringPolicy,
  TransitGatewayMeteringPolicyEntry,
  TransitGatewayMulticastDomain,
  TransitGatewayPolicyTable,
  TransitGatewayPrefixListReference,
  TransitGatewayRoute,
  TransitGatewayRouteTable,
  TransitGatewayRouteTableAnnouncement,
  VerifiedAccessEndpoint,
  VerifiedAccessGroup,
  VpcBlockPublicAccessExclusion,
} from "./models_2";
export interface DeleteRouteTableRequest {
  DryRun?: boolean | undefined;
  RouteTableId: string | undefined;
}
export interface DeleteSecondaryNetworkRequest {
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  SecondaryNetworkId: string | undefined;
}
export interface DeleteSecondaryNetworkResult {
  SecondaryNetwork?: SecondaryNetwork | undefined;
  ClientToken?: string | undefined;
}
export interface DeleteSecondarySubnetRequest {
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  SecondarySubnetId: string | undefined;
}
export interface DeleteSecondarySubnetResult {
  SecondarySubnet?: SecondarySubnet | undefined;
  ClientToken?: string | undefined;
}
export interface DeleteSecurityGroupRequest {
  GroupId?: string | undefined;
  GroupName?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteSecurityGroupResult {
  Return?: boolean | undefined;
  GroupId?: string | undefined;
}
export interface DeleteSnapshotRequest {
  SnapshotId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteSpotDatafeedSubscriptionRequest {
  DryRun?: boolean | undefined;
}
export interface DeleteSubnetRequest {
  SubnetId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteSubnetCidrReservationRequest {
  SubnetCidrReservationId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteSubnetCidrReservationResult {
  DeletedSubnetCidrReservation?: SubnetCidrReservation | undefined;
}
export interface DeleteTagsRequest {
  DryRun?: boolean | undefined;
  Resources: string[] | undefined;
  Tags?: Tag[] | undefined;
}
export interface DeleteTrafficMirrorFilterRequest {
  TrafficMirrorFilterId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTrafficMirrorFilterResult {
  TrafficMirrorFilterId?: string | undefined;
}
export interface DeleteTrafficMirrorFilterRuleRequest {
  TrafficMirrorFilterRuleId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTrafficMirrorFilterRuleResult {
  TrafficMirrorFilterRuleId?: string | undefined;
}
export interface DeleteTrafficMirrorSessionRequest {
  TrafficMirrorSessionId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTrafficMirrorSessionResult {
  TrafficMirrorSessionId?: string | undefined;
}
export interface DeleteTrafficMirrorTargetRequest {
  TrafficMirrorTargetId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTrafficMirrorTargetResult {
  TrafficMirrorTargetId?: string | undefined;
}
export interface DeleteTransitGatewayRequest {
  TransitGatewayId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayResult {
  TransitGateway?: TransitGateway | undefined;
}
export interface DeleteTransitGatewayClientVpnAttachmentRequest {
  TransitGatewayAttachmentId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayClientVpnAttachmentResult {
  TransitGatewayClientVpnAttachment?:
    | TransitGatewayClientVpnAttachment
    | undefined;
}
export interface DeleteTransitGatewayConnectRequest {
  TransitGatewayAttachmentId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayConnectResult {
  TransitGatewayConnect?: TransitGatewayConnect | undefined;
}
export interface DeleteTransitGatewayConnectPeerRequest {
  TransitGatewayConnectPeerId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayConnectPeerResult {
  TransitGatewayConnectPeer?: TransitGatewayConnectPeer | undefined;
}
export interface DeleteTransitGatewayMeteringPolicyRequest {
  TransitGatewayMeteringPolicyId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayMeteringPolicyResult {
  TransitGatewayMeteringPolicy?: TransitGatewayMeteringPolicy | undefined;
}
export interface DeleteTransitGatewayMeteringPolicyEntryRequest {
  TransitGatewayMeteringPolicyId: string | undefined;
  PolicyRuleNumber: number | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayMeteringPolicyEntryResult {
  TransitGatewayMeteringPolicyEntry?:
    | TransitGatewayMeteringPolicyEntry
    | undefined;
}
export interface DeleteTransitGatewayMulticastDomainRequest {
  TransitGatewayMulticastDomainId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayMulticastDomainResult {
  TransitGatewayMulticastDomain?: TransitGatewayMulticastDomain | undefined;
}
export interface DeleteTransitGatewayPeeringAttachmentRequest {
  TransitGatewayAttachmentId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayPeeringAttachmentResult {
  TransitGatewayPeeringAttachment?: TransitGatewayPeeringAttachment | undefined;
}
export interface DeleteTransitGatewayPolicyTableRequest {
  TransitGatewayPolicyTableId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayPolicyTableResult {
  TransitGatewayPolicyTable?: TransitGatewayPolicyTable | undefined;
}
export interface DeleteTransitGatewayPrefixListReferenceRequest {
  TransitGatewayRouteTableId: string | undefined;
  PrefixListId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayPrefixListReferenceResult {
  TransitGatewayPrefixListReference?:
    | TransitGatewayPrefixListReference
    | undefined;
}
export interface DeleteTransitGatewayRouteRequest {
  TransitGatewayRouteTableId: string | undefined;
  DestinationCidrBlock: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayRouteResult {
  Route?: TransitGatewayRoute | undefined;
}
export interface DeleteTransitGatewayRouteTableRequest {
  TransitGatewayRouteTableId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayRouteTableResult {
  TransitGatewayRouteTable?: TransitGatewayRouteTable | undefined;
}
export interface DeleteTransitGatewayRouteTableAnnouncementRequest {
  TransitGatewayRouteTableAnnouncementId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayRouteTableAnnouncementResult {
  TransitGatewayRouteTableAnnouncement?:
    | TransitGatewayRouteTableAnnouncement
    | undefined;
}
export interface DeleteTransitGatewayVpcAttachmentRequest {
  TransitGatewayAttachmentId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteTransitGatewayVpcAttachmentResult {
  TransitGatewayVpcAttachment?: TransitGatewayVpcAttachment | undefined;
}
export interface DeleteVerifiedAccessEndpointRequest {
  VerifiedAccessEndpointId: string | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteVerifiedAccessEndpointResult {
  VerifiedAccessEndpoint?: VerifiedAccessEndpoint | undefined;
}
export interface DeleteVerifiedAccessGroupRequest {
  VerifiedAccessGroupId: string | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteVerifiedAccessGroupResult {
  VerifiedAccessGroup?: VerifiedAccessGroup | undefined;
}
export interface DeleteVerifiedAccessInstanceRequest {
  VerifiedAccessInstanceId: string | undefined;
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
}
export interface DeleteVerifiedAccessInstanceResult {
  VerifiedAccessInstance?: VerifiedAccessInstance | undefined;
}
export interface DeleteVerifiedAccessTrustProviderRequest {
  VerifiedAccessTrustProviderId: string | undefined;
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
}
export interface DeleteVerifiedAccessTrustProviderResult {
  VerifiedAccessTrustProvider?: VerifiedAccessTrustProvider | undefined;
}
export interface DeleteVolumeRequest {
  VolumeId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteVpcRequest {
  VpcId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteVpcBlockPublicAccessExclusionRequest {
  DryRun?: boolean | undefined;
  ExclusionId: string | undefined;
}
export interface DeleteVpcBlockPublicAccessExclusionResult {
  VpcBlockPublicAccessExclusion?: VpcBlockPublicAccessExclusion | undefined;
}
export interface DeleteVpcEncryptionControlRequest {
  DryRun?: boolean | undefined;
  VpcEncryptionControlId: string | undefined;
}
export interface DeleteVpcEncryptionControlResult {
  VpcEncryptionControl?: VpcEncryptionControl | undefined;
}
export interface DeleteVpcEndpointConnectionNotificationsRequest {
  DryRun?: boolean | undefined;
  ConnectionNotificationIds: string[] | undefined;
}
export interface DeleteVpcEndpointConnectionNotificationsResult {
  Unsuccessful?: UnsuccessfulItem[] | undefined;
}
export interface DeleteVpcEndpointsRequest {
  DryRun?: boolean | undefined;
  VpcEndpointIds: string[] | undefined;
}
export interface DeleteVpcEndpointsResult {
  Unsuccessful?: UnsuccessfulItem[] | undefined;
}
export interface DeleteVpcEndpointServiceConfigurationsRequest {
  DryRun?: boolean | undefined;
  ServiceIds: string[] | undefined;
}
export interface DeleteVpcEndpointServiceConfigurationsResult {
  Unsuccessful?: UnsuccessfulItem[] | undefined;
}
export interface DeleteVpcPeeringConnectionRequest {
  DryRun?: boolean | undefined;
  VpcPeeringConnectionId: string | undefined;
}
export interface DeleteVpcPeeringConnectionResult {
  Return?: boolean | undefined;
}
export interface DeleteVpnConcentratorRequest {
  VpnConcentratorId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteVpnConcentratorResult {
  Return?: boolean | undefined;
}
export interface DeleteVpnConnectionRequest {
  VpnConnectionId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteVpnConnectionRouteRequest {
  DestinationCidrBlock: string | undefined;
  VpnConnectionId: string | undefined;
}
export interface DeleteVpnGatewayRequest {
  VpnGatewayId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeprovisionByoipCidrRequest {
  Cidr: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeprovisionByoipCidrResult {
  ByoipCidr?: ByoipCidr | undefined;
}
export interface DeprovisionIpamByoasnRequest {
  DryRun?: boolean | undefined;
  IpamId: string | undefined;
  Asn: string | undefined;
}
export interface Byoasn {
  Asn?: string | undefined;
  IpamId?: string | undefined;
  StatusMessage?: string | undefined;
  State?: AsnState | undefined;
}
export interface DeprovisionIpamByoasnResult {
  Byoasn?: Byoasn | undefined;
}
export interface DeprovisionIpamPoolCidrRequest {
  DryRun?: boolean | undefined;
  IpamPoolId: string | undefined;
  Cidr?: string | undefined;
}
export interface IpamPoolCidrFailureReason {
  Code?: IpamPoolCidrFailureCode | undefined;
  Message?: string | undefined;
}
export interface IpamPoolCidr {
  Cidr?: string | undefined;
  State?: IpamPoolCidrState | undefined;
  FailureReason?: IpamPoolCidrFailureReason | undefined;
  IpamPoolCidrId?: string | undefined;
  NetmaskLength?: number | undefined;
}
export interface DeprovisionIpamPoolCidrResult {
  IpamPoolCidr?: IpamPoolCidr | undefined;
}
export interface DeprovisionPublicIpv4PoolCidrRequest {
  DryRun?: boolean | undefined;
  PoolId: string | undefined;
  Cidr: string | undefined;
}
export interface DeprovisionPublicIpv4PoolCidrResult {
  PoolId?: string | undefined;
  DeprovisionedAddresses?: string[] | undefined;
}
export interface DeregisterImageRequest {
  ImageId: string | undefined;
  DeleteAssociatedSnapshots?: boolean | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteSnapshotReturnCode {
  SnapshotId?: string | undefined;
  ReturnCode?: SnapshotReturnCodes | undefined;
}
export interface DeregisterImageResult {
  Return?: boolean | undefined;
  DeleteSnapshotResults?: DeleteSnapshotReturnCode[] | undefined;
}
export interface DeregisterInstanceTagAttributeRequest {
  IncludeAllTagsOfInstance?: boolean | undefined;
  InstanceTagKeys?: string[] | undefined;
}
export interface DeregisterInstanceEventNotificationAttributesRequest {
  DryRun?: boolean | undefined;
  InstanceTagAttribute: DeregisterInstanceTagAttributeRequest | undefined;
}
export interface InstanceTagNotificationAttribute {
  InstanceTagKeys?: string[] | undefined;
  IncludeAllTagsOfInstance?: boolean | undefined;
}
export interface DeregisterInstanceEventNotificationAttributesResult {
  InstanceTagAttribute?: InstanceTagNotificationAttribute | undefined;
}
export interface DeregisterTransitGatewayMulticastGroupMembersRequest {
  TransitGatewayMulticastDomainId?: string | undefined;
  GroupIpAddress?: string | undefined;
  NetworkInterfaceIds?: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayMulticastDeregisteredGroupMembers {
  TransitGatewayMulticastDomainId?: string | undefined;
  DeregisteredNetworkInterfaceIds?: string[] | undefined;
  GroupIpAddress?: string | undefined;
}
export interface DeregisterTransitGatewayMulticastGroupMembersResult {
  DeregisteredMulticastGroupMembers?:
    | TransitGatewayMulticastDeregisteredGroupMembers
    | undefined;
}
export interface DeregisterTransitGatewayMulticastGroupSourcesRequest {
  TransitGatewayMulticastDomainId?: string | undefined;
  GroupIpAddress?: string | undefined;
  NetworkInterfaceIds?: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayMulticastDeregisteredGroupSources {
  TransitGatewayMulticastDomainId?: string | undefined;
  DeregisteredNetworkInterfaceIds?: string[] | undefined;
  GroupIpAddress?: string | undefined;
}
export interface DeregisterTransitGatewayMulticastGroupSourcesResult {
  DeregisteredMulticastGroupSources?:
    | TransitGatewayMulticastDeregisteredGroupSources
    | undefined;
}
export interface DescribeAccountAttributesRequest {
  DryRun?: boolean | undefined;
  AttributeNames?: AccountAttributeName[] | undefined;
}
export interface DescribeAccountAttributesResult {
  AccountAttributes?: AccountAttribute[] | undefined;
}
export interface DescribeAccountVpcEncryptionControlRequest {
  DryRun?: boolean | undefined;
}
export interface DescribeAccountVpcEncryptionControlResult {
  AccountVpcEncryptionControl?: AccountVpcEncryptionControl | undefined;
}
export interface Filter {
  Name?: string | undefined;
  Values?: string[] | undefined;
}
export interface DescribeAddressesRequest {
  PublicIps?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  AllocationIds?: string[] | undefined;
}
export interface DescribeAddressesResult {
  Addresses?: Address[] | undefined;
}
export interface DescribeAddressesAttributeRequest {
  AllocationIds?: string[] | undefined;
  Attribute?: AddressAttributeName | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeAddressesAttributeResult {
  Addresses?: AddressAttribute[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeAddressTransfersRequest {
  AllocationIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeAddressTransfersResult {
  AddressTransfers?: AddressTransfer[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeAggregateIdFormatRequest {
  DryRun?: boolean | undefined;
}
export interface IdFormat {
  Deadline?: Date | undefined;
  Resource?: string | undefined;
  UseLongIds?: boolean | undefined;
}
export interface DescribeAggregateIdFormatResult {
  UseLongIdsAggregated?: boolean | undefined;
  Statuses?: IdFormat[] | undefined;
}
export interface DescribeAvailabilityZonesRequest {
  ZoneNames?: string[] | undefined;
  ZoneIds?: string[] | undefined;
  AllAvailabilityZones?: boolean | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface AvailabilityZoneGeography {
  Name?: string | undefined;
}
export interface AvailabilityZoneMessage {
  Message?: string | undefined;
}
export interface AvailabilityZoneSubGeography {
  Name?: string | undefined;
}
export interface AvailabilityZone {
  OptInStatus?: AvailabilityZoneOptInStatus | undefined;
  Messages?: AvailabilityZoneMessage[] | undefined;
  RegionName?: string | undefined;
  ZoneName?: string | undefined;
  ZoneId?: string | undefined;
  GroupName?: string | undefined;
  NetworkBorderGroup?: string | undefined;
  ZoneType?: string | undefined;
  ParentZoneName?: string | undefined;
  ParentZoneId?: string | undefined;
  GroupLongName?: string | undefined;
  Geography?: AvailabilityZoneGeography[] | undefined;
  SubGeography?: AvailabilityZoneSubGeography[] | undefined;
  State?: AvailabilityZoneState | undefined;
}
export interface DescribeAvailabilityZonesResult {
  AvailabilityZones?: AvailabilityZone[] | undefined;
}
export interface DescribeAwsNetworkPerformanceMetricSubscriptionsRequest {
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface Subscription {
  Source?: string | undefined;
  Destination?: string | undefined;
  Metric?: MetricType | undefined;
  Statistic?: StatisticType | undefined;
  Period?: PeriodType | undefined;
}
export interface DescribeAwsNetworkPerformanceMetricSubscriptionsResult {
  NextToken?: string | undefined;
  Subscriptions?: Subscription[] | undefined;
}
export interface DescribeBundleTasksRequest {
  BundleIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeBundleTasksResult {
  BundleTasks?: BundleTask[] | undefined;
}
export interface DescribeByoipCidrsRequest {
  DryRun?: boolean | undefined;
  MaxResults: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeByoipCidrsResult {
  ByoipCidrs?: ByoipCidr[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityBlockExtensionHistoryRequest {
  CapacityReservationIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CapacityBlockExtension {
  CapacityReservationId?: string | undefined;
  InstanceType?: string | undefined;
  InstanceCount?: number | undefined;
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  CapacityBlockExtensionOfferingId?: string | undefined;
  CapacityBlockExtensionDurationHours?: number | undefined;
  CapacityBlockExtensionStatus?: CapacityBlockExtensionStatus | undefined;
  CapacityBlockExtensionPurchaseDate?: Date | undefined;
  CapacityBlockExtensionStartDate?: Date | undefined;
  CapacityBlockExtensionEndDate?: Date | undefined;
  UpfrontFee?: string | undefined;
  CurrencyCode?: string | undefined;
  ZoneType?: string | undefined;
}
export interface DescribeCapacityBlockExtensionHistoryResult {
  CapacityBlockExtensions?: CapacityBlockExtension[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityBlockExtensionOfferingsRequest {
  DryRun?: boolean | undefined;
  CapacityBlockExtensionDurationHours: number | undefined;
  CapacityReservationId: string | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface CapacityBlockExtensionOffering {
  CapacityBlockExtensionOfferingId?: string | undefined;
  InstanceType?: string | undefined;
  InstanceCount?: number | undefined;
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  StartDate?: Date | undefined;
  CapacityBlockExtensionStartDate?: Date | undefined;
  CapacityBlockExtensionEndDate?: Date | undefined;
  CapacityBlockExtensionDurationHours?: number | undefined;
  UpfrontFee?: string | undefined;
  CurrencyCode?: string | undefined;
  Tenancy?: CapacityReservationTenancy | undefined;
  ZoneType?: string | undefined;
}
export interface DescribeCapacityBlockExtensionOfferingsResult {
  CapacityBlockExtensionOfferings?:
    | CapacityBlockExtensionOffering[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityBlockOfferingsRequest {
  DryRun?: boolean | undefined;
  InstanceType?: string | undefined;
  InstanceCount?: number | undefined;
  StartDateRange?: Date | undefined;
  EndDateRange?: Date | undefined;
  CapacityDurationHours: number | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  UltraserverType?: string | undefined;
  UltraserverCount?: number | undefined;
  AllAvailabilityZones?: boolean | undefined;
}
export interface CapacityBlockOffering {
  CapacityBlockOfferingId?: string | undefined;
  InstanceType?: string | undefined;
  AvailabilityZone?: string | undefined;
  InstanceCount?: number | undefined;
  StartDate?: Date | undefined;
  EndDate?: Date | undefined;
  CapacityBlockDurationHours?: number | undefined;
  UpfrontFee?: string | undefined;
  CurrencyCode?: string | undefined;
  Tenancy?: CapacityReservationTenancy | undefined;
  UltraserverType?: string | undefined;
  UltraserverCount?: number | undefined;
  CapacityBlockDurationMinutes?: number | undefined;
  ZoneType?: string | undefined;
}
export interface DescribeCapacityBlockOfferingsResult {
  CapacityBlockOfferings?: CapacityBlockOffering[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityBlocksRequest {
  CapacityBlockIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CapacityBlock {
  CapacityBlockId?: string | undefined;
  UltraserverType?: string | undefined;
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  CapacityReservationIds?: string[] | undefined;
  StartDate?: Date | undefined;
  EndDate?: Date | undefined;
  CreateDate?: Date | undefined;
  State?: CapacityBlockResourceState | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeCapacityBlocksResult {
  CapacityBlocks?: CapacityBlock[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityBlockStatusRequest {
  CapacityBlockIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CapacityReservationStatus {
  CapacityReservationId?: string | undefined;
  TotalCapacity?: number | undefined;
  TotalAvailableCapacity?: number | undefined;
  TotalUnavailableCapacity?: number | undefined;
}
export interface CapacityBlockStatus {
  CapacityBlockId?: string | undefined;
  InterconnectStatus?: CapacityBlockInterconnectStatus | undefined;
  TotalCapacity?: number | undefined;
  TotalAvailableCapacity?: number | undefined;
  TotalUnavailableCapacity?: number | undefined;
  CapacityReservationStatuses?: CapacityReservationStatus[] | undefined;
}
export interface DescribeCapacityBlockStatusResult {
  CapacityBlockStatuses?: CapacityBlockStatus[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityManagerDataExportsRequest {
  CapacityManagerDataExportIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface CapacityManagerDataExportResponse {
  CapacityManagerDataExportId?: string | undefined;
  S3BucketName?: string | undefined;
  S3BucketPrefix?: string | undefined;
  Schedule?: Schedule | undefined;
  OutputFormat?: OutputFormat | undefined;
  CreateTime?: Date | undefined;
  LatestDeliveryStatus?: CapacityManagerDataExportStatus | undefined;
  LatestDeliveryStatusMessage?: string | undefined;
  LatestDeliveryS3LocationUri?: string | undefined;
  LatestDeliveryTime?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeCapacityManagerDataExportsResult {
  CapacityManagerDataExports?: CapacityManagerDataExportResponse[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityReservationBillingRequestsRequest {
  CapacityReservationIds?: string[] | undefined;
  Role: CallerRole | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CapacityReservationInfo {
  InstanceType?: string | undefined;
  AvailabilityZone?: string | undefined;
  Tenancy?: CapacityReservationTenancy | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface CapacityReservationBillingRequest {
  CapacityReservationId?: string | undefined;
  RequestedBy?: string | undefined;
  UnusedReservationBillingOwnerId?: string | undefined;
  LastUpdateTime?: Date | undefined;
  Status?: CapacityReservationBillingRequestStatus | undefined;
  StatusMessage?: string | undefined;
  CapacityReservationInfo?: CapacityReservationInfo | undefined;
}
export interface DescribeCapacityReservationBillingRequestsResult {
  NextToken?: string | undefined;
  CapacityReservationBillingRequests?:
    | CapacityReservationBillingRequest[]
    | undefined;
}
export interface DescribeCapacityReservationCancellationQuotesRequest {
  CapacityReservationCancellationQuoteIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeCapacityReservationCancellationQuotesResult {
  CapacityReservationCancellationQuotes?:
    | CapacityReservationCancellationQuote[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityReservationFleetsRequest {
  CapacityReservationFleetIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CapacityReservationFleet {
  CapacityReservationFleetId?: string | undefined;
  CapacityReservationFleetArn?: string | undefined;
  State?: CapacityReservationFleetState | undefined;
  TotalTargetCapacity?: number | undefined;
  TotalFulfilledCapacity?: number | undefined;
  Tenancy?: FleetCapacityReservationTenancy | undefined;
  EndDate?: Date | undefined;
  CreateTime?: Date | undefined;
  InstanceMatchCriteria?: FleetInstanceMatchCriteria | undefined;
  AllocationStrategy?: string | undefined;
  InstanceTypeSpecifications?: FleetCapacityReservation[] | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeCapacityReservationFleetsResult {
  CapacityReservationFleets?: CapacityReservationFleet[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCapacityReservationsRequest {
  CapacityReservationIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeCapacityReservationsResult {
  NextToken?: string | undefined;
  CapacityReservations?: CapacityReservation[] | undefined;
}
export interface DescribeCapacityReservationTopologyRequest {
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  CapacityReservationIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface CapacityReservationTopology {
  CapacityReservationId?: string | undefined;
  CapacityBlockId?: string | undefined;
  State?: string | undefined;
  InstanceType?: string | undefined;
  GroupName?: string | undefined;
  NetworkNodes?: string[] | undefined;
  AvailabilityZoneId?: string | undefined;
  AvailabilityZone?: string | undefined;
}
export interface DescribeCapacityReservationTopologyResult {
  NextToken?: string | undefined;
  CapacityReservations?: CapacityReservationTopology[] | undefined;
}
export interface DescribeCarrierGatewaysRequest {
  CarrierGatewayIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeCarrierGatewaysResult {
  CarrierGateways?: CarrierGateway[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeClassicLinkInstancesRequest {
  DryRun?: boolean | undefined;
  InstanceIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface ClassicLinkInstance {
  Groups?: GroupIdentifier[] | undefined;
  InstanceId?: string | undefined;
  Tags?: Tag[] | undefined;
  VpcId?: string | undefined;
}
export interface DescribeClassicLinkInstancesResult {
  Instances?: ClassicLinkInstance[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeClientVpnAuthorizationRulesRequest {
  ClientVpnEndpointId: string | undefined;
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
}
export interface AuthorizationRule {
  ClientVpnEndpointId?: string | undefined;
  Description?: string | undefined;
  GroupId?: string | undefined;
  AccessAll?: boolean | undefined;
  DestinationCidr?: string | undefined;
  Status?: ClientVpnAuthorizationRuleStatus | undefined;
}
export interface DescribeClientVpnAuthorizationRulesResult {
  AuthorizationRules?: AuthorizationRule[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeClientVpnConnectionsRequest {
  ClientVpnEndpointId: string | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface ClientVpnConnectionStatus {
  Code?: ClientVpnConnectionStatusCode | undefined;
  Message?: string | undefined;
}
export interface ClientVpnConnection {
  ClientVpnEndpointId?: string | undefined;
  Timestamp?: string | undefined;
  ConnectionId?: string | undefined;
  Username?: string | undefined;
  ConnectionEstablishedTime?: string | undefined;
  IngressBytes?: string | undefined;
  EgressBytes?: string | undefined;
  IngressPackets?: string | undefined;
  EgressPackets?: string | undefined;
  ClientIp?: string | undefined;
  ClientIpv6Address?: string | undefined;
  CommonName?: string | undefined;
  Status?: ClientVpnConnectionStatus | undefined;
  ConnectionEndTime?: string | undefined;
  PostureComplianceStatuses?: string[] | undefined;
}
export interface DescribeClientVpnConnectionsResult {
  Connections?: ClientVpnConnection[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeClientVpnEndpointsRequest {
  ClientVpnEndpointIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface AssociatedTargetNetwork {
  NetworkId?: string | undefined;
  NetworkType?: AssociatedNetworkType | undefined;
}
export interface DirectoryServiceAuthentication {
  DirectoryId?: string | undefined;
}
export interface FederatedAuthentication {
  SamlProviderArn?: string | undefined;
  SelfServiceSamlProviderArn?: string | undefined;
}
export interface CertificateAuthentication {
  ClientRootCertificateChain?: string | undefined;
}
export interface ClientVpnAuthentication {
  Type?: ClientVpnAuthenticationType | undefined;
  ActiveDirectory?: DirectoryServiceAuthentication | undefined;
  MutualAuthentication?: CertificateAuthentication | undefined;
  FederatedAuthentication?: FederatedAuthentication | undefined;
}
export interface ClientVpnEndpointAttributeStatus {
  Code?: ClientVpnEndpointAttributeStatusCode | undefined;
  Message?: string | undefined;
}
export interface ClientConnectResponseOptions {
  Enabled?: boolean | undefined;
  LambdaFunctionArn?: string | undefined;
  Status?: ClientVpnEndpointAttributeStatus | undefined;
}
export interface ClientLoginBannerResponseOptions {
  Enabled?: boolean | undefined;
  BannerText?: string | undefined;
}
export interface ClientRouteEnforcementResponseOptions {
  Enforced?: boolean | undefined;
}
export interface ConnectionLogResponseOptions {
  Enabled?: boolean | undefined;
  CloudwatchLogGroup?: string | undefined;
  CloudwatchLogStream?: string | undefined;
}
export interface TransitGatewayConfigurationDescribeEndpointStructure {
  TransitGatewayId?: string | undefined;
  TransitGatewayAttachmentId?: string | undefined;
  AvailabilityZones?: string[] | undefined;
  AvailabilityZoneIds?: string[] | undefined;
}
export interface ClientVpnEndpoint {
  ClientVpnEndpointId?: string | undefined;
  Description?: string | undefined;
  Status?: ClientVpnEndpointStatus | undefined;
  CreationTime?: string | undefined;
  DeletionTime?: string | undefined;
  DnsName?: string | undefined;
  ClientCidrBlock?: string | undefined;
  DnsServers?: string[] | undefined;
  SplitTunnel?: boolean | undefined;
  VpnProtocol?: VpnProtocol | undefined;
  TransportProtocol?: TransportProtocol | undefined;
  VpnPort?: number | undefined;
  AssociatedTargetNetworks?: AssociatedTargetNetwork[] | undefined;
  ServerCertificateArn?: string | undefined;
  AuthenticationOptions?: ClientVpnAuthentication[] | undefined;
  ConnectionLogOptions?: ConnectionLogResponseOptions | undefined;
  Tags?: Tag[] | undefined;
  SecurityGroupIds?: string[] | undefined;
  VpcId?: string | undefined;
  SelfServicePortalUrl?: string | undefined;
  ClientConnectOptions?: ClientConnectResponseOptions | undefined;
  SessionTimeoutHours?: number | undefined;
  ClientLoginBannerOptions?: ClientLoginBannerResponseOptions | undefined;
  ClientRouteEnforcementOptions?:
    | ClientRouteEnforcementResponseOptions
    | undefined;
  DisconnectOnSessionTimeout?: boolean | undefined;
  EndpointIpAddressType?: EndpointIpAddressType | undefined;
  TrafficIpAddressType?: TrafficIpAddressType | undefined;
  TransitGatewayConfiguration?:
    | TransitGatewayConfigurationDescribeEndpointStructure
    | undefined;
}
export interface DescribeClientVpnEndpointsResult {
  ClientVpnEndpoints?: ClientVpnEndpoint[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeClientVpnRoutesRequest {
  ClientVpnEndpointId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ClientVpnRoute {
  ClientVpnEndpointId?: string | undefined;
  DestinationCidr?: string | undefined;
  TargetSubnet?: string | undefined;
  Type?: string | undefined;
  Origin?: string | undefined;
  Status?: ClientVpnRouteStatus | undefined;
  Description?: string | undefined;
  TransitGatewayAttachmentId?: string | undefined;
}
export interface DescribeClientVpnRoutesResult {
  Routes?: ClientVpnRoute[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeClientVpnTargetNetworksRequest {
  ClientVpnEndpointId: string | undefined;
  AssociationIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TargetNetwork {
  AssociationId?: string | undefined;
  VpcId?: string | undefined;
  TargetNetworkId?: string | undefined;
  ClientVpnEndpointId?: string | undefined;
  Status?: AssociationStatus | undefined;
  SecurityGroups?: string[] | undefined;
  AvailabilityZones?: string[] | undefined;
  AvailabilityZoneIds?: string[] | undefined;
}
export interface DescribeClientVpnTargetNetworksResult {
  ClientVpnTargetNetworks?: TargetNetwork[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeCoipPoolsRequest {
  PoolIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeCoipPoolsResult {
  CoipPools?: CoipPool[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeConversionTasksRequest {
  DryRun?: boolean | undefined;
  ConversionTaskIds?: string[] | undefined;
}
export interface DiskImageDescription {
  Checksum?: string | undefined;
  Format?: DiskImageFormat | undefined;
  ImportManifestUrl?: string | undefined;
  Size?: number | undefined;
}
export interface DiskImageVolumeDescription {
  Id?: string | undefined;
  Size?: number | undefined;
}
export interface ImportInstanceVolumeDetailItem {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  BytesConverted?: number | undefined;
  Description?: string | undefined;
  Image?: DiskImageDescription | undefined;
  Status?: string | undefined;
  StatusMessage?: string | undefined;
  Volume?: DiskImageVolumeDescription | undefined;
}
export interface ImportInstanceTaskDetails {
  Description?: string | undefined;
  InstanceId?: string | undefined;
  Platform?: PlatformValues | undefined;
  Volumes?: ImportInstanceVolumeDetailItem[] | undefined;
}
export interface ImportVolumeTaskDetails {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  BytesConverted?: number | undefined;
  Description?: string | undefined;
  Image?: DiskImageDescription | undefined;
  Volume?: DiskImageVolumeDescription | undefined;
}
export interface ConversionTask {
  ConversionTaskId?: string | undefined;
  ExpirationTime?: string | undefined;
  ImportInstance?: ImportInstanceTaskDetails | undefined;
  ImportVolume?: ImportVolumeTaskDetails | undefined;
  State?: ConversionTaskState | undefined;
  StatusMessage?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeConversionTasksResult {
  ConversionTasks?: ConversionTask[] | undefined;
}
export interface DescribeCustomerGatewaysRequest {
  CustomerGatewayIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeCustomerGatewaysResult {
  CustomerGateways?: CustomerGateway[] | undefined;
}
export interface DescribeDeclarativePoliciesReportsRequest {
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  ReportIds?: string[] | undefined;
}
export interface DeclarativePoliciesReport {
  ReportId?: string | undefined;
  S3Bucket?: string | undefined;
  S3Prefix?: string | undefined;
  TargetId?: string | undefined;
  StartTime?: Date | undefined;
  EndTime?: Date | undefined;
  Status?: ReportState | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeDeclarativePoliciesReportsResult {
  NextToken?: string | undefined;
  Reports?: DeclarativePoliciesReport[] | undefined;
}
export interface DescribeDhcpOptionsRequest {
  DhcpOptionsIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeDhcpOptionsResult {
  NextToken?: string | undefined;
  DhcpOptions?: DhcpOptions[] | undefined;
}
export interface DescribeEgressOnlyInternetGatewaysRequest {
  DryRun?: boolean | undefined;
  EgressOnlyInternetGatewayIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeEgressOnlyInternetGatewaysResult {
  EgressOnlyInternetGateways?: EgressOnlyInternetGateway[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeElasticGpusRequest {
  ElasticGpuIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface ElasticGpuHealth {
  Status?: ElasticGpuStatus | undefined;
}
export interface ElasticGpus {
  ElasticGpuId?: string | undefined;
  AvailabilityZone?: string | undefined;
  ElasticGpuType?: string | undefined;
  ElasticGpuHealth?: ElasticGpuHealth | undefined;
  ElasticGpuState?: ElasticGpuState | undefined;
  InstanceId?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeElasticGpusResult {
  ElasticGpuSet?: ElasticGpus[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeExportImageTasksRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  ExportImageTaskIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface ExportTaskS3Location {
  S3Bucket?: string | undefined;
  S3Prefix?: string | undefined;
}
export interface ExportImageTask {
  Description?: string | undefined;
  ExportImageTaskId?: string | undefined;
  ImageId?: string | undefined;
  Progress?: string | undefined;
  S3ExportLocation?: ExportTaskS3Location | undefined;
  Status?: string | undefined;
  StatusMessage?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeExportImageTasksResult {
  ExportImageTasks?: ExportImageTask[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeExportTasksRequest {
  Filters?: Filter[] | undefined;
  ExportTaskIds?: string[] | undefined;
}
export interface DescribeExportTasksResult {
  ExportTasks?: ExportTask[] | undefined;
}
export interface DescribeFastLaunchImagesRequest {
  ImageIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface FastLaunchLaunchTemplateSpecificationResponse {
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  Version?: string | undefined;
}
export interface FastLaunchSnapshotConfigurationResponse {
  TargetResourceCount?: number | undefined;
}
export interface DescribeFastLaunchImagesSuccessItem {
  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 DescribeFastLaunchImagesResult {
  FastLaunchImages?: DescribeFastLaunchImagesSuccessItem[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeFastSnapshotRestoresRequest {
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeFastSnapshotRestoreSuccessItem {
  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 DescribeFastSnapshotRestoresResult {
  FastSnapshotRestores?: DescribeFastSnapshotRestoreSuccessItem[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeFleetHistoryRequest {
  DryRun?: boolean | undefined;
  EventType?: FleetEventType | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  FleetId: string | undefined;
  StartTime: Date | undefined;
}
export interface EventInformation {
  EventDescription?: string | undefined;
  EventSubType?: string | undefined;
  InstanceId?: string | undefined;
}
export interface HistoryRecordEntry {
  EventInformation?: EventInformation | undefined;
  EventType?: FleetEventType | undefined;
  Timestamp?: Date | undefined;
}
export interface DescribeFleetHistoryResult {
  HistoryRecords?: HistoryRecordEntry[] | undefined;
  LastEvaluatedTime?: Date | undefined;
  NextToken?: string | undefined;
  FleetId?: string | undefined;
  StartTime?: Date | undefined;
}
export interface DescribeFleetInstancesRequest {
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  FleetId: string | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeFleetInstancesResult {
  ActiveInstances?: ActiveInstance[] | undefined;
  NextToken?: string | undefined;
  FleetId?: string | undefined;
}
export interface DescribeFleetsRequest {
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  FleetIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeFleetError {
  LaunchTemplateAndOverrides?: LaunchTemplateAndOverridesResponse | undefined;
  Lifecycle?: InstanceLifecycle | undefined;
  ErrorCode?: string | undefined;
  ErrorMessage?: string | undefined;
}
export interface DescribeFleetsInstances {
  LaunchTemplateAndOverrides?: LaunchTemplateAndOverridesResponse | undefined;
  Lifecycle?: InstanceLifecycle | undefined;
  InstanceIds?: string[] | undefined;
  InstanceType?: _InstanceType | undefined;
  Platform?: PlatformValues | undefined;
}
export interface FleetLaunchTemplateConfig {
  LaunchTemplateSpecification?: FleetLaunchTemplateSpecification | undefined;
  Overrides?: FleetLaunchTemplateOverrides[] | undefined;
}
export interface CapacityReservationOptions {
  UsageStrategy?: FleetCapacityReservationUsageStrategy | undefined;
}
export interface OnDemandOptions {
  AllocationStrategy?: FleetOnDemandAllocationStrategy | undefined;
  CapacityReservationOptions?: CapacityReservationOptions | undefined;
  SingleInstanceType?: boolean | undefined;
  SingleAvailabilityZone?: boolean | undefined;
  MinTargetCapacity?: number | undefined;
  MaxTotalPrice?: string | undefined;
}
export interface ReservedCapacityOptions {
  ReservationTypes?: FleetReservationType[] | undefined;
}
export interface FleetSpotCapacityRebalance {
  ReplacementStrategy?: FleetReplacementStrategy | undefined;
  TerminationDelay?: number | undefined;
}
export interface FleetSpotMaintenanceStrategies {
  CapacityRebalance?: FleetSpotCapacityRebalance | undefined;
}
export interface SpotOptions {
  AllocationStrategy?: SpotAllocationStrategy | undefined;
  MaintenanceStrategies?: FleetSpotMaintenanceStrategies | undefined;
  InstanceInterruptionBehavior?: SpotInstanceInterruptionBehavior | undefined;
  InstancePoolsToUseCount?: number | undefined;
  SingleInstanceType?: boolean | undefined;
  SingleAvailabilityZone?: boolean | undefined;
  MinTargetCapacity?: number | undefined;
  MaxTotalPrice?: string | undefined;
}
export interface TargetCapacitySpecification {
  TotalTargetCapacity?: number | undefined;
  OnDemandTargetCapacity?: number | undefined;
  SpotTargetCapacity?: number | undefined;
  DefaultTargetCapacityType?: DefaultTargetCapacityType | undefined;
  TargetCapacityUnitType?: TargetCapacityUnitType | undefined;
}
export interface FleetData {
  ActivityStatus?: FleetActivityStatus | undefined;
  CreateTime?: Date | undefined;
  FleetId?: string | undefined;
  FleetState?: FleetStateCode | undefined;
  ClientToken?: string | undefined;
  ExcessCapacityTerminationPolicy?:
    | FleetExcessCapacityTerminationPolicy
    | undefined;
  FulfilledCapacity?: number | undefined;
  FulfilledOnDemandCapacity?: number | undefined;
  LaunchTemplateConfigs?: FleetLaunchTemplateConfig[] | undefined;
  TargetCapacitySpecification?: TargetCapacitySpecification | undefined;
  TerminateInstancesWithExpiration?: boolean | undefined;
  Type?: FleetType | undefined;
  ValidFrom?: Date | undefined;
  ValidUntil?: Date | undefined;
  ReplaceUnhealthyInstances?: boolean | undefined;
  SpotOptions?: SpotOptions | undefined;
  OnDemandOptions?: OnDemandOptions | undefined;
  ReservedCapacityOptions?: ReservedCapacityOptions | undefined;
  Tags?: Tag[] | undefined;
  Errors?: DescribeFleetError[] | undefined;
  Instances?: DescribeFleetsInstances[] | undefined;
  Context?: string | undefined;
}
export interface DescribeFleetsResult {
  NextToken?: string | undefined;
  Fleets?: FleetData[] | undefined;
}
export interface DescribeFlowLogsRequest {
  DryRun?: boolean | undefined;
  Filter?: Filter[] | undefined;
  FlowLogIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DestinationOptionsResponse {
  FileFormat?: DestinationFileFormat | undefined;
  HiveCompatiblePartitions?: boolean | undefined;
  PerHourPartition?: boolean | undefined;
}
export interface TagFieldSpecificationResponse {
  ResourceType?: TaggableResourceType | undefined;
  TagKeys?: string[] | undefined;
}
export interface FlowLog {
  CreationTime?: Date | undefined;
  DeliverLogsErrorMessage?: string | undefined;
  DeliverLogsPermissionArn?: string | undefined;
  DeliverCrossAccountRole?: string | undefined;
  DeliverLogsStatus?: string | undefined;
  FlowLogId?: string | undefined;
  FlowLogStatus?: string | undefined;
  LogGroupName?: string | undefined;
  ResourceId?: string | undefined;
  TrafficType?: TrafficType | undefined;
  LogDestinationType?: LogDestinationType | undefined;
  LogDestination?: string | undefined;
  LogFormat?: string | undefined;
  Tags?: Tag[] | undefined;
  MaxAggregationInterval?: number | undefined;
  DestinationOptions?: DestinationOptionsResponse | undefined;
  TagFieldSpecifications?: TagFieldSpecificationResponse[] | undefined;
}
export interface DescribeFlowLogsResult {
  FlowLogs?: FlowLog[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeFpgaImageAttributeRequest {
  DryRun?: boolean | undefined;
  FpgaImageId: string | undefined;
  Attribute: FpgaImageAttributeName | undefined;
}
export interface LoadPermission {
  UserId?: string | undefined;
  Group?: PermissionGroup | undefined;
}
export interface ProductCode {
  ProductCodeId?: string | undefined;
  ProductCodeType?: ProductCodeValues | undefined;
}
export interface FpgaImageAttribute {
  FpgaImageId?: string | undefined;
  Name?: string | undefined;
  Description?: string | undefined;
  LoadPermissions?: LoadPermission[] | undefined;
  ProductCodes?: ProductCode[] | undefined;
}
export interface DescribeFpgaImageAttributeResult {
  FpgaImageAttribute?: FpgaImageAttribute | undefined;
}
export interface DescribeFpgaImagesRequest {
  DryRun?: boolean | undefined;
  FpgaImageIds?: string[] | undefined;
  Owners?: string[] | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface PciId {
  DeviceId?: string | undefined;
  VendorId?: string | undefined;
  SubsystemId?: string | undefined;
  SubsystemVendorId?: string | undefined;
}
export interface FpgaImageState {
  Code?: FpgaImageStateCode | undefined;
  Message?: string | undefined;
}
export interface FpgaImage {
  FpgaImageId?: string | undefined;
  FpgaImageGlobalId?: string | undefined;
  Name?: string | undefined;
  Description?: string | undefined;
  ShellVersion?: string | undefined;
  PciId?: PciId | undefined;
  State?: FpgaImageState | undefined;
  CreateTime?: Date | undefined;
  UpdateTime?: Date | undefined;
  OwnerId?: string | undefined;
  OwnerAlias?: string | undefined;
  ProductCodes?: ProductCode[] | undefined;
  Tags?: Tag[] | undefined;
  Public?: boolean | undefined;
  DataRetentionSupport?: boolean | undefined;
  InstanceTypes?: string[] | undefined;
}
export interface DescribeFpgaImagesResult {
  FpgaImages?: FpgaImage[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeHostReservationOfferingsRequest {
  Filter?: Filter[] | undefined;
  MaxDuration?: number | undefined;
  MaxResults?: number | undefined;
  MinDuration?: number | undefined;
  NextToken?: string | undefined;
  OfferingId?: string | undefined;
}
export interface HostOffering {
  CurrencyCode?: CurrencyCodeValues | undefined;
  Duration?: number | undefined;
  HourlyPrice?: string | undefined;
  InstanceFamily?: string | undefined;
  OfferingId?: string | undefined;
  PaymentOption?: PaymentOption | undefined;
  UpfrontPrice?: string | undefined;
}
export interface DescribeHostReservationOfferingsResult {
  NextToken?: string | undefined;
  OfferingSet?: HostOffering[] | undefined;
}
export interface DescribeHostReservationsRequest {
  Filter?: Filter[] | undefined;
  HostReservationIdSet?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface HostReservation {
  Count?: number | undefined;
  CurrencyCode?: CurrencyCodeValues | undefined;
  Duration?: number | undefined;
  End?: Date | undefined;
  HostIdSet?: string[] | undefined;
  HostReservationId?: string | undefined;
  HourlyPrice?: string | undefined;
  InstanceFamily?: string | undefined;
  OfferingId?: string | undefined;
  PaymentOption?: PaymentOption | undefined;
  Start?: Date | undefined;
  State?: ReservationState | undefined;
  UpfrontPrice?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeHostReservationsResult {
  HostReservationSet?: HostReservation[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeHostsRequest {
  HostIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filter?: Filter[] | undefined;
}
export interface InstanceCapacity {
  AvailableCapacity?: number | undefined;
  InstanceType?: string | undefined;
  TotalCapacity?: number | undefined;
}
export interface AvailableCapacity {
  AvailableInstanceCapacity?: InstanceCapacity[] | undefined;
  AvailableVCpus?: number | undefined;
}
export interface HostCpuOptions {
  AmdSevSnp?: AmdSevSnp | undefined;
}
export interface HostProperties {
  Cores?: number | undefined;
  InstanceType?: string | undefined;
  InstanceFamily?: string | undefined;
  Sockets?: number | undefined;
  TotalVCpus?: number | undefined;
}
export interface HostInstance {
  InstanceId?: string | undefined;
  InstanceType?: string | undefined;
  OwnerId?: string | undefined;
}
export interface Host {
  AutoPlacement?: AutoPlacement | undefined;
  AvailabilityZone?: string | undefined;
  AvailableCapacity?: AvailableCapacity | undefined;
  ClientToken?: string | undefined;
  HostId?: string | undefined;
  HostProperties?: HostProperties | undefined;
  HostReservationId?: string | undefined;
  Instances?: HostInstance[] | undefined;
  State?: AllocationState | undefined;
  AllocationTime?: Date | undefined;
  ReleaseTime?: Date | undefined;
  Tags?: Tag[] | undefined;
  HostRecovery?: HostRecovery | undefined;
  AllowsMultipleInstanceTypes?: AllowsMultipleInstanceTypes | undefined;
  OwnerId?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  MemberOfServiceLinkedResourceGroup?: boolean | undefined;
  OutpostArn?: string | undefined;
  HostMaintenance?: HostMaintenance | undefined;
  AssetId?: string | undefined;
  CpuOptions?: HostCpuOptions | undefined;
}
export interface DescribeHostsResult {
  Hosts?: Host[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeIamInstanceProfileAssociationsRequest {
  AssociationIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeIamInstanceProfileAssociationsResult {
  IamInstanceProfileAssociations?: IamInstanceProfileAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeIdentityIdFormatRequest {
  Resource?: string | undefined;
  PrincipalArn: string | undefined;
}
export interface DescribeIdentityIdFormatResult {
  Statuses?: IdFormat[] | undefined;
}
export interface DescribeIdFormatRequest {
  Resource?: string | undefined;
}
export interface DescribeIdFormatResult {
  Statuses?: IdFormat[] | undefined;
}
export interface DescribeImageAttributeRequest {
  Attribute: ImageAttributeName | undefined;
  ImageId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface LaunchPermission {
  OrganizationArn?: string | undefined;
  OrganizationalUnitArn?: string | undefined;
  UserId?: string | undefined;
  Group?: PermissionGroup | undefined;
}
export interface ImageAttribute {
  Description?: AttributeValue | undefined;
  KernelId?: AttributeValue | undefined;
  RamdiskId?: AttributeValue | undefined;
  SriovNetSupport?: AttributeValue | undefined;
  BootMode?: AttributeValue | undefined;
  TpmSupport?: AttributeValue | undefined;
  UefiData?: AttributeValue | undefined;
  LastLaunchedTime?: AttributeValue | undefined;
  ImdsSupport?: AttributeValue | undefined;
  DeregistrationProtection?: AttributeValue | undefined;
  ImageId?: string | undefined;
  LaunchPermissions?: LaunchPermission[] | undefined;
  ProductCodes?: ProductCode[] | undefined;
  BlockDeviceMappings?: BlockDeviceMapping[] | undefined;
}
export interface ResourceTypeOption {
  OptionName?: ImageReferenceOptionName | undefined;
  OptionValues?: string[] | undefined;
}
export interface ResourceTypeRequest {
  ResourceType?: ImageReferenceResourceType | undefined;
  ResourceTypeOptions?: ResourceTypeOption[] | undefined;
}
export interface DescribeImageReferencesRequest {
  ImageIds: string[] | undefined;
  IncludeAllResourceTypes?: boolean | undefined;
  ResourceTypes?: ResourceTypeRequest[] | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
}
export interface ImageReference {
  ImageId?: string | undefined;
  ResourceType?: ImageReferenceResourceType | undefined;
  Arn?: string | undefined;
}
export interface DescribeImageReferencesResult {
  NextToken?: string | undefined;
  ImageReferences?: ImageReference[] | undefined;
}
export interface DescribeImagesRequest {
  ExecutableUsers?: string[] | undefined;
  ImageIds?: string[] | undefined;
  Owners?: string[] | undefined;
  IncludeDeprecated?: boolean | undefined;
  IncludeDisabled?: boolean | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface ImageWatermark {
  WatermarkKey?: string | undefined;
  SourceImageRegion?: string | undefined;
  SourceImageId?: string | undefined;
  SourceImageCreationTime?: Date | undefined;
  WatermarkCreationTime?: Date | undefined;
}
export interface Image {
  PlatformDetails?: string | undefined;
  UsageOperation?: string | undefined;
  BlockDeviceMappings?: BlockDeviceMapping[] | undefined;
  Description?: string | undefined;
  EnaSupport?: boolean | undefined;
  Hypervisor?: HypervisorType | undefined;
  ImageOwnerAlias?: string | undefined;
  Name?: string | undefined;
  RootDeviceName?: string | undefined;
  RootDeviceType?: DeviceType | undefined;
  SriovNetSupport?: string | undefined;
  StateReason?: StateReason | undefined;
  Tags?: Tag[] | undefined;
  VirtualizationType?: VirtualizationType | undefined;
  BootMode?: BootModeValues | undefined;
  TpmSupport?: TpmSupportValues | undefined;
  DeprecationTime?: string | undefined;
  ImdsSupport?: ImdsSupportValues | undefined;
  SourceInstanceId?: string | undefined;
  DeregistrationProtection?: string | undefined;
  LastLaunchedTime?: string | undefined;
  ImageAllowed?: boolean | undefined;
  SourceImageId?: string | undefined;
  SourceImageRegion?: string | undefined;
  FreeTierEligible?: boolean | undefined;
  PublicSsmParameterName?: string | undefined;
  ImageWatermarks?: ImageWatermark[] | undefined;
  ImageId?: string | undefined;
  ImageLocation?: string | undefined;
  State?: ImageState | undefined;
  OwnerId?: string | undefined;
  CreationDate?: string | undefined;
  Public?: boolean | undefined;
  ProductCodes?: ProductCode[] | undefined;
  Architecture?: ArchitectureValues | undefined;
  ImageType?: ImageTypeValues | undefined;
  KernelId?: string | undefined;
  RamdiskId?: string | undefined;
  Platform?: PlatformValues | undefined;
}
export interface DescribeImagesResult {
  NextToken?: string | undefined;
  Images?: Image[] | undefined;
}
export interface DescribeImageUsageReportEntriesRequest {
  ImageIds?: string[] | undefined;
  ReportIds?: string[] | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
}
export interface ImageUsageReportEntry {
  ResourceType?: string | undefined;
  ReportId?: string | undefined;
  UsageCount?: number | undefined;
  AccountId?: string | undefined;
  ImageId?: string | undefined;
  ReportCreationTime?: Date | undefined;
}
export interface DescribeImageUsageReportEntriesResult {
  NextToken?: string | undefined;
  ImageUsageReportEntries?: ImageUsageReportEntry[] | undefined;
}
export interface DescribeImageUsageReportsRequest {
  ImageIds?: string[] | undefined;
  ReportIds?: string[] | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
}
export interface ImageUsageResourceTypeOption {
  OptionName?: string | undefined;
  OptionValues?: string[] | undefined;
}
