import {
  _InstanceType,
  AccountVpcEncryptionControlMode,
  Affinity,
  AnalysisStatus,
  ArchitectureType,
  ArchitectureValues,
  AutoPlacement,
  BootModeValues,
  CapacityManagerMonitoredTagKeyStatus,
  CapacityManagerStatus,
  CapacityReservationPreference,
  CapacityReservationState,
  CapacityTenancy,
  Comparison,
  CurrencyCodeValues,
  DefaultHttpTokensEnforcedState,
  DefaultInstanceMetadataEndpointState,
  DefaultInstanceMetadataTagsState,
  DiskImageFormat,
  EkPubKeyFormat,
  EkPubKeyType,
  EndDateType,
  FilterByDimension,
  FleetExcessCapacityTerminationPolicy,
  FpgaImageAttributeName,
  GroupBy,
  HostMaintenance,
  HostRecovery,
  HostTenancy,
  HttpTokensEnforcedState,
  HttpTokensState,
  IngestionStatus,
  InstanceAttributeName,
  InstanceAutoRecoveryState,
  InstanceBandwidthWeighting,
  InstanceMatchCriteria,
  InstanceMetadataEndpointState,
  InstanceMetadataProtocolState,
  InstanceMetadataTagsState,
  InstanceRebootMigrationState,
  IpAddressType,
  IpamAddressHistoryResourceType,
  IpamComplianceStatus,
  IpamDiscoveryFailureCode,
  IpamManagementState,
  IpamMeteredAccount,
  IpamNetworkInterfaceAttachmentStatus,
  IpamOverlapStatus,
  IpamPolicyManagedBy,
  IpamPolicyResourceType,
  IpamPrefixListResolverRuleConditionOperation,
  IpamPrefixListResolverRuleType,
  IpamPublicAddressAssociationStatus,
  IpamPublicAddressAwsService,
  IpamPublicAddressType,
  IpamResourceCidrIpSource,
  IpamResourceType,
  IpamTier,
  LockMode,
  LockState,
  ManagedBy,
  ManagedResourceDefaultVisibility,
  MetadataDefaultHttpTokensState,
  Metric,
  MetricType,
  ModifyAvailabilityZoneOptInStatus,
  NestedVirtualizationSpecification,
  OperationType,
  PartitionLoadFrequency,
  PaymentOption,
  PeriodType,
  PermissionGroup,
  PlatformValues,
  ReservationEndDateType,
  ReservationState,
  ReservationType,
  RouteServerRouteInstallationStatus,
  RouteServerRouteStatus,
  SelfServicePortal,
  ShutdownBehavior,
  SnapshotBlockPublicAccessState,
  SSEType,
  StatisticType,
  TargetCapacityUnitType,
  TransitGatewayAssociationState,
  TransitGatewayAttachmentResourceType,
  TransitGatewayPropagationState,
  UnlimitedSupportedInstanceFamily,
  UnsuccessfulInstanceCreditSpecificationErrorCode,
  VirtualizationType,
  VolumeState,
  VolumeType,
  VpcEncryptionControlExclusionStateInput,
} from "./enums";
import {
  AccessScopeAnalysisFinding,
  AccountVpcEncryptionControl,
  AddIpamOperatingRegion,
  AddressAttribute,
  ClientConnectOptions,
  ClientLoginBannerOptions,
  ClientRouteEnforcementOptions,
  ConnectionLogOptions,
  InstanceEventWindow,
  InterruptibleCapacityAllocation,
  InterruptionInfo,
  IpamPoolAllocation,
  OperatorResponse,
  RouteServerAssociation,
  SubnetAssociation,
  Tag,
  TagSpecification,
  TargetConfigurationRequest,
  TransitGatewayConfigurationInputStructure,
  TransitGatewayPolicyTableAssociation,
  UnsuccessfulItem,
} from "./models_0";
import {
  AttributeValue,
  CapacityReservationTarget,
  FleetLaunchTemplateConfigRequest,
  InstanceEventWindowTimeRangeRequest,
  InstanceRequirementsRequest,
  Ipam,
  IpamPool,
  IpamResourceTag,
  NetworkInsightsAccessScopeContent,
  Placement,
  RequestIpamResourceTag,
  ResponseLaunchTemplateData,
  TargetCapacitySpecificationRequest,
} from "./models_1";
import {
  SubnetCidrReservation,
  TransitGatewayMeteringPolicyEntry,
  TransitGatewayPrefixListReference,
} from "./models_2";
import {
  ConversionTask,
  Filter,
  FpgaImageAttribute,
  IpamPoolCidr,
  LaunchPermission,
} from "./models_3";
import {
  AttributeBooleanValue,
  ImportImageLicenseConfigurationResponse,
  InstanceMetadataOptionsResponse,
  InstanceStatusEvent,
  SnapshotDetail,
  SnapshotTaskDetail,
} from "./models_4";
import { RouteServerPropagation } from "./models_5";
export interface AssociatedRole {
  AssociatedRoleArn?: string | undefined;
  CertificateS3BucketName?: string | undefined;
  CertificateS3ObjectKey?: string | undefined;
  EncryptionKmsKeyId?: string | undefined;
}
export interface GetAssociatedEnclaveCertificateIamRolesResult {
  AssociatedRoles?: AssociatedRole[] | undefined;
}
export interface GetAssociatedIpv6PoolCidrsRequest {
  PoolId: string | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface Ipv6CidrAssociation {
  Ipv6Cidr?: string | undefined;
  AssociatedResource?: string | undefined;
}
export interface GetAssociatedIpv6PoolCidrsResult {
  Ipv6CidrAssociations?: Ipv6CidrAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface DataQuery {
  Id?: string | undefined;
  Source?: string | undefined;
  Destination?: string | undefined;
  Metric?: MetricType | undefined;
  Statistic?: StatisticType | undefined;
  Period?: PeriodType | undefined;
}
export interface GetAwsNetworkPerformanceDataRequest {
  DataQueries?: DataQuery[] | undefined;
  StartTime?: Date | undefined;
  EndTime?: Date | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface MetricPoint {
  StartDate?: Date | undefined;
  EndDate?: Date | undefined;
  Value?: number | undefined;
  Status?: string | undefined;
}
export interface DataResponse {
  Id?: string | undefined;
  Source?: string | undefined;
  Destination?: string | undefined;
  Metric?: MetricType | undefined;
  Statistic?: StatisticType | undefined;
  Period?: PeriodType | undefined;
  MetricPoints?: MetricPoint[] | undefined;
}
export interface GetAwsNetworkPerformanceDataResult {
  DataResponses?: DataResponse[] | undefined;
  NextToken?: string | undefined;
}
export interface GetCapacityManagerAttributesRequest {
  DryRun?: boolean | undefined;
}
export interface GetCapacityManagerAttributesResult {
  CapacityManagerStatus?: CapacityManagerStatus | undefined;
  OrganizationsAccess?: boolean | undefined;
  DataExportCount?: number | undefined;
  IngestionStatus?: IngestionStatus | undefined;
  IngestionStatusMessage?: string | undefined;
  EarliestDatapointTimestamp?: Date | undefined;
  LatestDatapointTimestamp?: Date | undefined;
}
export interface DimensionCondition {
  Dimension?: FilterByDimension | undefined;
  Comparison?: Comparison | undefined;
  Values?: string[] | undefined;
}
export interface CapacityManagerCondition {
  DimensionCondition?: DimensionCondition | undefined;
}
export interface GetCapacityManagerMetricDataRequest {
  MetricNames: Metric[] | undefined;
  StartTime: Date | undefined;
  EndTime: Date | undefined;
  Period: number | undefined;
  GroupBy?: GroupBy[] | undefined;
  FilterBy?: CapacityManagerCondition[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface CapacityManagerTagDimension {
  Key?: string | undefined;
  Value?: string | undefined;
}
export interface CapacityManagerDimension {
  ResourceRegion?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  AccountId?: string | undefined;
  AccountName?: string | undefined;
  InstanceFamily?: string | undefined;
  InstanceType?: string | undefined;
  InstancePlatform?: string | undefined;
  ReservationArn?: string | undefined;
  ReservationId?: string | undefined;
  ReservationType?: ReservationType | undefined;
  ReservationCreateTimestamp?: Date | undefined;
  ReservationStartTimestamp?: Date | undefined;
  ReservationEndTimestamp?: Date | undefined;
  ReservationEndDateType?: ReservationEndDateType | undefined;
  Tenancy?: CapacityTenancy | undefined;
  ReservationState?: ReservationState | undefined;
  ReservationInstanceMatchCriteria?: string | undefined;
  ReservationUnusedFinancialOwner?: string | undefined;
  Tags?: CapacityManagerTagDimension[] | undefined;
}
export interface MetricValue {
  Metric?: Metric | undefined;
  Value?: number | undefined;
}
export interface MetricDataResult {
  Dimension?: CapacityManagerDimension | undefined;
  Timestamp?: Date | undefined;
  MetricValues?: MetricValue[] | undefined;
}
export interface GetCapacityManagerMetricDataResult {
  MetricDataResults?: MetricDataResult[] | undefined;
  NextToken?: string | undefined;
}
export interface GetCapacityManagerMetricDimensionsRequest {
  GroupBy: GroupBy[] | undefined;
  FilterBy?: CapacityManagerCondition[] | undefined;
  StartTime: Date | undefined;
  EndTime: Date | undefined;
  MetricNames: Metric[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetCapacityManagerMetricDimensionsResult {
  MetricDimensionResults?: CapacityManagerDimension[] | undefined;
  NextToken?: string | undefined;
}
export interface GetCapacityManagerMonitoredTagKeysRequest {
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface CapacityManagerMonitoredTagKey {
  TagKey?: string | undefined;
  Status?: CapacityManagerMonitoredTagKeyStatus | undefined;
  StatusMessage?: string | undefined;
  CapacityManagerProvided?: boolean | undefined;
  EarliestDatapointTimestamp?: Date | undefined;
}
export interface GetCapacityManagerMonitoredTagKeysResult {
  CapacityManagerTagKeys?: CapacityManagerMonitoredTagKey[] | undefined;
  NextToken?: string | undefined;
}
export interface GetCapacityReservationUsageRequest {
  CapacityReservationId: string | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface InstanceUsage {
  AccountId?: string | undefined;
  UsedInstanceCount?: number | undefined;
}
export interface GetCapacityReservationUsageResult {
  NextToken?: string | undefined;
  CapacityReservationId?: string | undefined;
  InstanceType?: string | undefined;
  TotalInstanceCount?: number | undefined;
  AvailableInstanceCount?: number | undefined;
  State?: CapacityReservationState | undefined;
  InstanceUsages?: InstanceUsage[] | undefined;
  Interruptible?: boolean | undefined;
  InterruptibleCapacityAllocation?: InterruptibleCapacityAllocation | undefined;
  InterruptionInfo?: InterruptionInfo | undefined;
}
export interface GetCoipPoolUsageRequest {
  PoolId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface CoipAddressUsage {
  AllocationId?: string | undefined;
  AwsAccountId?: string | undefined;
  AwsService?: string | undefined;
  CoIp?: string | undefined;
}
export interface GetCoipPoolUsageResult {
  CoipPoolId?: string | undefined;
  CoipAddressUsages?: CoipAddressUsage[] | undefined;
  LocalGatewayRouteTableId?: string | undefined;
  NextToken?: string | undefined;
}
export interface GetConsoleOutputRequest {
  InstanceId: string | undefined;
  Latest?: boolean | undefined;
  DryRun?: boolean | undefined;
}
export interface GetConsoleOutputResult {
  InstanceId?: string | undefined;
  Timestamp?: Date | undefined;
  Output?: string | undefined;
}
export interface GetConsoleScreenshotRequest {
  DryRun?: boolean | undefined;
  InstanceId: string | undefined;
  WakeUp?: boolean | undefined;
}
export interface GetConsoleScreenshotResult {
  ImageData?: string | undefined;
  InstanceId?: string | undefined;
}
export interface GetDeclarativePoliciesReportSummaryRequest {
  DryRun?: boolean | undefined;
  ReportId: string | undefined;
}
export interface RegionalSummary {
  RegionName?: string | undefined;
  NumberOfMatchedAccounts?: number | undefined;
  NumberOfUnmatchedAccounts?: number | undefined;
}
export interface AttributeSummary {
  AttributeName?: string | undefined;
  MostFrequentValue?: string | undefined;
  NumberOfMatchedAccounts?: number | undefined;
  NumberOfUnmatchedAccounts?: number | undefined;
  RegionalSummaries?: RegionalSummary[] | undefined;
}
export interface GetDeclarativePoliciesReportSummaryResult {
  ReportId?: string | undefined;
  S3Bucket?: string | undefined;
  S3Prefix?: string | undefined;
  TargetId?: string | undefined;
  StartTime?: Date | undefined;
  EndTime?: Date | undefined;
  NumberOfAccounts?: number | undefined;
  NumberOfFailedAccounts?: number | undefined;
  AttributeSummaries?: AttributeSummary[] | undefined;
}
export interface GetDefaultCreditSpecificationRequest {
  DryRun?: boolean | undefined;
  InstanceFamily: UnlimitedSupportedInstanceFamily | undefined;
}
export interface InstanceFamilyCreditSpecification {
  InstanceFamily?: UnlimitedSupportedInstanceFamily | undefined;
  CpuCredits?: string | undefined;
}
export interface GetDefaultCreditSpecificationResult {
  InstanceFamilyCreditSpecification?: InstanceFamilyCreditSpecification | undefined;
}
export interface GetEbsDefaultKmsKeyIdRequest {
  DryRun?: boolean | undefined;
}
export interface GetEbsDefaultKmsKeyIdResult {
  KmsKeyId?: string | undefined;
}
export interface GetEbsEncryptionByDefaultRequest {
  DryRun?: boolean | undefined;
}
export interface GetEbsEncryptionByDefaultResult {
  EbsEncryptionByDefault?: boolean | undefined;
  SseType?: SSEType | undefined;
}
export interface GetEnabledIpamPolicyRequest {
  DryRun?: boolean | undefined;
}
export interface GetEnabledIpamPolicyResult {
  IpamPolicyEnabled?: boolean | undefined;
  IpamPolicyId?: string | undefined;
  ManagedBy?: IpamPolicyManagedBy | undefined;
}
export interface AthenaIntegration {
  IntegrationResultS3DestinationArn: string | undefined;
  PartitionLoadFrequency: PartitionLoadFrequency | undefined;
  PartitionStartDate?: Date | undefined;
  PartitionEndDate?: Date | undefined;
}
export interface IntegrateServices {
  AthenaIntegrations?: AthenaIntegration[] | undefined;
}
export interface GetFlowLogsIntegrationTemplateRequest {
  DryRun?: boolean | undefined;
  FlowLogId: string | undefined;
  ConfigDeliveryS3DestinationArn: string | undefined;
  IntegrateServices: IntegrateServices | undefined;
}
export interface GetFlowLogsIntegrationTemplateResult {
  Result?: string | undefined;
}
export interface GetGroupsForCapacityReservationRequest {
  CapacityReservationId: string | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface CapacityReservationGroup {
  GroupArn?: string | undefined;
  OwnerId?: string | undefined;
}
export interface GetGroupsForCapacityReservationResult {
  NextToken?: string | undefined;
  CapacityReservationGroups?: CapacityReservationGroup[] | undefined;
}
export interface GetHostReservationPurchasePreviewRequest {
  HostIdSet: string[] | undefined;
  OfferingId: string | undefined;
}
export interface Purchase {
  CurrencyCode?: CurrencyCodeValues | undefined;
  Duration?: number | undefined;
  HostIdSet?: string[] | undefined;
  HostReservationId?: string | undefined;
  HourlyPrice?: string | undefined;
  InstanceFamily?: string | undefined;
  PaymentOption?: PaymentOption | undefined;
  UpfrontPrice?: string | undefined;
}
export interface GetHostReservationPurchasePreviewResult {
  CurrencyCode?: CurrencyCodeValues | undefined;
  Purchase?: Purchase[] | undefined;
  TotalHourlyPrice?: string | undefined;
  TotalUpfrontPrice?: string | undefined;
}
export interface GetImageAncestryRequest {
  ImageId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ImageAncestryEntry {
  CreationDate?: Date | undefined;
  ImageId?: string | undefined;
  ImageOwnerAlias?: string | undefined;
  SourceImageId?: string | undefined;
  SourceImageRegion?: string | undefined;
}
export interface GetImageAncestryResult {
  ImageAncestryEntries?: ImageAncestryEntry[] | undefined;
}
export interface GetImageBlockPublicAccessStateRequest {
  DryRun?: boolean | undefined;
}
export interface GetImageBlockPublicAccessStateResult {
  ImageBlockPublicAccessState?: string | undefined;
  ManagedBy?: ManagedBy | undefined;
}
export interface GetInstanceMetadataDefaultsRequest {
  DryRun?: boolean | undefined;
}
export interface InstanceMetadataDefaultsResponse {
  HttpTokens?: HttpTokensState | undefined;
  HttpPutResponseHopLimit?: number | undefined;
  HttpEndpoint?: InstanceMetadataEndpointState | undefined;
  InstanceMetadataTags?: InstanceMetadataTagsState | undefined;
  ManagedBy?: ManagedBy | undefined;
  ManagedExceptionMessage?: string | undefined;
  HttpTokensEnforced?: HttpTokensEnforcedState | undefined;
}
export interface GetInstanceMetadataDefaultsResult {
  AccountLevel?: InstanceMetadataDefaultsResponse | undefined;
}
export interface GetInstanceTpmEkPubRequest {
  InstanceId: string | undefined;
  KeyType: EkPubKeyType | undefined;
  KeyFormat: EkPubKeyFormat | undefined;
  DryRun?: boolean | undefined;
}
export interface GetInstanceTpmEkPubResult {
  InstanceId?: string | undefined;
  KeyType?: EkPubKeyType | undefined;
  KeyFormat?: EkPubKeyFormat | undefined;
  KeyValue?: string | undefined;
}
export interface GetInstanceTypesFromInstanceRequirementsRequest {
  DryRun?: boolean | undefined;
  ArchitectureTypes: ArchitectureType[] | undefined;
  VirtualizationTypes: VirtualizationType[] | undefined;
  InstanceRequirements: InstanceRequirementsRequest | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  Context?: string | undefined;
}
export interface InstanceTypeInfoFromInstanceRequirements {
  InstanceType?: string | undefined;
}
export interface GetInstanceTypesFromInstanceRequirementsResult {
  InstanceTypes?: InstanceTypeInfoFromInstanceRequirements[] | undefined;
  NextToken?: string | undefined;
}
export interface GetInstanceUefiDataRequest {
  InstanceId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetInstanceUefiDataResult {
  InstanceId?: string | undefined;
  UefiData?: string | undefined;
}
export interface GetIpamAddressHistoryRequest {
  DryRun?: boolean | undefined;
  Cidr: string | undefined;
  IpamScopeId: string | undefined;
  VpcId?: string | undefined;
  StartTime?: Date | undefined;
  EndTime?: Date | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface IpamAddressHistoryRecord {
  ResourceOwnerId?: string | undefined;
  ResourceRegion?: string | undefined;
  ResourceType?: IpamAddressHistoryResourceType | undefined;
  ResourceId?: string | undefined;
  ResourceCidr?: string | undefined;
  ResourceName?: string | undefined;
  ResourceComplianceStatus?: IpamComplianceStatus | undefined;
  ResourceOverlapStatus?: IpamOverlapStatus | undefined;
  VpcId?: string | undefined;
  SampledStartTime?: Date | undefined;
  SampledEndTime?: Date | undefined;
}
export interface GetIpamAddressHistoryResult {
  HistoryRecords?: IpamAddressHistoryRecord[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamDiscoveredAccountsRequest {
  DryRun?: boolean | undefined;
  IpamResourceDiscoveryId: string | undefined;
  DiscoveryRegion: string | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface IpamDiscoveryFailureReason {
  Code?: IpamDiscoveryFailureCode | undefined;
  Message?: string | undefined;
}
export interface IpamDiscoveredAccount {
  AccountId?: string | undefined;
  DiscoveryRegion?: string | undefined;
  FailureReason?: IpamDiscoveryFailureReason | undefined;
  LastAttemptedDiscoveryTime?: Date | undefined;
  LastSuccessfulDiscoveryTime?: Date | undefined;
  OrganizationalUnitId?: string | undefined;
}
export interface GetIpamDiscoveredAccountsResult {
  IpamDiscoveredAccounts?: IpamDiscoveredAccount[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamDiscoveredPublicAddressesRequest {
  DryRun?: boolean | undefined;
  IpamResourceDiscoveryId: string | undefined;
  AddressRegion: string | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface IpamPublicAddressSecurityGroup {
  GroupName?: string | undefined;
  GroupId?: string | undefined;
}
export interface IpamPublicAddressTag {
  Key?: string | undefined;
  Value?: string | undefined;
}
export interface IpamPublicAddressTags {
  EipTags?: IpamPublicAddressTag[] | undefined;
}
export interface IpamDiscoveredPublicAddress {
  IpamResourceDiscoveryId?: string | undefined;
  AddressRegion?: string | undefined;
  Address?: string | undefined;
  AddressOwnerId?: string | undefined;
  AddressAllocationId?: string | undefined;
  AssociationStatus?: IpamPublicAddressAssociationStatus | undefined;
  AddressType?: IpamPublicAddressType | undefined;
  Service?: IpamPublicAddressAwsService | undefined;
  ServiceResource?: string | undefined;
  VpcId?: string | undefined;
  SubnetId?: string | undefined;
  PublicIpv4PoolId?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  NetworkInterfaceDescription?: string | undefined;
  InstanceId?: string | undefined;
  Tags?: IpamPublicAddressTags | undefined;
  NetworkBorderGroup?: string | undefined;
  SecurityGroups?: IpamPublicAddressSecurityGroup[] | undefined;
  SampleTime?: Date | undefined;
}
export interface GetIpamDiscoveredPublicAddressesResult {
  IpamDiscoveredPublicAddresses?: IpamDiscoveredPublicAddress[] | undefined;
  OldestSampleTime?: Date | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamDiscoveredResourceCidrsRequest {
  DryRun?: boolean | undefined;
  IpamResourceDiscoveryId: string | undefined;
  ResourceRegion: string | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface IpamDiscoveredResourceCidr {
  IpamResourceDiscoveryId?: string | undefined;
  ResourceRegion?: string | undefined;
  ResourceId?: string | undefined;
  ResourceOwnerId?: string | undefined;
  ResourceCidr?: string | undefined;
  IpSource?: IpamResourceCidrIpSource | undefined;
  ResourceType?: IpamResourceType | undefined;
  ResourceTags?: IpamResourceTag[] | undefined;
  IpUsage?: number | undefined;
  VpcId?: string | undefined;
  SubnetId?: string | undefined;
  NetworkInterfaceAttachmentStatus?: IpamNetworkInterfaceAttachmentStatus | undefined;
  SampleTime?: Date | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface GetIpamDiscoveredResourceCidrsResult {
  IpamDiscoveredResourceCidrs?: IpamDiscoveredResourceCidr[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPolicyAllocationRulesRequest {
  DryRun?: boolean | undefined;
  IpamPolicyId: string | undefined;
  Filters?: Filter[] | undefined;
  Locale?: string | undefined;
  ResourceType?: IpamPolicyResourceType | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface IpamPolicyAllocationRule {
  SourceIpamPoolId?: string | undefined;
}
export interface IpamPolicyDocument {
  IpamPolicyId?: string | undefined;
  Locale?: string | undefined;
  ResourceType?: IpamPolicyResourceType | undefined;
  AllocationRules?: IpamPolicyAllocationRule[] | undefined;
}
export interface GetIpamPolicyAllocationRulesResult {
  IpamPolicyDocuments?: IpamPolicyDocument[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPolicyOrganizationTargetsRequest {
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  IpamPolicyId: string | undefined;
  Filters?: Filter[] | undefined;
}
export interface IpamPolicyOrganizationTarget {
  OrganizationTargetId?: string | undefined;
}
export interface GetIpamPolicyOrganizationTargetsResult {
  OrganizationTargets?: IpamPolicyOrganizationTarget[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPoolAllocationsRequest {
  DryRun?: boolean | undefined;
  IpamPoolId: string | undefined;
  IpamPoolAllocationId?: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPoolAllocationsResult {
  IpamPoolAllocations?: IpamPoolAllocation[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPoolCidrsRequest {
  DryRun?: boolean | undefined;
  IpamPoolId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPoolCidrsResult {
  IpamPoolCidrs?: IpamPoolCidr[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPrefixListResolverRulesRequest {
  DryRun?: boolean | undefined;
  IpamPrefixListResolverId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface IpamPrefixListResolverRuleCondition {
  Operation?: IpamPrefixListResolverRuleConditionOperation | undefined;
  IpamPoolId?: string | undefined;
  ResourceId?: string | undefined;
  ResourceOwner?: string | undefined;
  ResourceRegion?: string | undefined;
  ResourceTag?: IpamResourceTag | undefined;
  Cidr?: string | undefined;
}
export interface IpamPrefixListResolverRule {
  RuleType?: IpamPrefixListResolverRuleType | undefined;
  StaticCidr?: string | undefined;
  IpamScopeId?: string | undefined;
  ResourceType?: IpamResourceType | undefined;
  Conditions?: IpamPrefixListResolverRuleCondition[] | undefined;
}
export interface GetIpamPrefixListResolverRulesResult {
  Rules?: IpamPrefixListResolverRule[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPrefixListResolverVersionEntriesRequest {
  DryRun?: boolean | undefined;
  IpamPrefixListResolverId: string | undefined;
  IpamPrefixListResolverVersion: number | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface IpamPrefixListResolverVersionEntry {
  Cidr?: string | undefined;
}
export interface GetIpamPrefixListResolverVersionEntriesResult {
  Entries?: IpamPrefixListResolverVersionEntry[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamPrefixListResolverVersionsRequest {
  DryRun?: boolean | undefined;
  IpamPrefixListResolverId: string | undefined;
  IpamPrefixListResolverVersions?: number[] | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  NextToken?: string | undefined;
}
export interface IpamPrefixListResolverVersion {
  Version?: number | undefined;
}
export interface GetIpamPrefixListResolverVersionsResult {
  IpamPrefixListResolverVersions?: IpamPrefixListResolverVersion[] | undefined;
  NextToken?: string | undefined;
}
export interface GetIpamResourceCidrsRequest {
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  IpamScopeId: string | undefined;
  IpamPoolId?: string | undefined;
  ResourceId?: string | undefined;
  ResourceType?: IpamResourceType | undefined;
  ResourceTag?: RequestIpamResourceTag | undefined;
  ResourceOwner?: string | undefined;
}
export interface IpamResourceCidr {
  IpamId?: string | undefined;
  IpamScopeId?: string | undefined;
  IpamPoolId?: string | undefined;
  ResourceRegion?: string | undefined;
  ResourceOwnerId?: string | undefined;
  ResourceId?: string | undefined;
  ResourceName?: string | undefined;
  ResourceCidr?: string | undefined;
  ResourceType?: IpamResourceType | undefined;
  ResourceTags?: IpamResourceTag[] | undefined;
  IpUsage?: number | undefined;
  ComplianceStatus?: IpamComplianceStatus | undefined;
  ManagementState?: IpamManagementState | undefined;
  OverlapStatus?: IpamOverlapStatus | undefined;
  VpcId?: string | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface GetIpamResourceCidrsResult {
  NextToken?: string | undefined;
  IpamResourceCidrs?: IpamResourceCidr[] | undefined;
}
export interface GetLaunchTemplateDataRequest {
  DryRun?: boolean | undefined;
  InstanceId: string | undefined;
}
export interface GetLaunchTemplateDataResult {
  LaunchTemplateData?: ResponseLaunchTemplateData | undefined;
}
export interface GetManagedPrefixListAssociationsRequest {
  DryRun?: boolean | undefined;
  PrefixListId: string | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface PrefixListAssociation {
  ResourceId?: string | undefined;
  ResourceOwner?: string | undefined;
}
export interface GetManagedPrefixListAssociationsResult {
  PrefixListAssociations?: PrefixListAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface GetManagedPrefixListEntriesRequest {
  DryRun?: boolean | undefined;
  PrefixListId: string | undefined;
  TargetVersion?: number | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface PrefixListEntry {
  Cidr?: string | undefined;
  Description?: string | undefined;
}
export interface GetManagedPrefixListEntriesResult {
  Entries?: PrefixListEntry[] | undefined;
  NextToken?: string | undefined;
}
export interface GetManagedResourceVisibilityRequest {
  DryRun?: boolean | undefined;
}
export interface ManagedResourceVisibilitySettings {
  DefaultVisibility?: ManagedResourceDefaultVisibility | undefined;
}
export interface GetManagedResourceVisibilityResult {
  Visibility?: ManagedResourceVisibilitySettings | undefined;
}
export interface GetNetworkInsightsAccessScopeAnalysisFindingsRequest {
  NetworkInsightsAccessScopeAnalysisId: string | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetNetworkInsightsAccessScopeAnalysisFindingsResult {
  NetworkInsightsAccessScopeAnalysisId?: string | undefined;
  AnalysisStatus?: AnalysisStatus | undefined;
  AnalysisFindings?: AccessScopeAnalysisFinding[] | undefined;
  NextToken?: string | undefined;
}
export interface GetNetworkInsightsAccessScopeContentRequest {
  NetworkInsightsAccessScopeId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetNetworkInsightsAccessScopeContentResult {
  NetworkInsightsAccessScopeContent?: NetworkInsightsAccessScopeContent | undefined;
}
export interface GetPasswordDataRequest {
  InstanceId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetPasswordDataResult {
  InstanceId?: string | undefined;
  Timestamp?: Date | undefined;
  PasswordData?: string | undefined;
}
export interface GetReservedInstancesExchangeQuoteRequest {
  DryRun?: boolean | undefined;
  ReservedInstanceIds: string[] | undefined;
  TargetConfigurations?: TargetConfigurationRequest[] | undefined;
}
export interface ReservationValue {
  HourlyPrice?: string | undefined;
  RemainingTotalValue?: string | undefined;
  RemainingUpfrontValue?: string | undefined;
}
export interface ReservedInstanceReservationValue {
  ReservationValue?: ReservationValue | undefined;
  ReservedInstanceId?: string | undefined;
}
export interface TargetConfiguration {
  InstanceCount?: number | undefined;
  OfferingId?: string | undefined;
}
export interface TargetReservationValue {
  ReservationValue?: ReservationValue | undefined;
  TargetConfiguration?: TargetConfiguration | undefined;
}
export interface GetReservedInstancesExchangeQuoteResult {
  CurrencyCode?: string | undefined;
  IsValidExchange?: boolean | undefined;
  OutputReservedInstancesWillExpireAt?: Date | undefined;
  PaymentDue?: string | undefined;
  ReservedInstanceValueRollup?: ReservationValue | undefined;
  ReservedInstanceValueSet?: ReservedInstanceReservationValue[] | undefined;
  TargetConfigurationValueRollup?: ReservationValue | undefined;
  TargetConfigurationValueSet?: TargetReservationValue[] | undefined;
  ValidationFailureReason?: string | undefined;
}
export interface GetRouteServerAssociationsRequest {
  RouteServerId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetRouteServerAssociationsResult {
  RouteServerAssociations?: RouteServerAssociation[] | undefined;
}
export interface GetRouteServerPropagationsRequest {
  RouteServerId: string | undefined;
  RouteTableId?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetRouteServerPropagationsResult {
  RouteServerPropagations?: RouteServerPropagation[] | undefined;
}
export interface GetRouteServerRoutingDatabaseRequest {
  RouteServerId: string | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
  Filters?: Filter[] | undefined;
}
export interface RouteServerRouteInstallationDetail {
  RouteTableId?: string | undefined;
  RouteInstallationStatus?: RouteServerRouteInstallationStatus | undefined;
  RouteInstallationStatusReason?: string | undefined;
}
export interface RouteServerRoute {
  RouteServerEndpointId?: string | undefined;
  RouteServerPeerId?: string | undefined;
  RouteInstallationDetails?: RouteServerRouteInstallationDetail[] | undefined;
  RouteStatus?: RouteServerRouteStatus | undefined;
  Prefix?: string | undefined;
  AsPaths?: string[] | undefined;
  Med?: number | undefined;
  NextHopIp?: string | undefined;
}
export interface GetRouteServerRoutingDatabaseResult {
  AreRoutesPersisted?: boolean | undefined;
  Routes?: RouteServerRoute[] | undefined;
  NextToken?: string | undefined;
}
export interface GetSecurityGroupsForVpcRequest {
  VpcId: string | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  Filters?: Filter[] | undefined;
  DryRun?: boolean | undefined;
}
export interface SecurityGroupForVpc {
  Description?: string | undefined;
  GroupName?: string | undefined;
  OwnerId?: string | undefined;
  GroupId?: string | undefined;
  Tags?: Tag[] | undefined;
  PrimaryVpcId?: string | undefined;
}
export interface GetSecurityGroupsForVpcResult {
  NextToken?: string | undefined;
  SecurityGroupForVpcs?: SecurityGroupForVpc[] | undefined;
}
export interface GetSerialConsoleAccessStatusRequest {
  DryRun?: boolean | undefined;
}
export interface GetSerialConsoleAccessStatusResult {
  SerialConsoleAccessEnabled?: boolean | undefined;
  ManagedBy?: ManagedBy | undefined;
}
export interface GetSnapshotBlockPublicAccessStateRequest {
  DryRun?: boolean | undefined;
}
export interface GetSnapshotBlockPublicAccessStateResult {
  State?: SnapshotBlockPublicAccessState | undefined;
  ManagedBy?: ManagedBy | undefined;
}
export interface InstanceRequirementsWithMetadataRequest {
  ArchitectureTypes?: ArchitectureType[] | undefined;
  VirtualizationTypes?: VirtualizationType[] | undefined;
  InstanceRequirements?: InstanceRequirementsRequest | undefined;
}
export interface GetSpotPlacementScoresRequest {
  InstanceTypes?: string[] | undefined;
  TargetCapacity: number | undefined;
  TargetCapacityUnitType?: TargetCapacityUnitType | undefined;
  SingleAvailabilityZone?: boolean | undefined;
  RegionNames?: string[] | undefined;
  InstanceRequirementsWithMetadata?: InstanceRequirementsWithMetadataRequest | undefined;
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface SpotPlacementScore {
  Region?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  Score?: number | undefined;
}
export interface GetSpotPlacementScoresResult {
  SpotPlacementScores?: SpotPlacementScore[] | undefined;
  NextToken?: string | undefined;
}
export interface GetSubnetCidrReservationsRequest {
  Filters?: Filter[] | undefined;
  SubnetId: string | undefined;
  DryRun?: boolean | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
}
export interface GetSubnetCidrReservationsResult {
  SubnetIpv4CidrReservations?: SubnetCidrReservation[] | undefined;
  SubnetIpv6CidrReservations?: SubnetCidrReservation[] | undefined;
  NextToken?: string | undefined;
}
export interface GetTransitGatewayAttachmentPropagationsRequest {
  TransitGatewayAttachmentId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayAttachmentPropagation {
  TransitGatewayRouteTableId?: string | undefined;
  State?: TransitGatewayPropagationState | undefined;
}
export interface GetTransitGatewayAttachmentPropagationsResult {
  TransitGatewayAttachmentPropagations?: TransitGatewayAttachmentPropagation[] | undefined;
  NextToken?: string | undefined;
}
export interface GetTransitGatewayMeteringPolicyEntriesRequest {
  TransitGatewayMeteringPolicyId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetTransitGatewayMeteringPolicyEntriesResult {
  TransitGatewayMeteringPolicyEntries?: TransitGatewayMeteringPolicyEntry[] | undefined;
  NextToken?: string | undefined;
}
export interface GetTransitGatewayMulticastDomainAssociationsRequest {
  TransitGatewayMulticastDomainId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayMulticastDomainAssociation {
  TransitGatewayAttachmentId?: string | undefined;
  ResourceId?: string | undefined;
  ResourceType?: TransitGatewayAttachmentResourceType | undefined;
  ResourceOwnerId?: string | undefined;
  Subnet?: SubnetAssociation | undefined;
}
export interface GetTransitGatewayMulticastDomainAssociationsResult {
  MulticastDomainAssociations?: TransitGatewayMulticastDomainAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface GetTransitGatewayPolicyTableAssociationsRequest {
  TransitGatewayPolicyTableId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetTransitGatewayPolicyTableAssociationsResult {
  Associations?: TransitGatewayPolicyTableAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface GetTransitGatewayPolicyTableEntriesRequest {
  TransitGatewayPolicyTableId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayPolicyRuleMetaData {
  MetaDataKey?: string | undefined;
  MetaDataValue?: string | undefined;
}
export interface TransitGatewayPolicyRule {
  SourceCidrBlock?: string | undefined;
  SourcePortRange?: string | undefined;
  DestinationCidrBlock?: string | undefined;
  DestinationPortRange?: string | undefined;
  Protocol?: string | undefined;
  MetaData?: TransitGatewayPolicyRuleMetaData | undefined;
}
export interface TransitGatewayPolicyTableEntry {
  PolicyRuleNumber?: string | undefined;
  PolicyRule?: TransitGatewayPolicyRule | undefined;
  TargetRouteTableId?: string | undefined;
}
export interface GetTransitGatewayPolicyTableEntriesResult {
  TransitGatewayPolicyTableEntries?: TransitGatewayPolicyTableEntry[] | undefined;
}
export interface GetTransitGatewayPrefixListReferencesRequest {
  TransitGatewayRouteTableId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetTransitGatewayPrefixListReferencesResult {
  TransitGatewayPrefixListReferences?: TransitGatewayPrefixListReference[] | undefined;
  NextToken?: string | undefined;
}
export interface GetTransitGatewayRouteTableAssociationsRequest {
  TransitGatewayRouteTableId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayRouteTableAssociation {
  TransitGatewayAttachmentId?: string | undefined;
  ResourceId?: string | undefined;
  ResourceType?: TransitGatewayAttachmentResourceType | undefined;
  State?: TransitGatewayAssociationState | undefined;
}
export interface GetTransitGatewayRouteTableAssociationsResult {
  Associations?: TransitGatewayRouteTableAssociation[] | undefined;
  NextToken?: string | undefined;
}
export interface GetTransitGatewayRouteTablePropagationsRequest {
  TransitGatewayRouteTableId: string | undefined;
  Filters?: Filter[] | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayRouteTablePropagation {
  TransitGatewayAttachmentId?: string | undefined;
  ResourceId?: string | undefined;
  ResourceType?: TransitGatewayAttachmentResourceType | undefined;
  State?: TransitGatewayPropagationState | undefined;
  TransitGatewayRouteTableAnnouncementId?: string | undefined;
}
export interface GetTransitGatewayRouteTablePropagationsResult {
  TransitGatewayRouteTablePropagations?: TransitGatewayRouteTablePropagation[] | undefined;
  NextToken?: string | undefined;
}
export interface GetVerifiedAccessEndpointPolicyRequest {
  VerifiedAccessEndpointId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetVerifiedAccessEndpointPolicyResult {
  PolicyEnabled?: boolean | undefined;
  PolicyDocument?: string | undefined;
}
export interface GetVerifiedAccessEndpointTargetsRequest {
  VerifiedAccessEndpointId: string | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface VerifiedAccessEndpointTarget {
  VerifiedAccessEndpointId?: string | undefined;
  VerifiedAccessEndpointTargetIpAddress?: string | undefined;
  VerifiedAccessEndpointTargetDns?: string | undefined;
}
export interface GetVerifiedAccessEndpointTargetsResult {
  VerifiedAccessEndpointTargets?: VerifiedAccessEndpointTarget[] | undefined;
  NextToken?: string | undefined;
}
export interface GetVerifiedAccessGroupPolicyRequest {
  VerifiedAccessGroupId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetVerifiedAccessGroupPolicyResult {
  PolicyEnabled?: boolean | undefined;
  PolicyDocument?: string | undefined;
}
export interface GetVpcResourcesBlockingEncryptionEnforcementRequest {
  VpcId: string | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface VpcEncryptionNonCompliantResource {
  Id?: string | undefined;
  Type?: string | undefined;
  Description?: string | undefined;
  IsExcludable?: boolean | undefined;
}
export interface GetVpcResourcesBlockingEncryptionEnforcementResult {
  NonCompliantResources?: VpcEncryptionNonCompliantResource[] | undefined;
  NextToken?: string | undefined;
}
export interface GetVpnConnectionDeviceSampleConfigurationRequest {
  VpnConnectionId: string | undefined;
  VpnConnectionDeviceTypeId: string | undefined;
  InternetKeyExchangeVersion?: string | undefined;
  SampleType?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface GetVpnConnectionDeviceSampleConfigurationResult {
  VpnConnectionDeviceSampleConfiguration?: string | undefined;
}
export interface GetVpnConnectionDeviceTypesRequest {
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface VpnConnectionDeviceType {
  VpnConnectionDeviceTypeId?: string | undefined;
  Vendor?: string | undefined;
  Platform?: string | undefined;
  Software?: string | undefined;
}
export interface GetVpnConnectionDeviceTypesResult {
  VpnConnectionDeviceTypes?: VpnConnectionDeviceType[] | undefined;
  NextToken?: string | undefined;
}
export interface GetVpnTunnelReplacementStatusRequest {
  VpnConnectionId: string | undefined;
  VpnTunnelOutsideIpAddress: string | undefined;
  DryRun?: boolean | undefined;
}
export interface MaintenanceDetails {
  PendingMaintenance?: string | undefined;
  MaintenanceAutoAppliedAfter?: Date | undefined;
  LastMaintenanceApplied?: Date | undefined;
}
export interface GetVpnTunnelReplacementStatusResult {
  VpnConnectionId?: string | undefined;
  TransitGatewayId?: string | undefined;
  CustomerGatewayId?: string | undefined;
  VpnGatewayId?: string | undefined;
  VpnTunnelOutsideIpAddress?: string | undefined;
  MaintenanceDetails?: MaintenanceDetails | undefined;
}
export interface ImportClientVpnClientCertificateRevocationListRequest {
  ClientVpnEndpointId: string | undefined;
  CertificateRevocationList: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ImportClientVpnClientCertificateRevocationListResult {
  Return?: boolean | undefined;
}
export interface ClientData {
  Comment?: string | undefined;
  UploadEnd?: Date | undefined;
  UploadSize?: number | undefined;
  UploadStart?: Date | undefined;
}
export interface UserBucket {
  S3Bucket?: string | undefined;
  S3Key?: string | undefined;
}
export interface ImageDiskContainer {
  Description?: string | undefined;
  DeviceName?: string | undefined;
  Format?: string | undefined;
  SnapshotId?: string | undefined;
  Url?: string | undefined;
  UserBucket?: UserBucket | undefined;
}
export interface ImportImageLicenseConfigurationRequest {
  LicenseConfigurationArn?: string | undefined;
}
export interface ImportImageRequest {
  Architecture?: string | undefined;
  ClientData?: ClientData | undefined;
  ClientToken?: string | undefined;
  Description?: string | undefined;
  DiskContainers?: ImageDiskContainer[] | undefined;
  DryRun?: boolean | undefined;
  Encrypted?: boolean | undefined;
  Hypervisor?: string | undefined;
  KmsKeyId?: string | undefined;
  LicenseType?: string | undefined;
  Platform?: string | undefined;
  RoleName?: string | undefined;
  LicenseSpecifications?: ImportImageLicenseConfigurationRequest[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  UsageOperation?: string | undefined;
  BootMode?: BootModeValues | undefined;
}
export interface ImportImageResult {
  Architecture?: string | undefined;
  Description?: string | undefined;
  Encrypted?: boolean | undefined;
  Hypervisor?: string | undefined;
  ImageId?: string | undefined;
  ImportTaskId?: string | undefined;
  KmsKeyId?: string | undefined;
  LicenseType?: string | undefined;
  Platform?: string | undefined;
  Progress?: string | undefined;
  SnapshotDetails?: SnapshotDetail[] | undefined;
  Status?: string | undefined;
  StatusMessage?: string | undefined;
  LicenseSpecifications?: ImportImageLicenseConfigurationResponse[] | undefined;
  Tags?: Tag[] | undefined;
  UsageOperation?: string | undefined;
}
export interface DiskImageDetail {
  Format: DiskImageFormat | undefined;
  Bytes: number | undefined;
  ImportManifestUrl: string | undefined;
}
export interface VolumeDetail {
  Size: number | undefined;
}
export interface DiskImage {
  Description?: string | undefined;
  Image?: DiskImageDetail | undefined;
  Volume?: VolumeDetail | undefined;
}
export interface UserData {
  Data?: string | undefined;
}
export interface ImportInstanceLaunchSpecification {
  Architecture?: ArchitectureValues | undefined;
  GroupNames?: string[] | undefined;
  GroupIds?: string[] | undefined;
  AdditionalInfo?: string | undefined;
  UserData?: UserData | undefined;
  InstanceType?: _InstanceType | undefined;
  Placement?: Placement | undefined;
  Monitoring?: boolean | undefined;
  SubnetId?: string | undefined;
  InstanceInitiatedShutdownBehavior?: ShutdownBehavior | undefined;
  PrivateIpAddress?: string | undefined;
}
export interface ImportInstanceRequest {
  DryRun?: boolean | undefined;
  Description?: string | undefined;
  LaunchSpecification?: ImportInstanceLaunchSpecification | undefined;
  DiskImages?: DiskImage[] | undefined;
  Platform: PlatformValues | undefined;
}
export interface ImportInstanceResult {
  ConversionTask?: ConversionTask | undefined;
}
export interface ImportKeyPairRequest {
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  KeyName: string | undefined;
  PublicKeyMaterial: Uint8Array | undefined;
}
export interface ImportKeyPairResult {
  KeyFingerprint?: string | undefined;
  KeyName?: string | undefined;
  KeyPairId?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface SnapshotDiskContainer {
  Description?: string | undefined;
  Format?: string | undefined;
  Url?: string | undefined;
  UserBucket?: UserBucket | undefined;
}
export interface ImportSnapshotRequest {
  ClientData?: ClientData | undefined;
  ClientToken?: string | undefined;
  Description?: string | undefined;
  DiskContainer?: SnapshotDiskContainer | undefined;
  DryRun?: boolean | undefined;
  Encrypted?: boolean | undefined;
  KmsKeyId?: string | undefined;
  RoleName?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface ImportSnapshotResult {
  Description?: string | undefined;
  ImportTaskId?: string | undefined;
  SnapshotTaskDetail?: SnapshotTaskDetail | undefined;
  Tags?: Tag[] | undefined;
}
export interface ImportVolumeRequest {
  AvailabilityZoneId?: string | undefined;
  DryRun?: boolean | undefined;
  AvailabilityZone?: string | undefined;
  Image: DiskImageDetail | undefined;
  Description?: string | undefined;
  Volume: VolumeDetail | undefined;
}
export interface ImportVolumeResult {
  ConversionTask?: ConversionTask | undefined;
}
export interface ListImagesInRecycleBinRequest {
  ImageIds?: string[] | undefined;
  NextToken?: string | undefined;
  MaxResults?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface ImageRecycleBinInfo {
  ImageId?: string | undefined;
  Name?: string | undefined;
  Description?: string | undefined;
  RecycleBinEnterTime?: Date | undefined;
  RecycleBinExitTime?: Date | undefined;
}
export interface ListImagesInRecycleBinResult {
  Images?: ImageRecycleBinInfo[] | undefined;
  NextToken?: string | undefined;
}
export interface ListSnapshotsInRecycleBinRequest {
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
  SnapshotIds?: string[] | undefined;
  DryRun?: boolean | undefined;
}
export interface SnapshotRecycleBinInfo {
  SnapshotId?: string | undefined;
  RecycleBinEnterTime?: Date | undefined;
  RecycleBinExitTime?: Date | undefined;
  Description?: string | undefined;
  VolumeId?: string | undefined;
}
export interface ListSnapshotsInRecycleBinResult {
  Snapshots?: SnapshotRecycleBinInfo[] | undefined;
  NextToken?: string | undefined;
}
export interface ListVolumesInRecycleBinRequest {
  VolumeIds?: string[] | undefined;
  DryRun?: boolean | undefined;
  MaxResults?: number | undefined;
  NextToken?: string | undefined;
}
export interface VolumeRecycleBinInfo {
  VolumeId?: string | undefined;
  VolumeType?: VolumeType | undefined;
  State?: VolumeState | undefined;
  Size?: number | undefined;
  Iops?: number | undefined;
  Throughput?: number | undefined;
  OutpostArn?: string | undefined;
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  SourceVolumeId?: string | undefined;
  SnapshotId?: string | undefined;
  Operator?: OperatorResponse | undefined;
  CreateTime?: Date | undefined;
  RecycleBinEnterTime?: Date | undefined;
  RecycleBinExitTime?: Date | undefined;
}
export interface ListVolumesInRecycleBinResult {
  Volumes?: VolumeRecycleBinInfo[] | undefined;
  NextToken?: string | undefined;
}
export interface LockSnapshotRequest {
  SnapshotId: string | undefined;
  DryRun?: boolean | undefined;
  LockMode: LockMode | undefined;
  CoolOffPeriod?: number | undefined;
  LockDuration?: number | undefined;
  ExpirationDate?: Date | undefined;
}
export interface LockSnapshotResult {
  SnapshotId?: string | undefined;
  LockState?: LockState | undefined;
  LockDuration?: number | undefined;
  CoolOffPeriod?: number | undefined;
  CoolOffPeriodExpiresOn?: Date | undefined;
  LockCreatedOn?: Date | undefined;
  LockExpiresOn?: Date | undefined;
  LockDurationStartTime?: Date | undefined;
}
export interface ModifyAccountVpcEncryptionControlRequest {
  DryRun?: boolean | undefined;
  Mode?: AccountVpcEncryptionControlMode | undefined;
  InternetGateway?: VpcEncryptionControlExclusionStateInput | undefined;
  EgressOnlyInternetGateway?: VpcEncryptionControlExclusionStateInput | undefined;
  NatGateway?: VpcEncryptionControlExclusionStateInput | undefined;
  VirtualPrivateGateway?: VpcEncryptionControlExclusionStateInput | undefined;
  VpcPeering?: VpcEncryptionControlExclusionStateInput | undefined;
  Lambda?: VpcEncryptionControlExclusionStateInput | undefined;
  VpcLattice?: VpcEncryptionControlExclusionStateInput | undefined;
  ElasticFileSystem?: VpcEncryptionControlExclusionStateInput | undefined;
}
export interface ModifyAccountVpcEncryptionControlResult {
  AccountVpcEncryptionControl?: AccountVpcEncryptionControl | undefined;
}
export interface ModifyAddressAttributeRequest {
  AllocationId: string | undefined;
  DomainName?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ModifyAddressAttributeResult {
  Address?: AddressAttribute | undefined;
}
export interface ModifyAvailabilityZoneGroupRequest {
  GroupName: string | undefined;
  OptInStatus: ModifyAvailabilityZoneOptInStatus | undefined;
  DryRun?: boolean | undefined;
}
export interface ModifyAvailabilityZoneGroupResult {
  Return?: boolean | undefined;
}
export interface ModifyCapacityReservationRequest {
  CapacityReservationId: string | undefined;
  InstanceCount?: number | undefined;
  EndDate?: Date | undefined;
  EndDateType?: EndDateType | undefined;
  Accept?: boolean | undefined;
  DryRun?: boolean | undefined;
  AdditionalInfo?: string | undefined;
  InstanceMatchCriteria?: InstanceMatchCriteria | undefined;
}
export interface ModifyCapacityReservationResult {
  Return?: boolean | undefined;
}
export interface ModifyCapacityReservationFleetRequest {
  CapacityReservationFleetId: string | undefined;
  TotalTargetCapacity?: number | undefined;
  EndDate?: Date | undefined;
  DryRun?: boolean | undefined;
  RemoveEndDate?: boolean | undefined;
}
export interface ModifyCapacityReservationFleetResult {
  Return?: boolean | undefined;
}
export interface DnsServersOptionsModifyStructure {
  CustomDnsServers?: string[] | undefined;
  Enabled?: boolean | undefined;
}
export interface ModifyClientVpnEndpointRequest {
  ClientVpnEndpointId: string | undefined;
  ServerCertificateArn?: string | undefined;
  ConnectionLogOptions?: ConnectionLogOptions | undefined;
  DnsServers?: DnsServersOptionsModifyStructure | undefined;
  VpnPort?: number | undefined;
  Description?: string | undefined;
  SplitTunnel?: boolean | undefined;
  DryRun?: boolean | undefined;
  SecurityGroupIds?: string[] | undefined;
  VpcId?: string | undefined;
  SelfServicePortal?: SelfServicePortal | undefined;
  ClientConnectOptions?: ClientConnectOptions | undefined;
  SessionTimeoutHours?: number | undefined;
  ClientLoginBannerOptions?: ClientLoginBannerOptions | undefined;
  ClientRouteEnforcementOptions?: ClientRouteEnforcementOptions | undefined;
  DisconnectOnSessionTimeout?: boolean | undefined;
  TransitGatewayConfiguration?: TransitGatewayConfigurationInputStructure | undefined;
}
export interface ModifyClientVpnEndpointResult {
  Return?: boolean | undefined;
}
export interface ModifyDefaultCreditSpecificationRequest {
  DryRun?: boolean | undefined;
  InstanceFamily: UnlimitedSupportedInstanceFamily | undefined;
  CpuCredits: string | undefined;
}
export interface ModifyDefaultCreditSpecificationResult {
  InstanceFamilyCreditSpecification?: InstanceFamilyCreditSpecification | undefined;
}
export interface ModifyEbsDefaultKmsKeyIdRequest {
  KmsKeyId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface ModifyEbsDefaultKmsKeyIdResult {
  KmsKeyId?: string | undefined;
}
export interface ModifyFleetRequest {
  DryRun?: boolean | undefined;
  ExcessCapacityTerminationPolicy?: FleetExcessCapacityTerminationPolicy | undefined;
  LaunchTemplateConfigs?: FleetLaunchTemplateConfigRequest[] | undefined;
  FleetId: string | undefined;
  TargetCapacitySpecification?: TargetCapacitySpecificationRequest | undefined;
  Context?: string | undefined;
}
export interface ModifyFleetResult {
  Return?: boolean | undefined;
}
export interface LoadPermissionRequest {
  Group?: PermissionGroup | undefined;
  UserId?: string | undefined;
}
export interface LoadPermissionModifications {
  Add?: LoadPermissionRequest[] | undefined;
  Remove?: LoadPermissionRequest[] | undefined;
}
export interface ModifyFpgaImageAttributeRequest {
  DryRun?: boolean | undefined;
  FpgaImageId: string | undefined;
  Attribute?: FpgaImageAttributeName | undefined;
  OperationType?: OperationType | undefined;
  UserIds?: string[] | undefined;
  UserGroups?: string[] | undefined;
  ProductCodes?: string[] | undefined;
  LoadPermission?: LoadPermissionModifications | undefined;
  Description?: string | undefined;
  Name?: string | undefined;
}
export interface ModifyFpgaImageAttributeResult {
  FpgaImageAttribute?: FpgaImageAttribute | undefined;
}
export interface ModifyHostsRequest {
  HostRecovery?: HostRecovery | undefined;
  InstanceType?: string | undefined;
  InstanceFamily?: string | undefined;
  HostMaintenance?: HostMaintenance | undefined;
  HostIds: string[] | undefined;
  AutoPlacement?: AutoPlacement | undefined;
}
export interface ModifyHostsResult {
  Successful?: string[] | undefined;
  Unsuccessful?: UnsuccessfulItem[] | undefined;
}
export interface ModifyIdentityIdFormatRequest {
  Resource: string | undefined;
  UseLongIds: boolean | undefined;
  PrincipalArn: string | undefined;
}
export interface ModifyIdFormatRequest {
  Resource: string | undefined;
  UseLongIds: boolean | undefined;
}
export interface LaunchPermissionModifications {
  Add?: LaunchPermission[] | undefined;
  Remove?: LaunchPermission[] | undefined;
}
export interface ModifyImageAttributeRequest {
  Attribute?: string | undefined;
  Description?: AttributeValue | undefined;
  ImageId: string | undefined;
  LaunchPermission?: LaunchPermissionModifications | undefined;
  OperationType?: OperationType | undefined;
  ProductCodes?: string[] | undefined;
  UserGroups?: string[] | undefined;
  UserIds?: string[] | undefined;
  Value?: string | undefined;
  OrganizationArns?: string[] | undefined;
  OrganizationalUnitArns?: string[] | undefined;
  ImdsSupport?: AttributeValue | undefined;
  DryRun?: boolean | undefined;
}
export interface EbsInstanceBlockDeviceSpecification {
  VolumeId?: string | undefined;
  DeleteOnTermination?: boolean | undefined;
}
export interface InstanceBlockDeviceMappingSpecification {
  DeviceName?: string | undefined;
  Ebs?: EbsInstanceBlockDeviceSpecification | undefined;
  VirtualName?: string | undefined;
  NoDevice?: string | undefined;
}
export interface EnclaveOptionsRequest {
  Enabled?: boolean | undefined;
}
export interface BlobAttributeValue {
  Value?: Uint8Array | undefined;
}
export interface ModifyInstanceAttributeRequest {
  SourceDestCheck?: AttributeBooleanValue | undefined;
  EnclaveOptions?: EnclaveOptionsRequest | undefined;
  DisableApiStop?: AttributeBooleanValue | undefined;
  DryRun?: boolean | undefined;
  InstanceId: string | undefined;
  Attribute?: InstanceAttributeName | undefined;
  Value?: string | undefined;
  BlockDeviceMappings?: InstanceBlockDeviceMappingSpecification[] | undefined;
  DisableApiTermination?: AttributeBooleanValue | undefined;
  InstanceType?: AttributeValue | undefined;
  Kernel?: AttributeValue | undefined;
  Ramdisk?: AttributeValue | undefined;
  UserData?: BlobAttributeValue | undefined;
  InstanceInitiatedShutdownBehavior?: AttributeValue | undefined;
  Groups?: string[] | undefined;
  EbsOptimized?: AttributeBooleanValue | undefined;
  SriovNetSupport?: AttributeValue | undefined;
  EnaSupport?: AttributeBooleanValue | undefined;
}
export interface CapacityReservationSpecification {
  CapacityReservationPreference?: CapacityReservationPreference | undefined;
  CapacityReservationTarget?: CapacityReservationTarget | undefined;
}
export interface ModifyInstanceCapacityReservationAttributesRequest {
  InstanceId: string | undefined;
  CapacityReservationSpecification: CapacityReservationSpecification | undefined;
  DryRun?: boolean | undefined;
}
export interface ModifyInstanceCapacityReservationAttributesResult {
  Return?: boolean | undefined;
}
export interface ModifyInstanceConnectEndpointRequest {
  DryRun?: boolean | undefined;
  InstanceConnectEndpointId: string | undefined;
  IpAddressType?: IpAddressType | undefined;
  SecurityGroupIds?: string[] | undefined;
  PreserveClientIp?: boolean | undefined;
}
export interface ModifyInstanceConnectEndpointResult {
  Return?: boolean | undefined;
}
export interface ModifyInstanceCpuOptionsRequest {
  InstanceId: string | undefined;
  CoreCount?: number | undefined;
  ThreadsPerCore?: number | undefined;
  NestedVirtualization?: NestedVirtualizationSpecification | undefined;
  DryRun?: boolean | undefined;
}
export interface ModifyInstanceCpuOptionsResult {
  InstanceId?: string | undefined;
  CoreCount?: number | undefined;
  ThreadsPerCore?: number | undefined;
  NestedVirtualization?: NestedVirtualizationSpecification | undefined;
}
export interface InstanceCreditSpecificationRequest {
  InstanceId: string | undefined;
  CpuCredits?: string | undefined;
}
export interface ModifyInstanceCreditSpecificationRequest {
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
  InstanceCreditSpecifications: InstanceCreditSpecificationRequest[] | undefined;
}
export interface SuccessfulInstanceCreditSpecificationItem {
  InstanceId?: string | undefined;
}
export interface UnsuccessfulInstanceCreditSpecificationItemError {
  Code?: UnsuccessfulInstanceCreditSpecificationErrorCode | undefined;
  Message?: string | undefined;
}
export interface UnsuccessfulInstanceCreditSpecificationItem {
  InstanceId?: string | undefined;
  Error?: UnsuccessfulInstanceCreditSpecificationItemError | undefined;
}
export interface ModifyInstanceCreditSpecificationResult {
  SuccessfulInstanceCreditSpecifications?: SuccessfulInstanceCreditSpecificationItem[] | undefined;
  UnsuccessfulInstanceCreditSpecifications?:
    | UnsuccessfulInstanceCreditSpecificationItem[]
    | undefined;
}
export interface ModifyInstanceEventStartTimeRequest {
  DryRun?: boolean | undefined;
  InstanceId: string | undefined;
  InstanceEventId: string | undefined;
  NotBefore: Date | undefined;
}
export interface ModifyInstanceEventStartTimeResult {
  Event?: InstanceStatusEvent | undefined;
}
export interface ModifyInstanceEventWindowRequest {
  DryRun?: boolean | undefined;
  Name?: string | undefined;
  InstanceEventWindowId: string | undefined;
  TimeRanges?: InstanceEventWindowTimeRangeRequest[] | undefined;
  CronExpression?: string | undefined;
}
export interface ModifyInstanceEventWindowResult {
  InstanceEventWindow?: InstanceEventWindow | undefined;
}
export interface ModifyInstanceMaintenanceOptionsRequest {
  InstanceId: string | undefined;
  AutoRecovery?: InstanceAutoRecoveryState | undefined;
  RebootMigration?: InstanceRebootMigrationState | undefined;
  DryRun?: boolean | undefined;
}
export interface ModifyInstanceMaintenanceOptionsResult {
  InstanceId?: string | undefined;
  AutoRecovery?: InstanceAutoRecoveryState | undefined;
  RebootMigration?: InstanceRebootMigrationState | undefined;
}
export interface ModifyInstanceMetadataDefaultsRequest {
  HttpTokens?: MetadataDefaultHttpTokensState | undefined;
  HttpPutResponseHopLimit?: number | undefined;
  HttpEndpoint?: DefaultInstanceMetadataEndpointState | undefined;
  InstanceMetadataTags?: DefaultInstanceMetadataTagsState | undefined;
  DryRun?: boolean | undefined;
  HttpTokensEnforced?: DefaultHttpTokensEnforcedState | undefined;
}
export interface ModifyInstanceMetadataDefaultsResult {
  Return?: boolean | undefined;
}
export interface ModifyInstanceMetadataOptionsRequest {
  InstanceId: string | undefined;
  HttpTokens?: HttpTokensState | undefined;
  HttpPutResponseHopLimit?: number | undefined;
  HttpEndpoint?: InstanceMetadataEndpointState | undefined;
  DryRun?: boolean | undefined;
  HttpProtocolIpv6?: InstanceMetadataProtocolState | undefined;
  InstanceMetadataTags?: InstanceMetadataTagsState | undefined;
}
export interface ModifyInstanceMetadataOptionsResult {
  InstanceId?: string | undefined;
  InstanceMetadataOptions?: InstanceMetadataOptionsResponse | undefined;
}
export interface ModifyInstanceNetworkPerformanceRequest {
  InstanceId: string | undefined;
  BandwidthWeighting: InstanceBandwidthWeighting | undefined;
  DryRun?: boolean | undefined;
}
export interface ModifyInstanceNetworkPerformanceResult {
  InstanceId?: string | undefined;
  BandwidthWeighting?: InstanceBandwidthWeighting | undefined;
}
export interface ModifyInstancePlacementRequest {
  GroupName?: string | undefined;
  PartitionNumber?: number | undefined;
  HostResourceGroupArn?: string | undefined;
  GroupId?: string | undefined;
  InstanceId: string | undefined;
  Tenancy?: HostTenancy | undefined;
  Affinity?: Affinity | undefined;
  HostId?: string | undefined;
}
export interface ModifyInstancePlacementResult {
  Return?: boolean | undefined;
}
export interface RemoveIpamOperatingRegion {
  RegionName?: string | undefined;
}
export interface ModifyIpamRequest {
  DryRun?: boolean | undefined;
  IpamId: string | undefined;
  Description?: string | undefined;
  AddOperatingRegions?: AddIpamOperatingRegion[] | undefined;
  RemoveOperatingRegions?: RemoveIpamOperatingRegion[] | undefined;
  Tier?: IpamTier | undefined;
  EnablePrivateGua?: boolean | undefined;
  MeteredAccount?: IpamMeteredAccount | undefined;
}
export interface ModifyIpamResult {
  Ipam?: Ipam | undefined;
}
export interface IpamPolicyAllocationRuleRequest {
  SourceIpamPoolId?: string | undefined;
}
export interface ModifyIpamPolicyAllocationRulesRequest {
  DryRun?: boolean | undefined;
  IpamPolicyId: string | undefined;
  Locale: string | undefined;
  ResourceType: IpamPolicyResourceType | undefined;
  AllocationRules?: IpamPolicyAllocationRuleRequest[] | undefined;
}
export interface ModifyIpamPolicyAllocationRulesResult {
  IpamPolicyDocument?: IpamPolicyDocument | undefined;
}
export interface ModifyIpamPoolRequest {
  DryRun?: boolean | undefined;
  IpamPoolId: string | undefined;
  Description?: string | undefined;
  AutoImport?: boolean | undefined;
  AllocationMinNetmaskLength?: number | undefined;
  AllocationMaxNetmaskLength?: number | undefined;
  AllocationDefaultNetmaskLength?: number | undefined;
  ClearAllocationDefaultNetmaskLength?: boolean | undefined;
  AddAllocationResourceTags?: RequestIpamResourceTag[] | undefined;
  RemoveAllocationResourceTags?: RequestIpamResourceTag[] | undefined;
}
export interface ModifyIpamPoolResult {
  IpamPool?: IpamPool | undefined;
}
