import {
  _InstanceType,
  ActivityStatus,
  AllocationStrategy,
  AnalysisStatus,
  ArchitectureType,
  ArchitectureValues,
  AttachmentLimitType,
  BandwidthWeightingType,
  BatchState,
  BootModeType,
  BootModeValues,
  CurrencyCodeValues,
  DeviceType,
  DiskType,
  EbsEncryptionSupport,
  EbsNvmeSupport,
  EbsOptimizedSupport,
  EnaSupport,
  EphemeralNvmeSupport,
  EventCode,
  EventType,
  ExcessCapacityTerminationPolicy,
  FindingsFound,
  FleetType,
  FlexibleEnaQueuesSupport,
  HaStatus,
  HostnameType,
  HypervisorType,
  InstanceBandwidthWeighting,
  InstanceBootModeValues,
  InstanceInterruptionBehavior,
  InstanceLifecycleType,
  InstanceStorageEncryptionSupport,
  InstanceTypeHypervisor,
  KeyType,
  LocationType,
  LockState,
  MoveStatus,
  NetworkInterfaceAttribute,
  NetworkInterfaceStatus,
  NitroEnclavesSupport,
  NitroTpmSupport,
  OfferingClassType,
  OfferingTypeValues,
  OnDemandAllocationStrategy,
  PermissionGroup,
  PhcSupport,
  PlacementGroupStrategy,
  PlatformValues,
  RebootMigrationSupport,
  RecurringChargeFrequency,
  ReplacementStrategy,
  ReservedInstanceState,
  ResourceType,
  RIProductDescription,
  RootDeviceType,
  Scope,
  SecurityGroupVpcAssociationState,
  ServiceLinkVirtualInterfaceConfigurationState,
  SnapshotAttributeName,
  SnapshotState,
  SpotInstanceState,
  SpotInstanceType,
  SqlServerLicenseUsage,
  StatusName,
  StatusType,
  StorageTier,
  SummaryStatus,
  SupportedAdditionalProcessorFeature,
  TargetCapacityUnitType,
  Tenancy,
  TieringOperationStatus,
  TransitGatewayAssociationState,
  TransitGatewayAttachmentResourceType,
  TransitGatewayAttachmentState,
  UsageClassType,
  VerifiedAccessLogDeliveryStatusCode,
  VirtualizationType,
} from "./enums";
import {
  IamInstanceProfile,
  IamInstanceProfileSpecification,
  OperatorResponse,
  ActiveInstance,
  AlternatePathHint,
  Explanation,
  IpamResourceDiscoveryAssociation,
  IpPermission,
  MacModificationTask,
  PathComponent,
  ReservedInstancesListing,
  SecurityGroupRule,
  Subnet,
  Tag,
  TagSpecification,
  TransitGatewayPeeringAttachment,
  TransitGatewayVpcAttachment,
  TrunkInterfaceAssociation,
  UserIdGroupPair,
} from "./models_0";
import {
  AttributeValue,
  ConnectionTrackingSpecificationRequest,
  EnaSrdSpecificationRequest,
  FleetLaunchTemplateSpecification,
  InstanceRequirements,
  NetworkInterfaceAttachment,
  Placement,
  SpotInstanceStateFault,
  StateReason,
  BlockDeviceMapping,
  GroupIdentifier,
  InstanceIpv6Address,
  InternetGateway,
  Ipam,
  IpamExternalResourceVerificationToken,
  IpamPolicy,
  IpamPool,
  IpamPrefixListResolver,
  IpamPrefixListResolverTarget,
  IpamResourceDiscovery,
  IpamScope,
  Ipv4PrefixSpecificationRequest,
  Ipv6PrefixSpecificationRequest,
  LaunchTemplate,
  LaunchTemplateVersion,
  LocalGatewayRouteTable,
  LocalGatewayRouteTableVirtualInterfaceGroupAssociation,
  LocalGatewayRouteTableVpcAssociation,
  LocalGatewayVirtualInterface,
  LocalGatewayVirtualInterfaceGroup,
  ManagedPrefixList,
  NatGateway,
  NetworkAcl,
  NetworkInsightsAccessScope,
  NetworkInsightsPath,
  NetworkInterface,
  NetworkInterfacePermission,
  PlacementGroup,
  PrivateIpAddressSpecification,
  ReplaceRootVolumeTask,
  RouteServer,
  RouteServerEndpoint,
  RouteServerPeer,
  RouteTable,
  Snapshot,
} from "./models_1";
import {
  SpotDatafeedSubscription,
  TrafficMirrorFilter,
  TrafficMirrorFilterRule,
  TrafficMirrorSession,
  TrafficMirrorTarget,
  TransitGateway,
  TransitGatewayConnect,
  TransitGatewayConnectPeer,
  TransitGatewayMeteringPolicy,
  TransitGatewayMulticastDomain,
  TransitGatewayPolicyTable,
  TransitGatewayRouteTable,
  TransitGatewayRouteTableAnnouncement,
  VerifiedAccessEndpoint,
  VerifiedAccessGroup,
} from "./models_2";
import {
  AttributeBooleanValue,
  CapacityReservationSpecificationResponse,
  ConnectionTrackingSpecificationResponse,
  CpuOptions,
  EnclaveOptions,
  EventInformation,
  HibernationOptions,
  InstanceMaintenanceOptions,
  InstanceMetadataOptionsResponse,
  InstanceNetworkInterfaceAssociation,
  InstanceNetworkInterfaceAttachment,
  InstanceState,
  Monitoring,
  Byoasn,
  ElasticGpuAssociation,
  ElasticInferenceAcceleratorAssociation,
  Filter,
  IdFormat,
  InstanceBlockDeviceMapping,
  InstanceIpv4Prefix,
  LicenseConfiguration,
  ProductCode,
} from "./models_3";
export interface InstanceIpv6Prefix {
  Ipv6Prefix?: string | undefined;
}
export interface InstancePrivateIpAddress {
  Association?: InstanceNetworkInterfaceAssociation | undefined;
  Primary?: boolean | undefined;
  PrivateDnsName?: string | undefined;
  PrivateIpAddress?: string | undefined;
}
export interface InstanceNetworkInterface {
  Association?: InstanceNetworkInterfaceAssociation | undefined;
  Attachment?: InstanceNetworkInterfaceAttachment | undefined;
  Description?: string | undefined;
  Groups?: GroupIdentifier[] | undefined;
  Ipv6Addresses?: InstanceIpv6Address[] | undefined;
  MacAddress?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  OwnerId?: string | undefined;
  PrivateDnsName?: string | undefined;
  PrivateIpAddress?: string | undefined;
  PrivateIpAddresses?: InstancePrivateIpAddress[] | undefined;
  SourceDestCheck?: boolean | undefined;
  Status?: NetworkInterfaceStatus | undefined;
  SubnetId?: string | undefined;
  VpcId?: string | undefined;
  InterfaceType?: string | undefined;
  Ipv4Prefixes?: InstanceIpv4Prefix[] | undefined;
  Ipv6Prefixes?: InstanceIpv6Prefix[] | undefined;
  ConnectionTrackingConfiguration?:
    | ConnectionTrackingSpecificationResponse
    | undefined;
  Operator?: OperatorResponse | undefined;
}
export interface InstanceNetworkPerformanceOptions {
  BandwidthWeighting?: InstanceBandwidthWeighting | undefined;
}
export interface PrivateDnsNameOptionsResponse {
  HostnameType?: HostnameType | undefined;
  EnableResourceNameDnsARecord?: boolean | undefined;
  EnableResourceNameDnsAAAARecord?: boolean | undefined;
}
export interface Instance {
  Architecture?: ArchitectureValues | undefined;
  BlockDeviceMappings?: InstanceBlockDeviceMapping[] | undefined;
  ClientToken?: string | undefined;
  EbsOptimized?: boolean | undefined;
  EnaSupport?: boolean | undefined;
  Hypervisor?: HypervisorType | undefined;
  IamInstanceProfile?: IamInstanceProfile | undefined;
  InstanceLifecycle?: InstanceLifecycleType | undefined;
  ElasticGpuAssociations?: ElasticGpuAssociation[] | undefined;
  ElasticInferenceAcceleratorAssociations?:
    | ElasticInferenceAcceleratorAssociation[]
    | undefined;
  NetworkInterfaces?: InstanceNetworkInterface[] | undefined;
  OutpostArn?: string | undefined;
  RootDeviceName?: string | undefined;
  RootDeviceType?: DeviceType | undefined;
  SecurityGroups?: GroupIdentifier[] | undefined;
  SourceDestCheck?: boolean | undefined;
  SpotInstanceRequestId?: string | undefined;
  SriovNetSupport?: string | undefined;
  StateReason?: StateReason | undefined;
  Tags?: Tag[] | undefined;
  VirtualizationType?: VirtualizationType | undefined;
  CpuOptions?: CpuOptions | undefined;
  CapacityBlockId?: string | undefined;
  CapacityReservationId?: string | undefined;
  CapacityReservationSpecification?:
    | CapacityReservationSpecificationResponse
    | undefined;
  HibernationOptions?: HibernationOptions | undefined;
  Licenses?: LicenseConfiguration[] | undefined;
  MetadataOptions?: InstanceMetadataOptionsResponse | undefined;
  EnclaveOptions?: EnclaveOptions | undefined;
  BootMode?: BootModeValues | undefined;
  PlatformDetails?: string | undefined;
  UsageOperation?: string | undefined;
  UsageOperationUpdateTime?: Date | undefined;
  PrivateDnsNameOptions?: PrivateDnsNameOptionsResponse | undefined;
  Ipv6Address?: string | undefined;
  TpmSupport?: string | undefined;
  MaintenanceOptions?: InstanceMaintenanceOptions | undefined;
  CurrentInstanceBootMode?: InstanceBootModeValues | undefined;
  NetworkPerformanceOptions?: InstanceNetworkPerformanceOptions | undefined;
  Operator?: OperatorResponse | undefined;
  InstanceId?: string | undefined;
  ImageId?: string | undefined;
  State?: InstanceState | undefined;
  PrivateDnsName?: string | undefined;
  PublicDnsName?: string | undefined;
  StateTransitionReason?: string | undefined;
  KeyName?: string | undefined;
  AmiLaunchIndex?: number | undefined;
  ProductCodes?: ProductCode[] | undefined;
  InstanceType?: _InstanceType | undefined;
  LaunchTime?: Date | undefined;
  Placement?: Placement | undefined;
  KernelId?: string | undefined;
  RamdiskId?: string | undefined;
  Platform?: PlatformValues | undefined;
  Monitoring?: Monitoring | undefined;
  SubnetId?: string | undefined;
  VpcId?: string | undefined;
  PrivateIpAddress?: string | undefined;
  PublicIpAddress?: string | undefined;
}
export interface Reservation {
  ReservationId?: string | undefined;
  OwnerId?: string | undefined;
  RequesterId?: string | undefined;
  Groups?: GroupIdentifier[] | undefined;
  Instances?: Instance[] | undefined;
}
export interface DescribeInstancesResult {
  NextToken?: string | undefined;
  Reservations?: Reservation[] | undefined;
}
export interface DescribeInstanceSqlHaHistoryStatesRequest {
  InstanceIds?: string[] | undefined;
  StartTime?: Date | undefined;
  EndTime?: Date | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface RegisteredInstance {
  InstanceId?: string | undefined;
  SqlServerLicenseUsage?: SqlServerLicenseUsage | undefined;
  HaStatus?: HaStatus | undefined;
  ProcessingStatus?: string | undefined;
  LastUpdatedTime?: Date | undefined;
  SqlServerCredentials?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeInstanceSqlHaHistoryStatesResult {
  Instances?: RegisteredInstance[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeInstanceSqlHaStatesRequest {
  InstanceIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeInstanceSqlHaStatesResult {
  Instances?: RegisteredInstance[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeInstanceStatusRequest {
  InstanceIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  IncludeAllInstances?: boolean | undefined;
}
export interface EbsStatusDetails {
  ImpairedSince?: Date | undefined;
  Name?: StatusName | undefined;
  Status?: StatusType | undefined;
}
export interface EbsStatusSummary {
  Details?: EbsStatusDetails[] | undefined;
  Status?: SummaryStatus | undefined;
}
export interface InstanceStatusEvent {
  InstanceEventId?: string | undefined;
  Code?: EventCode | undefined;
  Description?: string | undefined;
  NotAfter?: Date | undefined;
  NotBefore?: Date | undefined;
  NotBeforeDeadline?: Date | undefined;
}
export interface InstanceStatusDetails {
  ImpairedSince?: Date | undefined;
  Name?: StatusName | undefined;
  Status?: StatusType | undefined;
}
export interface InstanceStatusSummary {
  Details?: InstanceStatusDetails[] | undefined;
  Status?: SummaryStatus | undefined;
}
export interface InstanceStatus {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  OutpostArn?: string | undefined;
  Operator?: OperatorResponse | undefined;
  Events?: InstanceStatusEvent[] | undefined;
  InstanceId?: string | undefined;
  InstanceState?: InstanceState | undefined;
  InstanceStatus?: InstanceStatusSummary | undefined;
  SystemStatus?: InstanceStatusSummary | undefined;
  AttachedEbsStatus?: EbsStatusSummary | undefined;
}
export interface DescribeInstanceStatusResult {
  InstanceStatuses?: InstanceStatus[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeInstanceTopologyRequest {
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  InstanceIds?: string[] | undefined;
  GroupNames?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface InstanceTopology {
  InstanceId?: string | undefined;
  InstanceType?: string | undefined;
  GroupName?: string | undefined;
  NetworkNodes?: string[] | undefined;
  AvailabilityZone?: string | undefined;
  ZoneId?: string | undefined;
  CapacityBlockId?: string | undefined;
}
export interface DescribeInstanceTopologyResult {
  Instances?: InstanceTopology[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeInstanceTypeOfferingsRequest {
  DryRun?: boolean | undefined;
  LocationType?: LocationType | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface InstanceTypeOffering {
  InstanceType?: _InstanceType | undefined;
  LocationType?: LocationType | undefined;
  Location?: string | undefined;
}
export interface DescribeInstanceTypeOfferingsResult {
  InstanceTypeOfferings?: InstanceTypeOffering[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeInstanceTypesRequest {
  DryRun?: boolean | undefined;
  InstanceTypes?: _InstanceType[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface EbsCardInfo {
  EbsCardIndex?: number | undefined;
  BaselineBandwidthInMbps?: number | undefined;
  BaselineThroughputInMBps?: number | undefined;
  BaselineIops?: number | undefined;
  MaximumBandwidthInMbps?: number | undefined;
  MaximumThroughputInMBps?: number | undefined;
  MaximumIops?: number | undefined;
}
export interface EbsOptimizedInfo {
  BaselineBandwidthInMbps?: number | undefined;
  BaselineThroughputInMBps?: number | undefined;
  BaselineIops?: number | undefined;
  MaximumBandwidthInMbps?: number | undefined;
  MaximumThroughputInMBps?: number | undefined;
  MaximumIops?: number | undefined;
}
export interface EbsInfo {
  EbsOptimizedSupport?: EbsOptimizedSupport | undefined;
  EncryptionSupport?: EbsEncryptionSupport | undefined;
  EbsOptimizedInfo?: EbsOptimizedInfo | undefined;
  NvmeSupport?: EbsNvmeSupport | undefined;
  MaximumEbsAttachments?: number | undefined;
  AttachmentLimitType?: AttachmentLimitType | undefined;
  MaximumEbsCards?: number | undefined;
  EbsCards?: EbsCardInfo[] | undefined;
}
export interface FpgaDeviceMemoryInfo {
  SizeInMiB?: number | undefined;
}
export interface FpgaDeviceInfo {
  Name?: string | undefined;
  Manufacturer?: string | undefined;
  Count?: number | undefined;
  MemoryInfo?: FpgaDeviceMemoryInfo | undefined;
}
export interface FpgaInfo {
  Fpgas?: FpgaDeviceInfo[] | undefined;
  TotalFpgaMemoryInMiB?: number | undefined;
}
export interface GpuDeviceMemoryInfo {
  SizeInMiB?: number | undefined;
}
export interface GpuDeviceInfo {
  Name?: string | undefined;
  Manufacturer?: string | undefined;
  Count?: number | undefined;
  LogicalGpuCount?: number | undefined;
  GpuPartitionSize?: number | undefined;
  Workloads?: string[] | undefined;
  MemoryInfo?: GpuDeviceMemoryInfo | undefined;
}
export interface GpuInfo {
  Gpus?: GpuDeviceInfo[] | undefined;
  TotalGpuMemoryInMiB?: number | undefined;
}
export interface InferenceDeviceMemoryInfo {
  SizeInMiB?: number | undefined;
}
export interface InferenceDeviceInfo {
  Count?: number | undefined;
  Name?: string | undefined;
  Manufacturer?: string | undefined;
  MemoryInfo?: InferenceDeviceMemoryInfo | undefined;
}
export interface InferenceAcceleratorInfo {
  Accelerators?: InferenceDeviceInfo[] | undefined;
  TotalInferenceMemoryInMiB?: number | undefined;
}
export interface DiskInfo {
  SizeInGB?: number | undefined;
  Count?: number | undefined;
  Type?: DiskType | undefined;
}
export interface InstanceStorageInfo {
  TotalSizeInGB?: number | undefined;
  Disks?: DiskInfo[] | undefined;
  NvmeSupport?: EphemeralNvmeSupport | undefined;
  EncryptionSupport?: InstanceStorageEncryptionSupport | undefined;
}
export interface MediaDeviceMemoryInfo {
  SizeInMiB?: number | undefined;
}
export interface MediaDeviceInfo {
  Count?: number | undefined;
  Name?: string | undefined;
  Manufacturer?: string | undefined;
  MemoryInfo?: MediaDeviceMemoryInfo | undefined;
}
export interface MediaAcceleratorInfo {
  Accelerators?: MediaDeviceInfo[] | undefined;
  TotalMediaMemoryInMiB?: number | undefined;
}
export interface MemoryInfo {
  SizeInMiB?: number | undefined;
}
export interface EfaInfo {
  MaximumEfaInterfaces?: number | undefined;
}
export interface NetworkCardInfo {
  NetworkCardIndex?: number | undefined;
  NetworkPerformance?: string | undefined;
  MaximumNetworkInterfaces?: number | undefined;
  BaselineBandwidthInGbps?: number | undefined;
  PeakBandwidthInGbps?: number | undefined;
  DefaultEnaQueueCountPerInterface?: number | undefined;
  MaximumEnaQueueCount?: number | undefined;
  MaximumEnaQueueCountPerInterface?: number | undefined;
}
export interface NetworkInfo {
  NetworkPerformance?: string | undefined;
  MaximumNetworkInterfaces?: number | undefined;
  MaximumNetworkCards?: number | undefined;
  DefaultNetworkCardIndex?: number | undefined;
  NetworkCards?: NetworkCardInfo[] | undefined;
  Ipv4AddressesPerInterface?: number | undefined;
  Ipv6AddressesPerInterface?: number | undefined;
  Ipv6Supported?: boolean | undefined;
  EnaSupport?: EnaSupport | undefined;
  EfaSupported?: boolean | undefined;
  EfaInfo?: EfaInfo | undefined;
  EncryptionInTransitSupported?: boolean | undefined;
  EnaSrdSupported?: boolean | undefined;
  BandwidthWeightings?: BandwidthWeightingType[] | undefined;
  FlexibleEnaQueuesSupport?: FlexibleEnaQueuesSupport | undefined;
}
export interface NeuronDeviceCoreInfo {
  Count?: number | undefined;
  Version?: number | undefined;
}
export interface NeuronDeviceMemoryInfo {
  SizeInMiB?: number | undefined;
}
export interface NeuronDeviceInfo {
  Count?: number | undefined;
  Name?: string | undefined;
  CoreInfo?: NeuronDeviceCoreInfo | undefined;
  MemoryInfo?: NeuronDeviceMemoryInfo | undefined;
}
export interface NeuronInfo {
  NeuronDevices?: NeuronDeviceInfo[] | undefined;
  TotalNeuronDeviceMemoryInMiB?: number | undefined;
}
export interface NitroTpmInfo {
  SupportedVersions?: string[] | undefined;
}
export interface PlacementGroupInfo {
  SupportedStrategies?: PlacementGroupStrategy[] | undefined;
}
export interface ProcessorInfo {
  SupportedArchitectures?: ArchitectureType[] | undefined;
  SustainedClockSpeedInGhz?: number | undefined;
  SupportedFeatures?: SupportedAdditionalProcessorFeature[] | undefined;
  Manufacturer?: string | undefined;
}
export interface VCpuInfo {
  DefaultVCpus?: number | undefined;
  DefaultCores?: number | undefined;
  DefaultThreadsPerCore?: number | undefined;
  ValidCores?: number[] | undefined;
  ValidThreadsPerCore?: number[] | undefined;
}
export interface InstanceTypeInfo {
  InstanceType?: _InstanceType | undefined;
  CurrentGeneration?: boolean | undefined;
  FreeTierEligible?: boolean | undefined;
  SupportedUsageClasses?: UsageClassType[] | undefined;
  SupportedRootDeviceTypes?: RootDeviceType[] | undefined;
  SupportedVirtualizationTypes?: VirtualizationType[] | undefined;
  BareMetal?: boolean | undefined;
  Hypervisor?: InstanceTypeHypervisor | undefined;
  ProcessorInfo?: ProcessorInfo | undefined;
  VCpuInfo?: VCpuInfo | undefined;
  MemoryInfo?: MemoryInfo | undefined;
  InstanceStorageSupported?: boolean | undefined;
  InstanceStorageInfo?: InstanceStorageInfo | undefined;
  EbsInfo?: EbsInfo | undefined;
  NetworkInfo?: NetworkInfo | undefined;
  GpuInfo?: GpuInfo | undefined;
  FpgaInfo?: FpgaInfo | undefined;
  PlacementGroupInfo?: PlacementGroupInfo | undefined;
  InferenceAcceleratorInfo?: InferenceAcceleratorInfo | undefined;
  HibernationSupported?: boolean | undefined;
  BurstablePerformanceSupported?: boolean | undefined;
  DedicatedHostsSupported?: boolean | undefined;
  AutoRecoverySupported?: boolean | undefined;
  SupportedBootModes?: BootModeType[] | undefined;
  NitroEnclavesSupport?: NitroEnclavesSupport | undefined;
  NitroTpmSupport?: NitroTpmSupport | undefined;
  NitroTpmInfo?: NitroTpmInfo | undefined;
  MediaAcceleratorInfo?: MediaAcceleratorInfo | undefined;
  NeuronInfo?: NeuronInfo | undefined;
  PhcSupport?: PhcSupport | undefined;
  RebootMigrationSupport?: RebootMigrationSupport | undefined;
}
export interface DescribeInstanceTypesResult {
  InstanceTypes?: InstanceTypeInfo[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeInternetGatewaysRequest {
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  InternetGatewayIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeInternetGatewaysResult {
  InternetGateways?: InternetGateway[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeIpamByoasnRequest {
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeIpamByoasnResult {
  Byoasns?: Byoasn[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeIpamExternalResourceVerificationTokensRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  IpamExternalResourceVerificationTokenIds?: string[] | undefined;
}
export interface DescribeIpamExternalResourceVerificationTokensResult {
  NextToken?: string | undefined;
  IpamExternalResourceVerificationTokens?:
    | IpamExternalResourceVerificationToken[]
    | undefined;
}
export interface DescribeIpamPoliciesRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  IpamPolicyIds?: string[] | undefined;
}
export interface DescribeIpamPoliciesResult {
  NextToken?: string | undefined;
  IpamPolicies?: IpamPolicy[] | undefined;
}
export interface DescribeIpamPoolsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  IpamPoolIds?: string[] | undefined;
}
export interface DescribeIpamPoolsResult {
  NextToken?: string | undefined;
  IpamPools?: IpamPool[] | undefined;
}
export interface DescribeIpamPrefixListResolversRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  IpamPrefixListResolverIds?: string[] | undefined;
}
export interface DescribeIpamPrefixListResolversResult {
  NextToken?: string | undefined;
  IpamPrefixListResolvers?: IpamPrefixListResolver[] | undefined;
}
export interface DescribeIpamPrefixListResolverTargetsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  IpamPrefixListResolverTargetIds?: string[] | undefined;
  IpamPrefixListResolverId?: string | undefined;
}
export interface DescribeIpamPrefixListResolverTargetsResult {
  NextToken?: string | undefined;
  IpamPrefixListResolverTargets?: IpamPrefixListResolverTarget[] | undefined;
}
export interface DescribeIpamResourceDiscoveriesRequest {
  DryRun?: boolean | undefined;
  IpamResourceDiscoveryIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeIpamResourceDiscoveriesResult {
  IpamResourceDiscoveries?: IpamResourceDiscovery[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeIpamResourceDiscoveryAssociationsRequest {
  DryRun?: boolean | undefined;
  IpamResourceDiscoveryAssociationIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeIpamResourceDiscoveryAssociationsResult {
  IpamResourceDiscoveryAssociations?:
    | IpamResourceDiscoveryAssociation[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeIpamsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  IpamIds?: string[] | undefined;
}
export interface DescribeIpamsResult {
  NextToken?: string | undefined;
  Ipams?: Ipam[] | undefined;
}
export interface DescribeIpamScopesRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  IpamScopeIds?: string[] | undefined;
}
export interface DescribeIpamScopesResult {
  NextToken?: string | undefined;
  IpamScopes?: IpamScope[] | undefined;
}
export interface DescribeIpv6PoolsRequest {
  PoolIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface PoolCidrBlock {
  Cidr?: string | undefined;
}
export interface Ipv6Pool {
  PoolId?: string | undefined;
  Description?: string | undefined;
  PoolCidrBlocks?: PoolCidrBlock[] | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeIpv6PoolsResult {
  Ipv6Pools?: Ipv6Pool[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeKeyPairsRequest {
  KeyNames?: string[] | undefined;
  KeyPairIds?: string[] | undefined;
  IncludePublicKey?: boolean | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface KeyPairInfo {
  KeyPairId?: string | undefined;
  KeyType?: KeyType | undefined;
  Tags?: Tag[] | undefined;
  PublicKey?: string | undefined;
  CreateTime?: Date | undefined;
  KeyName?: string | undefined;
  KeyFingerprint?: string | undefined;
}
export interface DescribeKeyPairsResult {
  KeyPairs?: KeyPairInfo[] | undefined;
}
export interface DescribeLaunchTemplatesRequest {
  DryRun?: boolean | undefined;
  LaunchTemplateIds?: string[] | undefined;
  LaunchTemplateNames?: string[] | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface DescribeLaunchTemplatesResult {
  LaunchTemplates?: LaunchTemplate[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeLaunchTemplateVersionsRequest {
  DryRun?: boolean | undefined;
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  Versions?: string[] | undefined;
  MinVersion?: string | undefined;
  MaxVersion?: string | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  ResolveAlias?: boolean | undefined;
}
export interface DescribeLaunchTemplateVersionsResult {
  LaunchTemplateVersions?: LaunchTemplateVersion[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeLocalGatewayRouteTablesRequest {
  LocalGatewayRouteTableIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeLocalGatewayRouteTablesResult {
  LocalGatewayRouteTables?: LocalGatewayRouteTable[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociationIds?:
    | string[]
    | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResult {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociations?:
    | LocalGatewayRouteTableVirtualInterfaceGroupAssociation[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeLocalGatewayRouteTableVpcAssociationsRequest {
  LocalGatewayRouteTableVpcAssociationIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeLocalGatewayRouteTableVpcAssociationsResult {
  LocalGatewayRouteTableVpcAssociations?:
    | LocalGatewayRouteTableVpcAssociation[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeLocalGatewaysRequest {
  LocalGatewayIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface LocalGateway {
  LocalGatewayId?: string | undefined;
  OutpostArn?: string | undefined;
  OwnerId?: string | undefined;
  State?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeLocalGatewaysResult {
  LocalGateways?: LocalGateway[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeLocalGatewayVirtualInterfaceGroupsRequest {
  LocalGatewayVirtualInterfaceGroupIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeLocalGatewayVirtualInterfaceGroupsResult {
  LocalGatewayVirtualInterfaceGroups?:
    | LocalGatewayVirtualInterfaceGroup[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeLocalGatewayVirtualInterfacesRequest {
  LocalGatewayVirtualInterfaceIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeLocalGatewayVirtualInterfacesResult {
  LocalGatewayVirtualInterfaces?: LocalGatewayVirtualInterface[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeLockedSnapshotsRequest {
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  SnapshotIds?: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface LockedSnapshotsInfo {
  OwnerId?: string | undefined;
  SnapshotId?: string | undefined;
  LockState?: LockState | undefined;
  LockDuration?: number | undefined;
  CoolOffPeriod?: number | undefined;
  CoolOffPeriodExpiresOn?: Date | undefined;
  LockCreatedOn?: Date | undefined;
  LockDurationStartTime?: Date | undefined;
  LockExpiresOn?: Date | undefined;
}
export interface DescribeLockedSnapshotsResult {
  Snapshots?: LockedSnapshotsInfo[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeMacHostsRequest {
  Filters?: Filter[] | undefined;
  HostIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface MacHost {
  HostId?: string | undefined;
  MacOSLatestSupportedVersions?: string[] | undefined;
}
export interface DescribeMacHostsResult {
  MacHosts?: MacHost[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeMacModificationTasksRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MacModificationTaskIds?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface DescribeMacModificationTasksResult {
  MacModificationTasks?: MacModificationTask[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeManagedPrefixListsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  PrefixListIds?: string[] | undefined;
}
export interface DescribeManagedPrefixListsResult {
  NextToken?: string | undefined;
  PrefixLists?: ManagedPrefixList[] | undefined;
}
export interface DescribeMovingAddressesRequest {
  DryRun?: boolean | undefined;
  PublicIps?: string[] | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
}
export interface MovingAddressStatus {
  MoveStatus?: MoveStatus | undefined;
  PublicIp?: string | undefined;
}
export interface DescribeMovingAddressesResult {
  MovingAddressStatuses?: MovingAddressStatus[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNatGatewaysRequest {
  DryRun?: boolean | undefined;
  Filter?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NatGatewayIds?: string[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNatGatewaysResult {
  NatGateways?: NatGateway[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkAclsRequest {
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  NetworkAclIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeNetworkAclsResult {
  NetworkAcls?: NetworkAcl[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkInsightsAccessScopeAnalysesRequest {
  NetworkInsightsAccessScopeAnalysisIds?: string[] | undefined;
  NetworkInsightsAccessScopeId?: string | undefined;
  AnalysisStartTimeBegin?: Date | undefined;
  AnalysisStartTimeEnd?: Date | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
}
export interface NetworkInsightsAccessScopeAnalysis {
  NetworkInsightsAccessScopeAnalysisId?: string | undefined;
  NetworkInsightsAccessScopeAnalysisArn?: string | undefined;
  NetworkInsightsAccessScopeId?: string | undefined;
  Status?: AnalysisStatus | undefined;
  StatusMessage?: string | undefined;
  WarningMessage?: string | undefined;
  StartDate?: Date | undefined;
  EndDate?: Date | undefined;
  FindingsFound?: FindingsFound | undefined;
  AnalyzedEniCount?: number | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeNetworkInsightsAccessScopeAnalysesResult {
  NetworkInsightsAccessScopeAnalyses?:
    | NetworkInsightsAccessScopeAnalysis[]
    | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkInsightsAccessScopesRequest {
  NetworkInsightsAccessScopeIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkInsightsAccessScopesResult {
  NetworkInsightsAccessScopes?: NetworkInsightsAccessScope[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkInsightsAnalysesRequest {
  NetworkInsightsAnalysisIds?: string[] | undefined;
  NetworkInsightsPathId?: string | undefined;
  AnalysisStartTime?: Date | undefined;
  AnalysisEndTime?: Date | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
}
export interface NetworkInsightsAnalysis {
  NetworkInsightsAnalysisId?: string | undefined;
  NetworkInsightsAnalysisArn?: string | undefined;
  NetworkInsightsPathId?: string | undefined;
  AdditionalAccounts?: string[] | undefined;
  FilterInArns?: string[] | undefined;
  FilterOutArns?: string[] | undefined;
  StartDate?: Date | undefined;
  Status?: AnalysisStatus | undefined;
  StatusMessage?: string | undefined;
  WarningMessage?: string | undefined;
  NetworkPathFound?: boolean | undefined;
  ForwardPathComponents?: PathComponent[] | undefined;
  ReturnPathComponents?: PathComponent[] | undefined;
  Explanations?: Explanation[] | undefined;
  AlternatePathHints?: AlternatePathHint[] | undefined;
  SuggestedAccounts?: string[] | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeNetworkInsightsAnalysesResult {
  NetworkInsightsAnalyses?: NetworkInsightsAnalysis[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkInsightsPathsRequest {
  NetworkInsightsPathIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkInsightsPathsResult {
  NetworkInsightsPaths?: NetworkInsightsPath[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkInterfaceAttributeRequest {
  DryRun?: boolean | undefined;
  NetworkInterfaceId: string | undefined;
  Attribute?: NetworkInterfaceAttribute | undefined;
}
export interface DescribeNetworkInterfaceAttributeResult {
  Attachment?: NetworkInterfaceAttachment | undefined;
  Description?: AttributeValue | undefined;
  Groups?: GroupIdentifier[] | undefined;
  NetworkInterfaceId?: string | undefined;
  SourceDestCheck?: AttributeBooleanValue | undefined;
  AssociatePublicIpAddress?: boolean | undefined;
}
export interface DescribeNetworkInterfacePermissionsRequest {
  NetworkInterfacePermissionIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface DescribeNetworkInterfacePermissionsResult {
  NetworkInterfacePermissions?: NetworkInterfacePermission[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeNetworkInterfacesRequest {
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  NetworkInterfaceIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeNetworkInterfacesResult {
  NetworkInterfaces?: NetworkInterface[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeOutpostLagsRequest {
  OutpostLagIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface OutpostLag {
  OutpostArn?: string | undefined;
  OwnerId?: string | undefined;
  State?: string | undefined;
  OutpostLagId?: string | undefined;
  LocalGatewayVirtualInterfaceIds?: string[] | undefined;
  ServiceLinkVirtualInterfaceIds?: string[] | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribeOutpostLagsResult {
  OutpostLags?: OutpostLag[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribePlacementGroupsRequest {
  GroupIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  GroupNames?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribePlacementGroupsResult {
  PlacementGroups?: PlacementGroup[] | undefined;
}
export interface DescribePrefixListsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  PrefixListIds?: string[] | undefined;
}
export interface PrefixList {
  Cidrs?: string[] | undefined;
  PrefixListId?: string | undefined;
  PrefixListName?: string | undefined;
}
export interface DescribePrefixListsResult {
  NextToken?: string | undefined;
  PrefixLists?: PrefixList[] | undefined;
}
export interface DescribePrincipalIdFormatRequest {
  DryRun?: boolean | undefined;
  Resources?: string[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface PrincipalIdFormat {
  Arn?: string | undefined;
  Statuses?: IdFormat[] | undefined;
}
export interface DescribePrincipalIdFormatResult {
  Principals?: PrincipalIdFormat[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribePublicIpv4PoolsRequest {
  PoolIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
}
export interface PublicIpv4PoolRange {
  FirstAddress?: string | undefined;
  LastAddress?: string | undefined;
  AddressCount?: number | undefined;
  AvailableAddressCount?: number | undefined;
}
export interface PublicIpv4Pool {
  PoolId?: string | undefined;
  Description?: string | undefined;
  PoolAddressRanges?: PublicIpv4PoolRange[] | undefined;
  TotalAddressCount?: number | undefined;
  TotalAvailableAddressCount?: number | undefined;
  NetworkBorderGroup?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface DescribePublicIpv4PoolsResult {
  PublicIpv4Pools?: PublicIpv4Pool[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeRegionsRequest {
  RegionNames?: string[] | undefined;
  AllRegions?: boolean | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface Region {
  OptInStatus?: string | undefined;
  RegionName?: string | undefined;
  Endpoint?: string | undefined;
}
export interface DescribeRegionsResult {
  Regions?: Region[] | undefined;
}
export interface DescribeReplaceRootVolumeTasksRequest {
  ReplaceRootVolumeTaskIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeReplaceRootVolumeTasksResult {
  ReplaceRootVolumeTasks?: ReplaceRootVolumeTask[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeReservedInstancesRequest {
  OfferingClass?: OfferingClassType | undefined;
  ReservedInstancesIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  OfferingType?: OfferingTypeValues | undefined;
}
export interface RecurringCharge {
  Amount?: number | undefined;
  Frequency?: RecurringChargeFrequency | undefined;
}
export interface ReservedInstances {
  CurrencyCode?: CurrencyCodeValues | undefined;
  InstanceTenancy?: Tenancy | undefined;
  OfferingClass?: OfferingClassType | undefined;
  OfferingType?: OfferingTypeValues | undefined;
  RecurringCharges?: RecurringCharge[] | undefined;
  Scope?: Scope | undefined;
  Tags?: Tag[] | undefined;
  AvailabilityZoneId?: string | undefined;
  ReservedInstancesId?: string | undefined;
  InstanceType?: _InstanceType | undefined;
  AvailabilityZone?: string | undefined;
  Start?: Date | undefined;
  End?: Date | undefined;
  Duration?: number | undefined;
  UsagePrice?: number | undefined;
  FixedPrice?: number | undefined;
  InstanceCount?: number | undefined;
  ProductDescription?: RIProductDescription | undefined;
  State?: ReservedInstanceState | undefined;
}
export interface DescribeReservedInstancesResult {
  ReservedInstances?: ReservedInstances[] | undefined;
}
export interface DescribeReservedInstancesListingsRequest {
  ReservedInstancesId?: string | undefined;
  ReservedInstancesListingId?: string | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeReservedInstancesListingsResult {
  ReservedInstancesListings?: ReservedInstancesListing[] | undefined;
}
export interface DescribeReservedInstancesModificationsRequest {
  ReservedInstancesModificationIds?: string[] | undefined;
  NextToken?: string | undefined;
  Filters?: Filter[] | undefined;
}
export interface ReservedInstancesConfiguration {
  AvailabilityZone?: string | undefined;
  InstanceCount?: number | undefined;
  InstanceType?: _InstanceType | undefined;
  Platform?: string | undefined;
  Scope?: Scope | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface ReservedInstancesModificationResult {
  ReservedInstancesId?: string | undefined;
  TargetConfiguration?: ReservedInstancesConfiguration | undefined;
}
export interface ReservedInstancesId {
  ReservedInstancesId?: string | undefined;
}
export interface ReservedInstancesModification {
  ClientToken?: string | undefined;
  CreateDate?: Date | undefined;
  EffectiveDate?: Date | undefined;
  ModificationResults?: ReservedInstancesModificationResult[] | undefined;
  ReservedInstancesIds?: ReservedInstancesId[] | undefined;
  ReservedInstancesModificationId?: string | undefined;
  Status?: string | undefined;
  StatusMessage?: string | undefined;
  UpdateDate?: Date | undefined;
}
export interface DescribeReservedInstancesModificationsResult {
  NextToken?: string | undefined;
  ReservedInstancesModifications?: ReservedInstancesModification[] | undefined;
}
export interface DescribeReservedInstancesOfferingsRequest {
  AvailabilityZone?: string | undefined;
  IncludeMarketplace?: boolean | undefined;
  InstanceType?: _InstanceType | undefined;
  MaxDuration?: number | undefined;
  MaxInstanceCount?: number | undefined;
  MinDuration?: number | undefined;
  OfferingClass?: OfferingClassType | undefined;
  ProductDescription?: RIProductDescription | undefined;
  ReservedInstancesOfferingIds?: string[] | undefined;
  AvailabilityZoneId?: string | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  InstanceTenancy?: Tenancy | undefined;
  OfferingType?: OfferingTypeValues | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface PricingDetail {
  Count?: number | undefined;
  Price?: number | undefined;
}
export interface ReservedInstancesOffering {
  CurrencyCode?: CurrencyCodeValues | undefined;
  InstanceTenancy?: Tenancy | undefined;
  Marketplace?: boolean | undefined;
  OfferingClass?: OfferingClassType | undefined;
  OfferingType?: OfferingTypeValues | undefined;
  PricingDetails?: PricingDetail[] | undefined;
  RecurringCharges?: RecurringCharge[] | undefined;
  Scope?: Scope | undefined;
  AvailabilityZoneId?: string | undefined;
  ReservedInstancesOfferingId?: string | undefined;
  InstanceType?: _InstanceType | undefined;
  AvailabilityZone?: string | undefined;
  Duration?: number | undefined;
  UsagePrice?: number | undefined;
  FixedPrice?: number | undefined;
  ProductDescription?: RIProductDescription | undefined;
}
export interface DescribeReservedInstancesOfferingsResult {
  NextToken?: string | undefined;
  ReservedInstancesOfferings?: ReservedInstancesOffering[] | undefined;
}
export interface DescribeRouteServerEndpointsRequest {
  RouteServerEndpointIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeRouteServerEndpointsResult {
  RouteServerEndpoints?: RouteServerEndpoint[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeRouteServerPeersRequest {
  RouteServerPeerIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeRouteServerPeersResult {
  RouteServerPeers?: RouteServerPeer[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeRouteServersRequest {
  RouteServerIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface DescribeRouteServersResult {
  RouteServers?: RouteServer[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeRouteTablesRequest {
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  RouteTableIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeRouteTablesResult {
  RouteTables?: RouteTable[] | undefined;
  NextToken?: string | undefined;
}
export interface SlotDateTimeRangeRequest {
  EarliestTime: Date | undefined;
  LatestTime: Date | undefined;
}
export interface ScheduledInstanceRecurrenceRequest {
  Frequency?: string | undefined;
  Interval?: number | undefined;
  OccurrenceDays?: number[] | undefined;
  OccurrenceRelativeToEnd?: boolean | undefined;
  OccurrenceUnit?: string | undefined;
}
export interface DescribeScheduledInstanceAvailabilityRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  FirstSlotStartTimeRange: SlotDateTimeRangeRequest | undefined;
  MaxResults?: number | undefined;
  MaxSlotDurationInHours?: number | undefined;
  MinSlotDurationInHours?: number | undefined;
  NextToken?: string | undefined;
  Recurrence: ScheduledInstanceRecurrenceRequest | undefined;
}
export interface ScheduledInstanceRecurrence {
  Frequency?: string | undefined;
  Interval?: number | undefined;
  OccurrenceDaySet?: number[] | undefined;
  OccurrenceRelativeToEnd?: boolean | undefined;
  OccurrenceUnit?: string | undefined;
}
export interface ScheduledInstanceAvailability {
  AvailabilityZone?: string | undefined;
  AvailableInstanceCount?: number | undefined;
  FirstSlotStartTime?: Date | undefined;
  HourlyPrice?: string | undefined;
  InstanceType?: string | undefined;
  MaxTermDurationInDays?: number | undefined;
  MinTermDurationInDays?: number | undefined;
  NetworkPlatform?: string | undefined;
  Platform?: string | undefined;
  PurchaseToken?: string | undefined;
  Recurrence?: ScheduledInstanceRecurrence | undefined;
  SlotDurationInHours?: number | undefined;
  TotalScheduledInstanceHours?: number | undefined;
}
export interface DescribeScheduledInstanceAvailabilityResult {
  NextToken?: string | undefined;
  ScheduledInstanceAvailabilitySet?:
    | ScheduledInstanceAvailability[]
    | undefined;
}
export interface SlotStartTimeRangeRequest {
  EarliestTime?: Date | undefined;
  LatestTime?: Date | undefined;
}
export interface DescribeScheduledInstancesRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  ScheduledInstanceIds?: string[] | undefined;
  SlotStartTimeRange?: SlotStartTimeRangeRequest | undefined;
}
export interface ScheduledInstance {
  AvailabilityZone?: string | undefined;
  CreateDate?: Date | undefined;
  HourlyPrice?: string | undefined;
  InstanceCount?: number | undefined;
  InstanceType?: string | undefined;
  NetworkPlatform?: string | undefined;
  NextSlotStartTime?: Date | undefined;
  Platform?: string | undefined;
  PreviousSlotEndTime?: Date | undefined;
  Recurrence?: ScheduledInstanceRecurrence | undefined;
  ScheduledInstanceId?: string | undefined;
  SlotDurationInHours?: number | undefined;
  TermEndDate?: Date | undefined;
  TermStartDate?: Date | undefined;
  TotalScheduledInstanceHours?: number | undefined;
}
export interface DescribeScheduledInstancesResult {
  NextToken?: string | undefined;
  ScheduledInstanceSet?: ScheduledInstance[] | undefined;
}
export interface DescribeSecurityGroupReferencesRequest {
  DryRun?: boolean | undefined;
  GroupId: string[] | undefined;
}
export interface SecurityGroupReference {
  GroupId?: string | undefined;
  ReferencingVpcId?: string | undefined;
  VpcPeeringConnectionId?: string | undefined;
  TransitGatewayId?: string | undefined;
}
export interface DescribeSecurityGroupReferencesResult {
  SecurityGroupReferenceSet?: SecurityGroupReference[] | undefined;
}
export interface DescribeSecurityGroupRulesRequest {
  Filters?: Filter[] | undefined;
  SecurityGroupRuleIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface DescribeSecurityGroupRulesResult {
  SecurityGroupRules?: SecurityGroupRule[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeSecurityGroupsRequest {
  GroupIds?: string[] | undefined;
  GroupNames?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface SecurityGroup {
  GroupId?: string | undefined;
  IpPermissionsEgress?: IpPermission[] | undefined;
  Tags?: Tag[] | undefined;
  VpcId?: string | undefined;
  SecurityGroupArn?: string | undefined;
  OwnerId?: string | undefined;
  GroupName?: string | undefined;
  Description?: string | undefined;
  IpPermissions?: IpPermission[] | undefined;
}
export interface DescribeSecurityGroupsResult {
  NextToken?: string | undefined;
  SecurityGroups?: SecurityGroup[] | undefined;
}
export interface DescribeSecurityGroupVpcAssociationsRequest {
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface SecurityGroupVpcAssociation {
  GroupId?: string | undefined;
  VpcId?: string | undefined;
  VpcOwnerId?: string | undefined;
  State?: SecurityGroupVpcAssociationState | undefined;
  StateReason?: string | undefined;
  GroupOwnerId?: string | undefined;
}
export interface DescribeSecurityGroupVpcAssociationsResult {
  SecurityGroupVpcAssociations?: SecurityGroupVpcAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeServiceLinkVirtualInterfacesRequest {
  ServiceLinkVirtualInterfaceIds?: string[] | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ServiceLinkVirtualInterface {
  ServiceLinkVirtualInterfaceId?: string | undefined;
  ServiceLinkVirtualInterfaceArn?: string | undefined;
  OutpostId?: string | undefined;
  OutpostArn?: string | undefined;
  OwnerId?: string | undefined;
  LocalAddress?: string | undefined;
  PeerAddress?: string | undefined;
  PeerBgpAsn?: number | undefined;
  Vlan?: number | undefined;
  OutpostLagId?: string | undefined;
  Tags?: Tag[] | undefined;
  ConfigurationState?:
    | ServiceLinkVirtualInterfaceConfigurationState
    | undefined;
}
export interface DescribeServiceLinkVirtualInterfacesResult {
  ServiceLinkVirtualInterfaces?: ServiceLinkVirtualInterface[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeSnapshotAttributeRequest {
  Attribute: SnapshotAttributeName | undefined;
  SnapshotId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface CreateVolumePermission {
  UserId?: string | undefined;
  Group?: PermissionGroup | undefined;
}
export interface DescribeSnapshotAttributeResult {
  ProductCodes?: ProductCode[] | undefined;
  SnapshotId?: string | undefined;
  CreateVolumePermissions?: CreateVolumePermission[] | undefined;
}
export interface DescribeSnapshotsRequest {
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  OwnerIds?: string[] | undefined;
  RestorableByUserIds?: string[] | undefined;
  SnapshotIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface DescribeSnapshotsResult {
  NextToken?: string | undefined;
  Snapshots?: Snapshot[] | undefined;
}
export interface DescribeSnapshotTierStatusRequest {
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface SnapshotTierStatus {
  SnapshotId?: string | undefined;
  VolumeId?: string | undefined;
  Status?: SnapshotState | undefined;
  OwnerId?: string | undefined;
  Tags?: Tag[] | undefined;
  StorageTier?: StorageTier | undefined;
  LastTieringStartTime?: Date | undefined;
  LastTieringProgress?: number | undefined;
  LastTieringOperationStatus?: TieringOperationStatus | undefined;
  LastTieringOperationStatusDetail?: string | undefined;
  ArchivalCompleteTime?: Date | undefined;
  RestoreExpiryTime?: Date | undefined;
}
export interface DescribeSnapshotTierStatusResult {
  SnapshotTierStatuses?: SnapshotTierStatus[] | undefined;
  NextToken?: string | undefined;
}
export interface DescribeSpotDatafeedSubscriptionRequest {
  DryRun?: boolean | undefined;
}
export interface DescribeSpotDatafeedSubscriptionResult {
  SpotDatafeedSubscription?: SpotDatafeedSubscription | undefined;
}
export interface DescribeSpotFleetInstancesRequest {
  DryRun?: boolean | undefined;
  SpotFleetRequestId: string | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface DescribeSpotFleetInstancesResponse {
  ActiveInstances?: ActiveInstance[] | undefined;
  NextToken?: string | undefined;
  SpotFleetRequestId?: string | undefined;
}
export interface DescribeSpotFleetRequestHistoryRequest {
  DryRun?: boolean | undefined;
  SpotFleetRequestId: string | undefined;
  EventType?: EventType | undefined;
  StartTime: Date | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface HistoryRecord {
  EventInformation?: EventInformation | undefined;
  EventType?: EventType | undefined;
  Timestamp?: Date | undefined;
}
export interface DescribeSpotFleetRequestHistoryResponse {
  HistoryRecords?: HistoryRecord[] | undefined;
  LastEvaluatedTime?: Date | undefined;
  NextToken?: string | undefined;
  SpotFleetRequestId?: string | undefined;
  StartTime?: Date | undefined;
}
export interface DescribeSpotFleetRequestsRequest {
  DryRun?: boolean | undefined;
  SpotFleetRequestIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface SpotFleetMonitoring {
  Enabled?: boolean | undefined;
}
export interface InstanceNetworkInterfaceSpecification {
  AssociatePublicIpAddress?: boolean | undefined;
  DeleteOnTermination?: boolean | undefined;
  Description?: string | undefined;
  DeviceIndex?: number | undefined;
  Groups?: string[] | undefined;
  Ipv6AddressCount?: number | undefined;
  Ipv6Addresses?: InstanceIpv6Address[] | undefined;
  NetworkInterfaceId?: string | undefined;
  PrivateIpAddress?: string | undefined;
  PrivateIpAddresses?: PrivateIpAddressSpecification[] | undefined;
  SecondaryPrivateIpAddressCount?: number | undefined;
  SubnetId?: string | undefined;
  AssociateCarrierIpAddress?: boolean | undefined;
  InterfaceType?: string | undefined;
  NetworkCardIndex?: number | undefined;
  Ipv4Prefixes?: Ipv4PrefixSpecificationRequest[] | undefined;
  Ipv4PrefixCount?: number | undefined;
  Ipv6Prefixes?: Ipv6PrefixSpecificationRequest[] | undefined;
  Ipv6PrefixCount?: number | undefined;
  PrimaryIpv6?: boolean | undefined;
  EnaSrdSpecification?: EnaSrdSpecificationRequest | undefined;
  ConnectionTrackingSpecification?:
    | ConnectionTrackingSpecificationRequest
    | undefined;
  EnaQueueCount?: number | undefined;
}
export interface SpotPlacement {
  AvailabilityZone?: string | undefined;
  GroupName?: string | undefined;
  Tenancy?: Tenancy | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface SpotFleetTagSpecification {
  ResourceType?: ResourceType | undefined;
  Tags?: Tag[] | undefined;
}
export interface SpotFleetLaunchSpecification {
  AddressingType?: string | undefined;
  BlockDeviceMappings?: BlockDeviceMapping[] | undefined;
  EbsOptimized?: boolean | undefined;
  IamInstanceProfile?: IamInstanceProfileSpecification | undefined;
  ImageId?: string | undefined;
  InstanceType?: _InstanceType | undefined;
  KernelId?: string | undefined;
  KeyName?: string | undefined;
  Monitoring?: SpotFleetMonitoring | undefined;
  NetworkInterfaces?: InstanceNetworkInterfaceSpecification[] | undefined;
  Placement?: SpotPlacement | undefined;
  RamdiskId?: string | undefined;
  SpotPrice?: string | undefined;
  SubnetId?: string | undefined;
  UserData?: string | undefined;
  WeightedCapacity?: number | undefined;
  TagSpecifications?: SpotFleetTagSpecification[] | undefined;
  InstanceRequirements?: InstanceRequirements | undefined;
  SecurityGroups?: GroupIdentifier[] | undefined;
}
export interface LaunchTemplateOverrides {
  InstanceType?: _InstanceType | undefined;
  SpotPrice?: string | undefined;
  SubnetId?: string | undefined;
  AvailabilityZone?: string | undefined;
  WeightedCapacity?: number | undefined;
  Priority?: number | undefined;
  InstanceRequirements?: InstanceRequirements | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface LaunchTemplateConfig {
  LaunchTemplateSpecification?: FleetLaunchTemplateSpecification | undefined;
  Overrides?: LaunchTemplateOverrides[] | undefined;
}
export interface ClassicLoadBalancer {
  Name?: string | undefined;
}
export interface ClassicLoadBalancersConfig {
  ClassicLoadBalancers?: ClassicLoadBalancer[] | undefined;
}
export interface TargetGroup {
  Arn?: string | undefined;
}
export interface TargetGroupsConfig {
  TargetGroups?: TargetGroup[] | undefined;
}
export interface LoadBalancersConfig {
  ClassicLoadBalancersConfig?: ClassicLoadBalancersConfig | undefined;
  TargetGroupsConfig?: TargetGroupsConfig | undefined;
}
export interface SpotCapacityRebalance {
  ReplacementStrategy?: ReplacementStrategy | undefined;
  TerminationDelay?: number | undefined;
}
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;
}
