import {
  _InstanceType,
  AddedPrincipal,
  AddIpamOperatingRegion,
  AddPrefixListEntry,
  AddressAttribute,
  AddressAttributeName,
  Affinity,
  ApplianceModeSupportValue,
  AutoPlacement,
  ByoipCidr,
  ClientVpnAuthorizationRuleStatus,
  CurrencyCodeValues,
  DnsSupportValue,
  EnaSrdSpecification,
  EndDateType,
  HostMaintenance,
  HostRecovery,
  IamInstanceProfileAssociation,
  IamInstanceProfileSpecification,
  InstanceEventWindow,
  IpPermission,
  Ipv6SupportValue,
  PortRange,
  RouteTableAssociationState,
  Tag,
  TagSpecification,
  TransitGatewayMulticastDomainAssociations,
  TransitGatewayPeeringAttachment,
  TransitGatewayVpcAttachment,
  UnsuccessfulItem,
  VerifiedAccessInstance,
  VerifiedAccessTrustProvider,
} from "./models_0";
import {
  AmdSevSnpSpecification,
  AttributeValue,
  BlockDeviceMapping,
  CapacityReservationPreference,
  CapacityReservationTarget,
  ClientConnectOptions,
  ClientLoginBannerOptions,
  ConnectionLogOptions,
  CreditSpecificationRequest,
  DiskImageFormat,
  ElasticGpuSpecification,
  FleetExcessCapacityTerminationPolicy,
  FleetLaunchTemplateConfigRequest,
  HostnameType,
  IcmpTypeCode,
  InstanceEventWindowTimeRangeRequest,
  InstanceInterruptionBehavior,
  InstanceIpv6Address,
  Ipam,
  IpamPool,
  IpamResourceDiscovery,
  IpamScope,
  LaunchTemplate,
  LocalGatewayRoute,
  ManagedPrefixList,
  MarketType,
  Placement,
  PlatformValues,
  RequestIpamResourceTag,
  RuleAction,
  SelfServicePortal,
  ShutdownBehavior,
  SpotInstanceType,
  TargetCapacitySpecificationRequest,
  VolumeType,
} from "./models_1";
import {
  AutoAcceptSharedAttachmentsValue,
  DefaultRouteTableAssociationValue,
  DefaultRouteTablePropagationValue,
  DnsOptionsSpecification,
  IKEVersionsRequestListValue,
  IpAddressType,
  PayerResponsibility,
  Phase1DHGroupNumbersRequestListValue,
  Phase1EncryptionAlgorithmsRequestListValue,
  Phase1IntegrityAlgorithmsRequestListValue,
  Phase2DHGroupNumbersRequestListValue,
  Phase2EncryptionAlgorithmsRequestListValue,
  Phase2IntegrityAlgorithmsRequestListValue,
  SnapshotState,
  SSEType,
  TrafficDirection,
  TrafficMirrorFilter,
  TrafficMirrorFilterRule,
  TrafficMirrorNetworkService,
  TrafficMirrorPortRangeRequest,
  TrafficMirrorRuleAction,
  TrafficMirrorSession,
  TransitGateway,
  TransitGatewayPrefixListReference,
  TransitGatewayRoute,
  VerifiedAccessEndpoint,
  VerifiedAccessEndpointProtocol,
  VerifiedAccessGroup,
  VpnConnection,
  VpnEcmpSupportValue,
  VpnTunnelLogOptionsSpecification,
} from "./models_2";
import {
  ArchitectureValues,
  AttributeBooleanValue,
  BootModeValues,
  ConversionTask,
  FpgaImageAttribute,
  FpgaImageAttributeName,
  ImdsSupportValues,
  ImportImageLicenseConfigurationResponse,
  InstanceAttributeName,
  InstanceTagNotificationAttribute,
  IpamPoolCidr,
  LaunchPermission,
  PermissionGroup,
  SnapshotDetail,
  SnapshotTaskDetail,
  TpmSupportValues,
} from "./models_3";
import {
  CreateVolumePermission,
  ExcessCapacityTerminationPolicy,
  HttpTokensState,
  InstanceAutoRecoveryState,
  InstanceMetadataEndpointState,
  InstanceMetadataOptionsResponse,
  InstanceMetadataProtocolState,
  InstanceMetadataTagsState,
  InstanceNetworkInterfaceSpecification,
  InstanceStatusEvent,
  LaunchTemplateConfig,
  Monitoring,
  PublicIpv4PoolRange,
  ReservedInstancesConfiguration,
  RunInstancesMonitoringEnabled,
  ScheduledInstance,
  SnapshotAttributeName,
  SpotFleetRequestConfigData,
  SpotInstanceRequest,
  SpotPlacement,
} from "./models_4";
import {
  InstanceFamilyCreditSpecification,
  IpamResourceCidr,
  Purchase,
  UnlimitedSupportedInstanceFamily,
  VerifiedAccessInstanceLoggingConfiguration,
  VolumeModification,
} from "./models_5";
export interface ClientData {
  Comment?: string;
  UploadEnd?: Date;
  UploadSize?: number;
  UploadStart?: Date;
}
export interface UserBucket {
  S3Bucket?: string;
  S3Key?: string;
}
export interface ImageDiskContainer {
  Description?: string;
  DeviceName?: string;
  Format?: string;
  SnapshotId?: string;
  Url?: string;
  UserBucket?: UserBucket;
}
export interface ImportImageLicenseConfigurationRequest {
  LicenseConfigurationArn?: string;
}
export interface ImportImageRequest {
  Architecture?: string;
  ClientData?: ClientData;
  ClientToken?: string;
  Description?: string;
  DiskContainers?: ImageDiskContainer[];
  DryRun?: boolean;
  Encrypted?: boolean;
  Hypervisor?: string;
  KmsKeyId?: string;
  LicenseType?: string;
  Platform?: string;
  RoleName?: string;
  LicenseSpecifications?: ImportImageLicenseConfigurationRequest[];
  TagSpecifications?: TagSpecification[];
  UsageOperation?: string;
  BootMode?: BootModeValues | string;
}
export interface ImportImageResult {
  Architecture?: string;
  Description?: string;
  Encrypted?: boolean;
  Hypervisor?: string;
  ImageId?: string;
  ImportTaskId?: string;
  KmsKeyId?: string;
  LicenseType?: string;
  Platform?: string;
  Progress?: string;
  SnapshotDetails?: SnapshotDetail[];
  Status?: string;
  StatusMessage?: string;
  LicenseSpecifications?: ImportImageLicenseConfigurationResponse[];
  Tags?: Tag[];
  UsageOperation?: string;
}
export interface DiskImageDetail {
  Bytes: number | undefined;
  Format: DiskImageFormat | string | undefined;
  ImportManifestUrl: string | undefined;
}
export interface VolumeDetail {
  Size: number | undefined;
}
export interface DiskImage {
  Description?: string;
  Image?: DiskImageDetail;
  Volume?: VolumeDetail;
}
export interface UserData {
  Data?: string;
}
export interface ImportInstanceLaunchSpecification {
  AdditionalInfo?: string;
  Architecture?: ArchitectureValues | string;
  GroupIds?: string[];
  GroupNames?: string[];
  InstanceInitiatedShutdownBehavior?: ShutdownBehavior | string;
  InstanceType?: _InstanceType | string;
  Monitoring?: boolean;
  Placement?: Placement;
  PrivateIpAddress?: string;
  SubnetId?: string;
  UserData?: UserData;
}
export interface ImportInstanceRequest {
  Description?: string;
  DiskImages?: DiskImage[];
  DryRun?: boolean;
  LaunchSpecification?: ImportInstanceLaunchSpecification;
  Platform: PlatformValues | string | undefined;
}
export interface ImportInstanceResult {
  ConversionTask?: ConversionTask;
}
export interface ImportKeyPairRequest {
  DryRun?: boolean;
  KeyName: string | undefined;
  PublicKeyMaterial: Uint8Array | undefined;
  TagSpecifications?: TagSpecification[];
}
export interface ImportKeyPairResult {
  KeyFingerprint?: string;
  KeyName?: string;
  KeyPairId?: string;
  Tags?: Tag[];
}
export interface SnapshotDiskContainer {
  Description?: string;
  Format?: string;
  Url?: string;
  UserBucket?: UserBucket;
}
export interface ImportSnapshotRequest {
  ClientData?: ClientData;
  ClientToken?: string;
  Description?: string;
  DiskContainer?: SnapshotDiskContainer;
  DryRun?: boolean;
  Encrypted?: boolean;
  KmsKeyId?: string;
  RoleName?: string;
  TagSpecifications?: TagSpecification[];
}
export interface ImportSnapshotResult {
  Description?: string;
  ImportTaskId?: string;
  SnapshotTaskDetail?: SnapshotTaskDetail;
  Tags?: Tag[];
}
export interface ImportVolumeRequest {
  AvailabilityZone: string | undefined;
  Description?: string;
  DryRun?: boolean;
  Image: DiskImageDetail | undefined;
  Volume: VolumeDetail | undefined;
}
export interface ImportVolumeResult {
  ConversionTask?: ConversionTask;
}
export interface ListImagesInRecycleBinRequest {
  ImageIds?: string[];
  NextToken?: string;
  MaxResults?: number;
  DryRun?: boolean;
}
export interface ImageRecycleBinInfo {
  ImageId?: string;
  Name?: string;
  Description?: string;
  RecycleBinEnterTime?: Date;
  RecycleBinExitTime?: Date;
}
export interface ListImagesInRecycleBinResult {
  Images?: ImageRecycleBinInfo[];
  NextToken?: string;
}
export interface ListSnapshotsInRecycleBinRequest {
  MaxResults?: number;
  NextToken?: string;
  SnapshotIds?: string[];
  DryRun?: boolean;
}
export interface SnapshotRecycleBinInfo {
  SnapshotId?: string;
  RecycleBinEnterTime?: Date;
  RecycleBinExitTime?: Date;
  Description?: string;
  VolumeId?: string;
}
export interface ListSnapshotsInRecycleBinResult {
  Snapshots?: SnapshotRecycleBinInfo[];
  NextToken?: string;
}
export interface ModifyAddressAttributeRequest {
  AllocationId: string | undefined;
  DomainName?: string;
  DryRun?: boolean;
}
export interface ModifyAddressAttributeResult {
  Address?: AddressAttribute;
}
export declare const ModifyAvailabilityZoneOptInStatus: {
  readonly not_opted_in: "not-opted-in";
  readonly opted_in: "opted-in";
};
export type ModifyAvailabilityZoneOptInStatus =
  (typeof ModifyAvailabilityZoneOptInStatus)[keyof typeof ModifyAvailabilityZoneOptInStatus];
export interface ModifyAvailabilityZoneGroupRequest {
  GroupName: string | undefined;
  OptInStatus: ModifyAvailabilityZoneOptInStatus | string | undefined;
  DryRun?: boolean;
}
export interface ModifyAvailabilityZoneGroupResult {
  Return?: boolean;
}
export interface ModifyCapacityReservationRequest {
  CapacityReservationId: string | undefined;
  InstanceCount?: number;
  EndDate?: Date;
  EndDateType?: EndDateType | string;
  Accept?: boolean;
  DryRun?: boolean;
  AdditionalInfo?: string;
}
export interface ModifyCapacityReservationResult {
  Return?: boolean;
}
export interface ModifyCapacityReservationFleetRequest {
  CapacityReservationFleetId: string | undefined;
  TotalTargetCapacity?: number;
  EndDate?: Date;
  DryRun?: boolean;
  RemoveEndDate?: boolean;
}
export interface ModifyCapacityReservationFleetResult {
  Return?: boolean;
}
export interface DnsServersOptionsModifyStructure {
  CustomDnsServers?: string[];
  Enabled?: boolean;
}
export interface ModifyClientVpnEndpointRequest {
  ClientVpnEndpointId: string | undefined;
  ServerCertificateArn?: string;
  ConnectionLogOptions?: ConnectionLogOptions;
  DnsServers?: DnsServersOptionsModifyStructure;
  VpnPort?: number;
  Description?: string;
  SplitTunnel?: boolean;
  DryRun?: boolean;
  SecurityGroupIds?: string[];
  VpcId?: string;
  SelfServicePortal?: SelfServicePortal | string;
  ClientConnectOptions?: ClientConnectOptions;
  SessionTimeoutHours?: number;
  ClientLoginBannerOptions?: ClientLoginBannerOptions;
}
export interface ModifyClientVpnEndpointResult {
  Return?: boolean;
}
export interface ModifyDefaultCreditSpecificationRequest {
  DryRun?: boolean;
  InstanceFamily: UnlimitedSupportedInstanceFamily | string | undefined;
  CpuCredits: string | undefined;
}
export interface ModifyDefaultCreditSpecificationResult {
  InstanceFamilyCreditSpecification?: InstanceFamilyCreditSpecification;
}
export interface ModifyEbsDefaultKmsKeyIdRequest {
  KmsKeyId: string | undefined;
  DryRun?: boolean;
}
export interface ModifyEbsDefaultKmsKeyIdResult {
  KmsKeyId?: string;
}
export interface ModifyFleetRequest {
  DryRun?: boolean;
  ExcessCapacityTerminationPolicy?:
    | FleetExcessCapacityTerminationPolicy
    | string;
  LaunchTemplateConfigs?: FleetLaunchTemplateConfigRequest[];
  FleetId: string | undefined;
  TargetCapacitySpecification?: TargetCapacitySpecificationRequest;
  Context?: string;
}
export interface ModifyFleetResult {
  Return?: boolean;
}
export interface LoadPermissionRequest {
  Group?: PermissionGroup | string;
  UserId?: string;
}
export interface LoadPermissionModifications {
  Add?: LoadPermissionRequest[];
  Remove?: LoadPermissionRequest[];
}
export declare const OperationType: {
  readonly add: "add";
  readonly remove: "remove";
};
export type OperationType = (typeof OperationType)[keyof typeof OperationType];
export interface ModifyFpgaImageAttributeRequest {
  DryRun?: boolean;
  FpgaImageId: string | undefined;
  Attribute?: FpgaImageAttributeName | string;
  OperationType?: OperationType | string;
  UserIds?: string[];
  UserGroups?: string[];
  ProductCodes?: string[];
  LoadPermission?: LoadPermissionModifications;
  Description?: string;
  Name?: string;
}
export interface ModifyFpgaImageAttributeResult {
  FpgaImageAttribute?: FpgaImageAttribute;
}
export interface ModifyHostsRequest {
  AutoPlacement?: AutoPlacement | string;
  HostIds: string[] | undefined;
  HostRecovery?: HostRecovery | string;
  InstanceType?: string;
  InstanceFamily?: string;
  HostMaintenance?: HostMaintenance | string;
}
export interface ModifyHostsResult {
  Successful?: string[];
  Unsuccessful?: UnsuccessfulItem[];
}
export interface ModifyIdentityIdFormatRequest {
  PrincipalArn: string | undefined;
  Resource: string | undefined;
  UseLongIds: boolean | undefined;
}
export interface ModifyIdFormatRequest {
  Resource: string | undefined;
  UseLongIds: boolean | undefined;
}
export interface LaunchPermissionModifications {
  Add?: LaunchPermission[];
  Remove?: LaunchPermission[];
}
export interface ModifyImageAttributeRequest {
  Attribute?: string;
  Description?: AttributeValue;
  ImageId: string | undefined;
  LaunchPermission?: LaunchPermissionModifications;
  OperationType?: OperationType | string;
  ProductCodes?: string[];
  UserGroups?: string[];
  UserIds?: string[];
  Value?: string;
  DryRun?: boolean;
  OrganizationArns?: string[];
  OrganizationalUnitArns?: string[];
  ImdsSupport?: AttributeValue;
}
export interface EbsInstanceBlockDeviceSpecification {
  DeleteOnTermination?: boolean;
  VolumeId?: string;
}
export interface InstanceBlockDeviceMappingSpecification {
  DeviceName?: string;
  Ebs?: EbsInstanceBlockDeviceSpecification;
  NoDevice?: string;
  VirtualName?: string;
}
export interface BlobAttributeValue {
  Value?: Uint8Array;
}
export interface ModifyInstanceAttributeRequest {
  SourceDestCheck?: AttributeBooleanValue;
  Attribute?: InstanceAttributeName | string;
  BlockDeviceMappings?: InstanceBlockDeviceMappingSpecification[];
  DisableApiTermination?: AttributeBooleanValue;
  DryRun?: boolean;
  EbsOptimized?: AttributeBooleanValue;
  EnaSupport?: AttributeBooleanValue;
  Groups?: string[];
  InstanceId: string | undefined;
  InstanceInitiatedShutdownBehavior?: AttributeValue;
  InstanceType?: AttributeValue;
  Kernel?: AttributeValue;
  Ramdisk?: AttributeValue;
  SriovNetSupport?: AttributeValue;
  UserData?: BlobAttributeValue;
  Value?: string;
  DisableApiStop?: AttributeBooleanValue;
}
export interface CapacityReservationSpecification {
  CapacityReservationPreference?: CapacityReservationPreference | string;
  CapacityReservationTarget?: CapacityReservationTarget;
}
export interface ModifyInstanceCapacityReservationAttributesRequest {
  InstanceId: string | undefined;
  CapacityReservationSpecification:
    | CapacityReservationSpecification
    | undefined;
  DryRun?: boolean;
}
export interface ModifyInstanceCapacityReservationAttributesResult {
  Return?: boolean;
}
export interface InstanceCreditSpecificationRequest {
  InstanceId: string | undefined;
  CpuCredits?: string;
}
export interface ModifyInstanceCreditSpecificationRequest {
  DryRun?: boolean;
  ClientToken?: string;
  InstanceCreditSpecifications:
    | InstanceCreditSpecificationRequest[]
    | undefined;
}
export interface SuccessfulInstanceCreditSpecificationItem {
  InstanceId?: string;
}
export declare const UnsuccessfulInstanceCreditSpecificationErrorCode: {
  readonly INCORRECT_INSTANCE_STATE: "IncorrectInstanceState";
  readonly INSTANCE_CREDIT_SPECIFICATION_NOT_SUPPORTED: "InstanceCreditSpecification.NotSupported";
  readonly INSTANCE_NOT_FOUND: "InvalidInstanceID.NotFound";
  readonly INVALID_INSTANCE_ID: "InvalidInstanceID.Malformed";
};
export type UnsuccessfulInstanceCreditSpecificationErrorCode =
  (typeof UnsuccessfulInstanceCreditSpecificationErrorCode)[keyof typeof UnsuccessfulInstanceCreditSpecificationErrorCode];
export interface UnsuccessfulInstanceCreditSpecificationItemError {
  Code?: UnsuccessfulInstanceCreditSpecificationErrorCode | string;
  Message?: string;
}
export interface UnsuccessfulInstanceCreditSpecificationItem {
  InstanceId?: string;
  Error?: UnsuccessfulInstanceCreditSpecificationItemError;
}
export interface ModifyInstanceCreditSpecificationResult {
  SuccessfulInstanceCreditSpecifications?: SuccessfulInstanceCreditSpecificationItem[];
  UnsuccessfulInstanceCreditSpecifications?: UnsuccessfulInstanceCreditSpecificationItem[];
}
export interface ModifyInstanceEventStartTimeRequest {
  DryRun?: boolean;
  InstanceId: string | undefined;
  InstanceEventId: string | undefined;
  NotBefore: Date | undefined;
}
export interface ModifyInstanceEventStartTimeResult {
  Event?: InstanceStatusEvent;
}
export interface ModifyInstanceEventWindowRequest {
  DryRun?: boolean;
  Name?: string;
  InstanceEventWindowId: string | undefined;
  TimeRanges?: InstanceEventWindowTimeRangeRequest[];
  CronExpression?: string;
}
export interface ModifyInstanceEventWindowResult {
  InstanceEventWindow?: InstanceEventWindow;
}
export interface ModifyInstanceMaintenanceOptionsRequest {
  InstanceId: string | undefined;
  AutoRecovery?: InstanceAutoRecoveryState | string;
  DryRun?: boolean;
}
export interface ModifyInstanceMaintenanceOptionsResult {
  InstanceId?: string;
  AutoRecovery?: InstanceAutoRecoveryState | string;
}
export interface ModifyInstanceMetadataOptionsRequest {
  InstanceId: string | undefined;
  HttpTokens?: HttpTokensState | string;
  HttpPutResponseHopLimit?: number;
  HttpEndpoint?: InstanceMetadataEndpointState | string;
  DryRun?: boolean;
  HttpProtocolIpv6?: InstanceMetadataProtocolState | string;
  InstanceMetadataTags?: InstanceMetadataTagsState | string;
}
export interface ModifyInstanceMetadataOptionsResult {
  InstanceId?: string;
  InstanceMetadataOptions?: InstanceMetadataOptionsResponse;
}
export declare const HostTenancy: {
  readonly dedicated: "dedicated";
  readonly host: "host";
};
export type HostTenancy = (typeof HostTenancy)[keyof typeof HostTenancy];
export interface ModifyInstancePlacementRequest {
  Affinity?: Affinity | string;
  GroupName?: string;
  HostId?: string;
  InstanceId: string | undefined;
  Tenancy?: HostTenancy | string;
  PartitionNumber?: number;
  HostResourceGroupArn?: string;
  GroupId?: string;
}
export interface ModifyInstancePlacementResult {
  Return?: boolean;
}
export interface RemoveIpamOperatingRegion {
  RegionName?: string;
}
export interface ModifyIpamRequest {
  DryRun?: boolean;
  IpamId: string | undefined;
  Description?: string;
  AddOperatingRegions?: AddIpamOperatingRegion[];
  RemoveOperatingRegions?: RemoveIpamOperatingRegion[];
}
export interface ModifyIpamResult {
  Ipam?: Ipam;
}
export interface ModifyIpamPoolRequest {
  DryRun?: boolean;
  IpamPoolId: string | undefined;
  Description?: string;
  AutoImport?: boolean;
  AllocationMinNetmaskLength?: number;
  AllocationMaxNetmaskLength?: number;
  AllocationDefaultNetmaskLength?: number;
  ClearAllocationDefaultNetmaskLength?: boolean;
  AddAllocationResourceTags?: RequestIpamResourceTag[];
  RemoveAllocationResourceTags?: RequestIpamResourceTag[];
}
export interface ModifyIpamPoolResult {
  IpamPool?: IpamPool;
}
export interface ModifyIpamResourceCidrRequest {
  DryRun?: boolean;
  ResourceId: string | undefined;
  ResourceCidr: string | undefined;
  ResourceRegion: string | undefined;
  CurrentIpamScopeId: string | undefined;
  DestinationIpamScopeId?: string;
  Monitored: boolean | undefined;
}
export interface ModifyIpamResourceCidrResult {
  IpamResourceCidr?: IpamResourceCidr;
}
export interface ModifyIpamResourceDiscoveryRequest {
  DryRun?: boolean;
  IpamResourceDiscoveryId: string | undefined;
  Description?: string;
  AddOperatingRegions?: AddIpamOperatingRegion[];
  RemoveOperatingRegions?: RemoveIpamOperatingRegion[];
}
export interface ModifyIpamResourceDiscoveryResult {
  IpamResourceDiscovery?: IpamResourceDiscovery;
}
export interface ModifyIpamScopeRequest {
  DryRun?: boolean;
  IpamScopeId: string | undefined;
  Description?: string;
}
export interface ModifyIpamScopeResult {
  IpamScope?: IpamScope;
}
export interface ModifyLaunchTemplateRequest {
  DryRun?: boolean;
  ClientToken?: string;
  LaunchTemplateId?: string;
  LaunchTemplateName?: string;
  DefaultVersion?: string;
}
export interface ModifyLaunchTemplateResult {
  LaunchTemplate?: LaunchTemplate;
}
export interface ModifyLocalGatewayRouteRequest {
  DestinationCidrBlock?: string;
  LocalGatewayRouteTableId: string | undefined;
  LocalGatewayVirtualInterfaceGroupId?: string;
  NetworkInterfaceId?: string;
  DryRun?: boolean;
  DestinationPrefixListId?: string;
}
export interface ModifyLocalGatewayRouteResult {
  Route?: LocalGatewayRoute;
}
export interface RemovePrefixListEntry {
  Cidr: string | undefined;
}
export interface ModifyManagedPrefixListRequest {
  DryRun?: boolean;
  PrefixListId: string | undefined;
  CurrentVersion?: number;
  PrefixListName?: string;
  AddEntries?: AddPrefixListEntry[];
  RemoveEntries?: RemovePrefixListEntry[];
  MaxEntries?: number;
}
export interface ModifyManagedPrefixListResult {
  PrefixList?: ManagedPrefixList;
}
export interface NetworkInterfaceAttachmentChanges {
  AttachmentId?: string;
  DeleteOnTermination?: boolean;
}
export interface ModifyNetworkInterfaceAttributeRequest {
  Attachment?: NetworkInterfaceAttachmentChanges;
  Description?: AttributeValue;
  DryRun?: boolean;
  Groups?: string[];
  NetworkInterfaceId: string | undefined;
  SourceDestCheck?: AttributeBooleanValue;
  EnaSrdSpecification?: EnaSrdSpecification;
}
export interface ModifyPrivateDnsNameOptionsRequest {
  DryRun?: boolean;
  InstanceId: string | undefined;
  PrivateDnsHostnameType?: HostnameType | string;
  EnableResourceNameDnsARecord?: boolean;
  EnableResourceNameDnsAAAARecord?: boolean;
}
export interface ModifyPrivateDnsNameOptionsResult {
  Return?: boolean;
}
export interface ModifyReservedInstancesRequest {
  ReservedInstancesIds: string[] | undefined;
  ClientToken?: string;
  TargetConfigurations: ReservedInstancesConfiguration[] | undefined;
}
export interface ModifyReservedInstancesResult {
  ReservedInstancesModificationId?: string;
}
export interface SecurityGroupRuleRequest {
  IpProtocol?: string;
  FromPort?: number;
  ToPort?: number;
  CidrIpv4?: string;
  CidrIpv6?: string;
  PrefixListId?: string;
  ReferencedGroupId?: string;
  Description?: string;
}
export interface SecurityGroupRuleUpdate {
  SecurityGroupRuleId: string | undefined;
  SecurityGroupRule?: SecurityGroupRuleRequest;
}
export interface ModifySecurityGroupRulesRequest {
  GroupId: string | undefined;
  SecurityGroupRules: SecurityGroupRuleUpdate[] | undefined;
  DryRun?: boolean;
}
export interface ModifySecurityGroupRulesResult {
  Return?: boolean;
}
export interface CreateVolumePermissionModifications {
  Add?: CreateVolumePermission[];
  Remove?: CreateVolumePermission[];
}
export interface ModifySnapshotAttributeRequest {
  Attribute?: SnapshotAttributeName | string;
  CreateVolumePermission?: CreateVolumePermissionModifications;
  GroupNames?: string[];
  OperationType?: OperationType | string;
  SnapshotId: string | undefined;
  UserIds?: string[];
  DryRun?: boolean;
}
export declare const TargetStorageTier: {
  readonly archive: "archive";
};
export type TargetStorageTier =
  (typeof TargetStorageTier)[keyof typeof TargetStorageTier];
export interface ModifySnapshotTierRequest {
  SnapshotId: string | undefined;
  StorageTier?: TargetStorageTier | string;
  DryRun?: boolean;
}
export interface ModifySnapshotTierResult {
  SnapshotId?: string;
  TieringStartTime?: Date;
}
export interface ModifySpotFleetRequestRequest {
  ExcessCapacityTerminationPolicy?: ExcessCapacityTerminationPolicy | string;
  LaunchTemplateConfigs?: LaunchTemplateConfig[];
  SpotFleetRequestId: string | undefined;
  TargetCapacity?: number;
  OnDemandTargetCapacity?: number;
  Context?: string;
}
export interface ModifySpotFleetRequestResponse {
  Return?: boolean;
}
export interface ModifySubnetAttributeRequest {
  AssignIpv6AddressOnCreation?: AttributeBooleanValue;
  MapPublicIpOnLaunch?: AttributeBooleanValue;
  SubnetId: string | undefined;
  MapCustomerOwnedIpOnLaunch?: AttributeBooleanValue;
  CustomerOwnedIpv4Pool?: string;
  EnableDns64?: AttributeBooleanValue;
  PrivateDnsHostnameTypeOnLaunch?: HostnameType | string;
  EnableResourceNameDnsARecordOnLaunch?: AttributeBooleanValue;
  EnableResourceNameDnsAAAARecordOnLaunch?: AttributeBooleanValue;
  EnableLniAtDeviceIndex?: number;
  DisableLniAtDeviceIndex?: AttributeBooleanValue;
}
export interface ModifyTrafficMirrorFilterNetworkServicesRequest {
  TrafficMirrorFilterId: string | undefined;
  AddNetworkServices?: (TrafficMirrorNetworkService | string)[];
  RemoveNetworkServices?: (TrafficMirrorNetworkService | string)[];
  DryRun?: boolean;
}
export interface ModifyTrafficMirrorFilterNetworkServicesResult {
  TrafficMirrorFilter?: TrafficMirrorFilter;
}
export declare const TrafficMirrorFilterRuleField: {
  readonly description: "description";
  readonly destination_port_range: "destination-port-range";
  readonly protocol: "protocol";
  readonly source_port_range: "source-port-range";
};
export type TrafficMirrorFilterRuleField =
  (typeof TrafficMirrorFilterRuleField)[keyof typeof TrafficMirrorFilterRuleField];
export interface ModifyTrafficMirrorFilterRuleRequest {
  TrafficMirrorFilterRuleId: string | undefined;
  TrafficDirection?: TrafficDirection | string;
  RuleNumber?: number;
  RuleAction?: TrafficMirrorRuleAction | string;
  DestinationPortRange?: TrafficMirrorPortRangeRequest;
  SourcePortRange?: TrafficMirrorPortRangeRequest;
  Protocol?: number;
  DestinationCidrBlock?: string;
  SourceCidrBlock?: string;
  Description?: string;
  RemoveFields?: (TrafficMirrorFilterRuleField | string)[];
  DryRun?: boolean;
}
export interface ModifyTrafficMirrorFilterRuleResult {
  TrafficMirrorFilterRule?: TrafficMirrorFilterRule;
}
export declare const TrafficMirrorSessionField: {
  readonly description: "description";
  readonly packet_length: "packet-length";
  readonly virtual_network_id: "virtual-network-id";
};
export type TrafficMirrorSessionField =
  (typeof TrafficMirrorSessionField)[keyof typeof TrafficMirrorSessionField];
export interface ModifyTrafficMirrorSessionRequest {
  TrafficMirrorSessionId: string | undefined;
  TrafficMirrorTargetId?: string;
  TrafficMirrorFilterId?: string;
  PacketLength?: number;
  SessionNumber?: number;
  VirtualNetworkId?: number;
  Description?: string;
  RemoveFields?: (TrafficMirrorSessionField | string)[];
  DryRun?: boolean;
}
export interface ModifyTrafficMirrorSessionResult {
  TrafficMirrorSession?: TrafficMirrorSession;
}
export interface ModifyTransitGatewayOptions {
  AddTransitGatewayCidrBlocks?: string[];
  RemoveTransitGatewayCidrBlocks?: string[];
  VpnEcmpSupport?: VpnEcmpSupportValue | string;
  DnsSupport?: DnsSupportValue | string;
  AutoAcceptSharedAttachments?: AutoAcceptSharedAttachmentsValue | string;
  DefaultRouteTableAssociation?: DefaultRouteTableAssociationValue | string;
  AssociationDefaultRouteTableId?: string;
  DefaultRouteTablePropagation?: DefaultRouteTablePropagationValue | string;
  PropagationDefaultRouteTableId?: string;
  AmazonSideAsn?: number;
}
export interface ModifyTransitGatewayRequest {
  TransitGatewayId: string | undefined;
  Description?: string;
  Options?: ModifyTransitGatewayOptions;
  DryRun?: boolean;
}
export interface ModifyTransitGatewayResult {
  TransitGateway?: TransitGateway;
}
export interface ModifyTransitGatewayPrefixListReferenceRequest {
  TransitGatewayRouteTableId: string | undefined;
  PrefixListId: string | undefined;
  TransitGatewayAttachmentId?: string;
  Blackhole?: boolean;
  DryRun?: boolean;
}
export interface ModifyTransitGatewayPrefixListReferenceResult {
  TransitGatewayPrefixListReference?: TransitGatewayPrefixListReference;
}
export interface ModifyTransitGatewayVpcAttachmentRequestOptions {
  DnsSupport?: DnsSupportValue | string;
  Ipv6Support?: Ipv6SupportValue | string;
  ApplianceModeSupport?: ApplianceModeSupportValue | string;
}
export interface ModifyTransitGatewayVpcAttachmentRequest {
  TransitGatewayAttachmentId: string | undefined;
  AddSubnetIds?: string[];
  RemoveSubnetIds?: string[];
  Options?: ModifyTransitGatewayVpcAttachmentRequestOptions;
  DryRun?: boolean;
}
export interface ModifyTransitGatewayVpcAttachmentResult {
  TransitGatewayVpcAttachment?: TransitGatewayVpcAttachment;
}
export interface ModifyVerifiedAccessEndpointLoadBalancerOptions {
  SubnetIds?: string[];
  Protocol?: VerifiedAccessEndpointProtocol | string;
  Port?: number;
}
export interface ModifyVerifiedAccessEndpointEniOptions {
  Protocol?: VerifiedAccessEndpointProtocol | string;
  Port?: number;
}
export interface ModifyVerifiedAccessEndpointRequest {
  VerifiedAccessEndpointId: string | undefined;
  VerifiedAccessGroupId?: string;
  LoadBalancerOptions?: ModifyVerifiedAccessEndpointLoadBalancerOptions;
  NetworkInterfaceOptions?: ModifyVerifiedAccessEndpointEniOptions;
  Description?: string;
  ClientToken?: string;
  DryRun?: boolean;
}
export interface ModifyVerifiedAccessEndpointResult {
  VerifiedAccessEndpoint?: VerifiedAccessEndpoint;
}
export interface ModifyVerifiedAccessEndpointPolicyRequest {
  VerifiedAccessEndpointId: string | undefined;
  PolicyEnabled: boolean | undefined;
  PolicyDocument?: string;
  ClientToken?: string;
  DryRun?: boolean;
}
export interface ModifyVerifiedAccessEndpointPolicyResult {
  PolicyEnabled?: boolean;
  PolicyDocument?: string;
}
export interface ModifyVerifiedAccessGroupRequest {
  VerifiedAccessGroupId: string | undefined;
  VerifiedAccessInstanceId?: string;
  Description?: string;
  ClientToken?: string;
  DryRun?: boolean;
}
export interface ModifyVerifiedAccessGroupResult {
  VerifiedAccessGroup?: VerifiedAccessGroup;
}
export interface ModifyVerifiedAccessGroupPolicyRequest {
  VerifiedAccessGroupId: string | undefined;
  PolicyEnabled: boolean | undefined;
  PolicyDocument?: string;
  ClientToken?: string;
  DryRun?: boolean;
}
export interface ModifyVerifiedAccessGroupPolicyResult {
  PolicyEnabled?: boolean;
  PolicyDocument?: string;
}
export interface ModifyVerifiedAccessInstanceRequest {
  VerifiedAccessInstanceId: string | undefined;
  Description?: string;
  DryRun?: boolean;
  ClientToken?: string;
}
export interface ModifyVerifiedAccessInstanceResult {
  VerifiedAccessInstance?: VerifiedAccessInstance;
}
export interface VerifiedAccessLogCloudWatchLogsDestinationOptions {
  Enabled: boolean | undefined;
  LogGroup?: string;
}
export interface VerifiedAccessLogKinesisDataFirehoseDestinationOptions {
  Enabled: boolean | undefined;
  DeliveryStream?: string;
}
export interface VerifiedAccessLogS3DestinationOptions {
  Enabled: boolean | undefined;
  BucketName?: string;
  Prefix?: string;
  BucketOwner?: string;
}
export interface VerifiedAccessLogOptions {
  S3?: VerifiedAccessLogS3DestinationOptions;
  CloudWatchLogs?: VerifiedAccessLogCloudWatchLogsDestinationOptions;
  KinesisDataFirehose?: VerifiedAccessLogKinesisDataFirehoseDestinationOptions;
  LogVersion?: string;
  IncludeTrustContext?: boolean;
}
export interface ModifyVerifiedAccessInstanceLoggingConfigurationRequest {
  VerifiedAccessInstanceId: string | undefined;
  AccessLogs: VerifiedAccessLogOptions | undefined;
  DryRun?: boolean;
  ClientToken?: string;
}
export interface ModifyVerifiedAccessInstanceLoggingConfigurationResult {
  LoggingConfiguration?: VerifiedAccessInstanceLoggingConfiguration;
}
export interface ModifyVerifiedAccessTrustProviderOidcOptions {
  Issuer?: string;
  AuthorizationEndpoint?: string;
  TokenEndpoint?: string;
  UserInfoEndpoint?: string;
  ClientId?: string;
  ClientSecret?: string;
  Scope?: string;
}
export interface ModifyVerifiedAccessTrustProviderRequest {
  VerifiedAccessTrustProviderId: string | undefined;
  OidcOptions?: ModifyVerifiedAccessTrustProviderOidcOptions;
  Description?: string;
  DryRun?: boolean;
  ClientToken?: string;
}
export interface ModifyVerifiedAccessTrustProviderResult {
  VerifiedAccessTrustProvider?: VerifiedAccessTrustProvider;
}
export interface ModifyVolumeRequest {
  DryRun?: boolean;
  VolumeId: string | undefined;
  Size?: number;
  VolumeType?: VolumeType | string;
  Iops?: number;
  Throughput?: number;
  MultiAttachEnabled?: boolean;
}
export interface ModifyVolumeResult {
  VolumeModification?: VolumeModification;
}
export interface ModifyVolumeAttributeRequest {
  AutoEnableIO?: AttributeBooleanValue;
  VolumeId: string | undefined;
  DryRun?: boolean;
}
export interface ModifyVpcAttributeRequest {
  EnableDnsHostnames?: AttributeBooleanValue;
  EnableDnsSupport?: AttributeBooleanValue;
  VpcId: string | undefined;
  EnableNetworkAddressUsageMetrics?: AttributeBooleanValue;
}
export interface ModifyVpcEndpointRequest {
  DryRun?: boolean;
  VpcEndpointId: string | undefined;
  ResetPolicy?: boolean;
  PolicyDocument?: string;
  AddRouteTableIds?: string[];
  RemoveRouteTableIds?: string[];
  AddSubnetIds?: string[];
  RemoveSubnetIds?: string[];
  AddSecurityGroupIds?: string[];
  RemoveSecurityGroupIds?: string[];
  IpAddressType?: IpAddressType | string;
  DnsOptions?: DnsOptionsSpecification;
  PrivateDnsEnabled?: boolean;
}
export interface ModifyVpcEndpointResult {
  Return?: boolean;
}
export interface ModifyVpcEndpointConnectionNotificationRequest {
  DryRun?: boolean;
  ConnectionNotificationId: string | undefined;
  ConnectionNotificationArn?: string;
  ConnectionEvents?: string[];
}
export interface ModifyVpcEndpointConnectionNotificationResult {
  ReturnValue?: boolean;
}
export interface ModifyVpcEndpointServiceConfigurationRequest {
  DryRun?: boolean;
  ServiceId: string | undefined;
  PrivateDnsName?: string;
  RemovePrivateDnsName?: boolean;
  AcceptanceRequired?: boolean;
  AddNetworkLoadBalancerArns?: string[];
  RemoveNetworkLoadBalancerArns?: string[];
  AddGatewayLoadBalancerArns?: string[];
  RemoveGatewayLoadBalancerArns?: string[];
  AddSupportedIpAddressTypes?: string[];
  RemoveSupportedIpAddressTypes?: string[];
}
export interface ModifyVpcEndpointServiceConfigurationResult {
  Return?: boolean;
}
export interface ModifyVpcEndpointServicePayerResponsibilityRequest {
  DryRun?: boolean;
  ServiceId: string | undefined;
  PayerResponsibility: PayerResponsibility | string | undefined;
}
export interface ModifyVpcEndpointServicePayerResponsibilityResult {
  ReturnValue?: boolean;
}
export interface ModifyVpcEndpointServicePermissionsRequest {
  DryRun?: boolean;
  ServiceId: string | undefined;
  AddAllowedPrincipals?: string[];
  RemoveAllowedPrincipals?: string[];
}
export interface ModifyVpcEndpointServicePermissionsResult {
  AddedPrincipals?: AddedPrincipal[];
  ReturnValue?: boolean;
}
export interface PeeringConnectionOptionsRequest {
  AllowDnsResolutionFromRemoteVpc?: boolean;
  AllowEgressFromLocalClassicLinkToRemoteVpc?: boolean;
  AllowEgressFromLocalVpcToRemoteClassicLink?: boolean;
}
export interface ModifyVpcPeeringConnectionOptionsRequest {
  AccepterPeeringConnectionOptions?: PeeringConnectionOptionsRequest;
  DryRun?: boolean;
  RequesterPeeringConnectionOptions?: PeeringConnectionOptionsRequest;
  VpcPeeringConnectionId: string | undefined;
}
export interface PeeringConnectionOptions {
  AllowDnsResolutionFromRemoteVpc?: boolean;
  AllowEgressFromLocalClassicLinkToRemoteVpc?: boolean;
  AllowEgressFromLocalVpcToRemoteClassicLink?: boolean;
}
export interface ModifyVpcPeeringConnectionOptionsResult {
  AccepterPeeringConnectionOptions?: PeeringConnectionOptions;
  RequesterPeeringConnectionOptions?: PeeringConnectionOptions;
}
export declare const VpcTenancy: {
  readonly default: "default";
};
export type VpcTenancy = (typeof VpcTenancy)[keyof typeof VpcTenancy];
export interface ModifyVpcTenancyRequest {
  VpcId: string | undefined;
  InstanceTenancy: VpcTenancy | string | undefined;
  DryRun?: boolean;
}
export interface ModifyVpcTenancyResult {
  ReturnValue?: boolean;
}
export interface ModifyVpnConnectionRequest {
  VpnConnectionId: string | undefined;
  TransitGatewayId?: string;
  CustomerGatewayId?: string;
  VpnGatewayId?: string;
  DryRun?: boolean;
}
export interface ModifyVpnConnectionResult {
  VpnConnection?: VpnConnection;
}
export interface ModifyVpnConnectionOptionsRequest {
  VpnConnectionId: string | undefined;
  LocalIpv4NetworkCidr?: string;
  RemoteIpv4NetworkCidr?: string;
  LocalIpv6NetworkCidr?: string;
  RemoteIpv6NetworkCidr?: string;
  DryRun?: boolean;
}
export interface ModifyVpnConnectionOptionsResult {
  VpnConnection?: VpnConnection;
}
export interface ModifyVpnTunnelCertificateRequest {
  VpnConnectionId: string | undefined;
  VpnTunnelOutsideIpAddress: string | undefined;
  DryRun?: boolean;
}
export interface ModifyVpnTunnelCertificateResult {
  VpnConnection?: VpnConnection;
}
export interface ModifyVpnTunnelOptionsSpecification {
  TunnelInsideCidr?: string;
  TunnelInsideIpv6Cidr?: string;
  PreSharedKey?: string;
  Phase1LifetimeSeconds?: number;
  Phase2LifetimeSeconds?: number;
  RekeyMarginTimeSeconds?: number;
  RekeyFuzzPercentage?: number;
  ReplayWindowSize?: number;
  DPDTimeoutSeconds?: number;
  DPDTimeoutAction?: string;
  Phase1EncryptionAlgorithms?: Phase1EncryptionAlgorithmsRequestListValue[];
  Phase2EncryptionAlgorithms?: Phase2EncryptionAlgorithmsRequestListValue[];
  Phase1IntegrityAlgorithms?: Phase1IntegrityAlgorithmsRequestListValue[];
  Phase2IntegrityAlgorithms?: Phase2IntegrityAlgorithmsRequestListValue[];
  Phase1DHGroupNumbers?: Phase1DHGroupNumbersRequestListValue[];
  Phase2DHGroupNumbers?: Phase2DHGroupNumbersRequestListValue[];
  IKEVersions?: IKEVersionsRequestListValue[];
  StartupAction?: string;
  LogOptions?: VpnTunnelLogOptionsSpecification;
  EnableTunnelLifecycleControl?: boolean;
}
export interface ModifyVpnTunnelOptionsRequest {
  VpnConnectionId: string | undefined;
  VpnTunnelOutsideIpAddress: string | undefined;
  TunnelOptions: ModifyVpnTunnelOptionsSpecification | undefined;
  DryRun?: boolean;
  SkipTunnelReplacement?: boolean;
}
export interface ModifyVpnTunnelOptionsResult {
  VpnConnection?: VpnConnection;
}
export interface MonitorInstancesRequest {
  InstanceIds: string[] | undefined;
  DryRun?: boolean;
}
export interface InstanceMonitoring {
  InstanceId?: string;
  Monitoring?: Monitoring;
}
export interface MonitorInstancesResult {
  InstanceMonitorings?: InstanceMonitoring[];
}
export interface MoveAddressToVpcRequest {
  DryRun?: boolean;
  PublicIp: string | undefined;
}
export declare const Status: {
  readonly inClassic: "InClassic";
  readonly inVpc: "InVpc";
  readonly moveInProgress: "MoveInProgress";
};
export type Status = (typeof Status)[keyof typeof Status];
export interface MoveAddressToVpcResult {
  AllocationId?: string;
  Status?: Status | string;
}
export interface MoveByoipCidrToIpamRequest {
  DryRun?: boolean;
  Cidr: string | undefined;
  IpamPoolId: string | undefined;
  IpamPoolOwner: string | undefined;
}
export interface MoveByoipCidrToIpamResult {
  ByoipCidr?: ByoipCidr;
}
export interface CidrAuthorizationContext {
  Message: string | undefined;
  Signature: string | undefined;
}
export interface ProvisionByoipCidrRequest {
  Cidr: string | undefined;
  CidrAuthorizationContext?: CidrAuthorizationContext;
  PubliclyAdvertisable?: boolean;
  Description?: string;
  DryRun?: boolean;
  PoolTagSpecifications?: TagSpecification[];
  MultiRegion?: boolean;
}
export interface ProvisionByoipCidrResult {
  ByoipCidr?: ByoipCidr;
}
export interface IpamCidrAuthorizationContext {
  Message?: string;
  Signature?: string;
}
export interface ProvisionIpamPoolCidrRequest {
  DryRun?: boolean;
  IpamPoolId: string | undefined;
  Cidr?: string;
  CidrAuthorizationContext?: IpamCidrAuthorizationContext;
  NetmaskLength?: number;
  ClientToken?: string;
}
export interface ProvisionIpamPoolCidrResult {
  IpamPoolCidr?: IpamPoolCidr;
}
export interface ProvisionPublicIpv4PoolCidrRequest {
  DryRun?: boolean;
  IpamPoolId: string | undefined;
  PoolId: string | undefined;
  NetmaskLength: number | undefined;
}
export interface ProvisionPublicIpv4PoolCidrResult {
  PoolId?: string;
  PoolAddressRange?: PublicIpv4PoolRange;
}
export interface PurchaseHostReservationRequest {
  ClientToken?: string;
  CurrencyCode?: CurrencyCodeValues | string;
  HostIdSet: string[] | undefined;
  LimitPrice?: string;
  OfferingId: string | undefined;
  TagSpecifications?: TagSpecification[];
}
export interface PurchaseHostReservationResult {
  ClientToken?: string;
  CurrencyCode?: CurrencyCodeValues | string;
  Purchase?: Purchase[];
  TotalHourlyPrice?: string;
  TotalUpfrontPrice?: string;
}
export interface ReservedInstanceLimitPrice {
  Amount?: number;
  CurrencyCode?: CurrencyCodeValues | string;
}
export interface PurchaseReservedInstancesOfferingRequest {
  InstanceCount: number | undefined;
  ReservedInstancesOfferingId: string | undefined;
  DryRun?: boolean;
  LimitPrice?: ReservedInstanceLimitPrice;
  PurchaseTime?: Date;
}
export interface PurchaseReservedInstancesOfferingResult {
  ReservedInstancesId?: string;
}
export interface PurchaseRequest {
  InstanceCount: number | undefined;
  PurchaseToken: string | undefined;
}
export interface PurchaseScheduledInstancesRequest {
  ClientToken?: string;
  DryRun?: boolean;
  PurchaseRequests: PurchaseRequest[] | undefined;
}
export interface PurchaseScheduledInstancesResult {
  ScheduledInstanceSet?: ScheduledInstance[];
}
export interface RebootInstancesRequest {
  InstanceIds: string[] | undefined;
  DryRun?: boolean;
}
export interface RegisterImageRequest {
  ImageLocation?: string;
  Architecture?: ArchitectureValues | string;
  BlockDeviceMappings?: BlockDeviceMapping[];
  Description?: string;
  DryRun?: boolean;
  EnaSupport?: boolean;
  KernelId?: string;
  Name: string | undefined;
  BillingProducts?: string[];
  RamdiskId?: string;
  RootDeviceName?: string;
  SriovNetSupport?: string;
  VirtualizationType?: string;
  BootMode?: BootModeValues | string;
  TpmSupport?: TpmSupportValues | string;
  UefiData?: string;
  ImdsSupport?: ImdsSupportValues | string;
}
export interface RegisterImageResult {
  ImageId?: string;
}
export interface RegisterInstanceTagAttributeRequest {
  IncludeAllTagsOfInstance?: boolean;
  InstanceTagKeys?: string[];
}
export interface RegisterInstanceEventNotificationAttributesRequest {
  DryRun?: boolean;
  InstanceTagAttribute: RegisterInstanceTagAttributeRequest | undefined;
}
export interface RegisterInstanceEventNotificationAttributesResult {
  InstanceTagAttribute?: InstanceTagNotificationAttribute;
}
export interface RegisterTransitGatewayMulticastGroupMembersRequest {
  TransitGatewayMulticastDomainId: string | undefined;
  GroupIpAddress?: string;
  NetworkInterfaceIds: string[] | undefined;
  DryRun?: boolean;
}
export interface TransitGatewayMulticastRegisteredGroupMembers {
  TransitGatewayMulticastDomainId?: string;
  RegisteredNetworkInterfaceIds?: string[];
  GroupIpAddress?: string;
}
export interface RegisterTransitGatewayMulticastGroupMembersResult {
  RegisteredMulticastGroupMembers?: TransitGatewayMulticastRegisteredGroupMembers;
}
export interface RegisterTransitGatewayMulticastGroupSourcesRequest {
  TransitGatewayMulticastDomainId: string | undefined;
  GroupIpAddress?: string;
  NetworkInterfaceIds: string[] | undefined;
  DryRun?: boolean;
}
export interface TransitGatewayMulticastRegisteredGroupSources {
  TransitGatewayMulticastDomainId?: string;
  RegisteredNetworkInterfaceIds?: string[];
  GroupIpAddress?: string;
}
export interface RegisterTransitGatewayMulticastGroupSourcesResult {
  RegisteredMulticastGroupSources?: TransitGatewayMulticastRegisteredGroupSources;
}
export interface RejectTransitGatewayMulticastDomainAssociationsRequest {
  TransitGatewayMulticastDomainId?: string;
  TransitGatewayAttachmentId?: string;
  SubnetIds?: string[];
  DryRun?: boolean;
}
export interface RejectTransitGatewayMulticastDomainAssociationsResult {
  Associations?: TransitGatewayMulticastDomainAssociations;
}
export interface RejectTransitGatewayPeeringAttachmentRequest {
  TransitGatewayAttachmentId: string | undefined;
  DryRun?: boolean;
}
export interface RejectTransitGatewayPeeringAttachmentResult {
  TransitGatewayPeeringAttachment?: TransitGatewayPeeringAttachment;
}
export interface RejectTransitGatewayVpcAttachmentRequest {
  TransitGatewayAttachmentId: string | undefined;
  DryRun?: boolean;
}
export interface RejectTransitGatewayVpcAttachmentResult {
  TransitGatewayVpcAttachment?: TransitGatewayVpcAttachment;
}
export interface RejectVpcEndpointConnectionsRequest {
  DryRun?: boolean;
  ServiceId: string | undefined;
  VpcEndpointIds: string[] | undefined;
}
export interface RejectVpcEndpointConnectionsResult {
  Unsuccessful?: UnsuccessfulItem[];
}
export interface RejectVpcPeeringConnectionRequest {
  DryRun?: boolean;
  VpcPeeringConnectionId: string | undefined;
}
export interface RejectVpcPeeringConnectionResult {
  Return?: boolean;
}
export interface ReleaseAddressRequest {
  AllocationId?: string;
  PublicIp?: string;
  NetworkBorderGroup?: string;
  DryRun?: boolean;
}
export interface ReleaseHostsRequest {
  HostIds: string[] | undefined;
}
export interface ReleaseHostsResult {
  Successful?: string[];
  Unsuccessful?: UnsuccessfulItem[];
}
export interface ReleaseIpamPoolAllocationRequest {
  DryRun?: boolean;
  IpamPoolId: string | undefined;
  Cidr: string | undefined;
  IpamPoolAllocationId: string | undefined;
}
export interface ReleaseIpamPoolAllocationResult {
  Success?: boolean;
}
export interface ReplaceIamInstanceProfileAssociationRequest {
  IamInstanceProfile: IamInstanceProfileSpecification | undefined;
  AssociationId: string | undefined;
}
export interface ReplaceIamInstanceProfileAssociationResult {
  IamInstanceProfileAssociation?: IamInstanceProfileAssociation;
}
export interface ReplaceNetworkAclAssociationRequest {
  AssociationId: string | undefined;
  DryRun?: boolean;
  NetworkAclId: string | undefined;
}
export interface ReplaceNetworkAclAssociationResult {
  NewAssociationId?: string;
}
export interface ReplaceNetworkAclEntryRequest {
  CidrBlock?: string;
  DryRun?: boolean;
  Egress: boolean | undefined;
  IcmpTypeCode?: IcmpTypeCode;
  Ipv6CidrBlock?: string;
  NetworkAclId: string | undefined;
  PortRange?: PortRange;
  Protocol: string | undefined;
  RuleAction: RuleAction | string | undefined;
  RuleNumber: number | undefined;
}
export interface ReplaceRouteRequest {
  DestinationCidrBlock?: string;
  DestinationIpv6CidrBlock?: string;
  DestinationPrefixListId?: string;
  DryRun?: boolean;
  VpcEndpointId?: string;
  EgressOnlyInternetGatewayId?: string;
  GatewayId?: string;
  InstanceId?: string;
  LocalTarget?: boolean;
  NatGatewayId?: string;
  TransitGatewayId?: string;
  LocalGatewayId?: string;
  CarrierGatewayId?: string;
  NetworkInterfaceId?: string;
  RouteTableId: string | undefined;
  VpcPeeringConnectionId?: string;
  CoreNetworkArn?: string;
}
export interface ReplaceRouteTableAssociationRequest {
  AssociationId: string | undefined;
  DryRun?: boolean;
  RouteTableId: string | undefined;
}
export interface ReplaceRouteTableAssociationResult {
  NewAssociationId?: string;
  AssociationState?: RouteTableAssociationState;
}
export interface ReplaceTransitGatewayRouteRequest {
  DestinationCidrBlock: string | undefined;
  TransitGatewayRouteTableId: string | undefined;
  TransitGatewayAttachmentId?: string;
  Blackhole?: boolean;
  DryRun?: boolean;
}
export interface ReplaceTransitGatewayRouteResult {
  Route?: TransitGatewayRoute;
}
export interface ReplaceVpnTunnelRequest {
  VpnConnectionId: string | undefined;
  VpnTunnelOutsideIpAddress: string | undefined;
  ApplyPendingMaintenance?: boolean;
  DryRun?: boolean;
}
export interface ReplaceVpnTunnelResult {
  Return?: boolean;
}
export declare const ReportInstanceReasonCodes: {
  readonly instance_stuck_in_state: "instance-stuck-in-state";
  readonly not_accepting_credentials: "not-accepting-credentials";
  readonly other: "other";
  readonly password_not_available: "password-not-available";
  readonly performance_ebs_volume: "performance-ebs-volume";
  readonly performance_instance_store: "performance-instance-store";
  readonly performance_network: "performance-network";
  readonly performance_other: "performance-other";
  readonly unresponsive: "unresponsive";
};
export type ReportInstanceReasonCodes =
  (typeof ReportInstanceReasonCodes)[keyof typeof ReportInstanceReasonCodes];
export declare const ReportStatusType: {
  readonly impaired: "impaired";
  readonly ok: "ok";
};
export type ReportStatusType =
  (typeof ReportStatusType)[keyof typeof ReportStatusType];
export interface ReportInstanceStatusRequest {
  Description?: string;
  DryRun?: boolean;
  EndTime?: Date;
  Instances: string[] | undefined;
  ReasonCodes: (ReportInstanceReasonCodes | string)[] | undefined;
  StartTime?: Date;
  Status: ReportStatusType | string | undefined;
}
export interface RequestSpotFleetRequest {
  DryRun?: boolean;
  SpotFleetRequestConfig: SpotFleetRequestConfigData | undefined;
}
export interface RequestSpotFleetResponse {
  SpotFleetRequestId?: string;
}
export interface RequestSpotLaunchSpecification {
  SecurityGroupIds?: string[];
  SecurityGroups?: string[];
  AddressingType?: string;
  BlockDeviceMappings?: BlockDeviceMapping[];
  EbsOptimized?: boolean;
  IamInstanceProfile?: IamInstanceProfileSpecification;
  ImageId?: string;
  InstanceType?: _InstanceType | string;
  KernelId?: string;
  KeyName?: string;
  Monitoring?: RunInstancesMonitoringEnabled;
  NetworkInterfaces?: InstanceNetworkInterfaceSpecification[];
  Placement?: SpotPlacement;
  RamdiskId?: string;
  SubnetId?: string;
  UserData?: string;
}
export interface RequestSpotInstancesRequest {
  AvailabilityZoneGroup?: string;
  BlockDurationMinutes?: number;
  ClientToken?: string;
  DryRun?: boolean;
  InstanceCount?: number;
  LaunchGroup?: string;
  LaunchSpecification?: RequestSpotLaunchSpecification;
  SpotPrice?: string;
  Type?: SpotInstanceType | string;
  ValidFrom?: Date;
  ValidUntil?: Date;
  TagSpecifications?: TagSpecification[];
  InstanceInterruptionBehavior?: InstanceInterruptionBehavior | string;
}
export interface RequestSpotInstancesResult {
  SpotInstanceRequests?: SpotInstanceRequest[];
}
export interface ResetAddressAttributeRequest {
  AllocationId: string | undefined;
  Attribute: AddressAttributeName | string | undefined;
  DryRun?: boolean;
}
export interface ResetAddressAttributeResult {
  Address?: AddressAttribute;
}
export interface ResetEbsDefaultKmsKeyIdRequest {
  DryRun?: boolean;
}
export interface ResetEbsDefaultKmsKeyIdResult {
  KmsKeyId?: string;
}
export declare const ResetFpgaImageAttributeName: {
  readonly loadPermission: "loadPermission";
};
export type ResetFpgaImageAttributeName =
  (typeof ResetFpgaImageAttributeName)[keyof typeof ResetFpgaImageAttributeName];
export interface ResetFpgaImageAttributeRequest {
  DryRun?: boolean;
  FpgaImageId: string | undefined;
  Attribute?: ResetFpgaImageAttributeName | string;
}
export interface ResetFpgaImageAttributeResult {
  Return?: boolean;
}
export declare const ResetImageAttributeName: {
  readonly launchPermission: "launchPermission";
};
export type ResetImageAttributeName =
  (typeof ResetImageAttributeName)[keyof typeof ResetImageAttributeName];
export interface ResetImageAttributeRequest {
  Attribute: ResetImageAttributeName | string | undefined;
  ImageId: string | undefined;
  DryRun?: boolean;
}
export interface ResetInstanceAttributeRequest {
  Attribute: InstanceAttributeName | string | undefined;
  DryRun?: boolean;
  InstanceId: string | undefined;
}
export interface ResetNetworkInterfaceAttributeRequest {
  DryRun?: boolean;
  NetworkInterfaceId: string | undefined;
  SourceDestCheck?: string;
}
export interface ResetSnapshotAttributeRequest {
  Attribute: SnapshotAttributeName | string | undefined;
  SnapshotId: string | undefined;
  DryRun?: boolean;
}
export interface RestoreAddressToClassicRequest {
  DryRun?: boolean;
  PublicIp: string | undefined;
}
export interface RestoreAddressToClassicResult {
  PublicIp?: string;
  Status?: Status | string;
}
export interface RestoreImageFromRecycleBinRequest {
  ImageId: string | undefined;
  DryRun?: boolean;
}
export interface RestoreImageFromRecycleBinResult {
  Return?: boolean;
}
export interface RestoreManagedPrefixListVersionRequest {
  DryRun?: boolean;
  PrefixListId: string | undefined;
  PreviousVersion: number | undefined;
  CurrentVersion: number | undefined;
}
export interface RestoreManagedPrefixListVersionResult {
  PrefixList?: ManagedPrefixList;
}
export interface RestoreSnapshotFromRecycleBinRequest {
  SnapshotId: string | undefined;
  DryRun?: boolean;
}
export interface RestoreSnapshotFromRecycleBinResult {
  SnapshotId?: string;
  OutpostArn?: string;
  Description?: string;
  Encrypted?: boolean;
  OwnerId?: string;
  Progress?: string;
  StartTime?: Date;
  State?: SnapshotState | string;
  VolumeId?: string;
  VolumeSize?: number;
  SseType?: SSEType | string;
}
export interface RestoreSnapshotTierRequest {
  SnapshotId: string | undefined;
  TemporaryRestoreDays?: number;
  PermanentRestore?: boolean;
  DryRun?: boolean;
}
export interface RestoreSnapshotTierResult {
  SnapshotId?: string;
  RestoreStartTime?: Date;
  RestoreDuration?: number;
  IsPermanentRestore?: boolean;
}
export interface RevokeClientVpnIngressRequest {
  ClientVpnEndpointId: string | undefined;
  TargetNetworkCidr: string | undefined;
  AccessGroupId?: string;
  RevokeAllGroups?: boolean;
  DryRun?: boolean;
}
export interface RevokeClientVpnIngressResult {
  Status?: ClientVpnAuthorizationRuleStatus;
}
export interface RevokeSecurityGroupEgressRequest {
  DryRun?: boolean;
  GroupId: string | undefined;
  IpPermissions?: IpPermission[];
  SecurityGroupRuleIds?: string[];
  CidrIp?: string;
  FromPort?: number;
  IpProtocol?: string;
  ToPort?: number;
  SourceSecurityGroupName?: string;
  SourceSecurityGroupOwnerId?: string;
}
export interface RevokeSecurityGroupEgressResult {
  Return?: boolean;
  UnknownIpPermissions?: IpPermission[];
}
export interface RevokeSecurityGroupIngressRequest {
  CidrIp?: string;
  FromPort?: number;
  GroupId?: string;
  GroupName?: string;
  IpPermissions?: IpPermission[];
  IpProtocol?: string;
  SourceSecurityGroupName?: string;
  SourceSecurityGroupOwnerId?: string;
  ToPort?: number;
  DryRun?: boolean;
  SecurityGroupRuleIds?: string[];
}
export interface RevokeSecurityGroupIngressResult {
  Return?: boolean;
  UnknownIpPermissions?: IpPermission[];
}
export interface CpuOptionsRequest {
  CoreCount?: number;
  ThreadsPerCore?: number;
  AmdSevSnp?: AmdSevSnpSpecification | string;
}
export interface ElasticInferenceAccelerator {
  Type: string | undefined;
  Count?: number;
}
export interface EnclaveOptionsRequest {
  Enabled?: boolean;
}
export interface HibernationOptionsRequest {
  Configured?: boolean;
}
export interface SpotMarketOptions {
  MaxPrice?: string;
  SpotInstanceType?: SpotInstanceType | string;
  BlockDurationMinutes?: number;
  ValidUntil?: Date;
  InstanceInterruptionBehavior?: InstanceInterruptionBehavior | string;
}
export interface InstanceMarketOptionsRequest {
  MarketType?: MarketType | string;
  SpotOptions?: SpotMarketOptions;
}
export interface LaunchTemplateSpecification {
  LaunchTemplateId?: string;
  LaunchTemplateName?: string;
  Version?: string;
}
export interface LicenseConfigurationRequest {
  LicenseConfigurationArn?: string;
}
export interface InstanceMaintenanceOptionsRequest {
  AutoRecovery?: InstanceAutoRecoveryState | string;
}
export interface InstanceMetadataOptionsRequest {
  HttpTokens?: HttpTokensState | string;
  HttpPutResponseHopLimit?: number;
  HttpEndpoint?: InstanceMetadataEndpointState | string;
  HttpProtocolIpv6?: InstanceMetadataProtocolState | string;
  InstanceMetadataTags?: InstanceMetadataTagsState | string;
}
export interface PrivateDnsNameOptionsRequest {
  HostnameType?: HostnameType | string;
  EnableResourceNameDnsARecord?: boolean;
  EnableResourceNameDnsAAAARecord?: boolean;
}
export interface RunInstancesRequest {
  BlockDeviceMappings?: BlockDeviceMapping[];
  ImageId?: string;
  InstanceType?: _InstanceType | string;
  Ipv6AddressCount?: number;
  Ipv6Addresses?: InstanceIpv6Address[];
  KernelId?: string;
  KeyName?: string;
  MaxCount: number | undefined;
  MinCount: number | undefined;
  Monitoring?: RunInstancesMonitoringEnabled;
  Placement?: Placement;
  RamdiskId?: string;
  SecurityGroupIds?: string[];
  SecurityGroups?: string[];
  SubnetId?: string;
  UserData?: string;
  AdditionalInfo?: string;
  ClientToken?: string;
  DisableApiTermination?: boolean;
  DryRun?: boolean;
  EbsOptimized?: boolean;
  IamInstanceProfile?: IamInstanceProfileSpecification;
  InstanceInitiatedShutdownBehavior?: ShutdownBehavior | string;
  NetworkInterfaces?: InstanceNetworkInterfaceSpecification[];
  PrivateIpAddress?: string;
  ElasticGpuSpecification?: ElasticGpuSpecification[];
  ElasticInferenceAccelerators?: ElasticInferenceAccelerator[];
  TagSpecifications?: TagSpecification[];
  LaunchTemplate?: LaunchTemplateSpecification;
  InstanceMarketOptions?: InstanceMarketOptionsRequest;
  CreditSpecification?: CreditSpecificationRequest;
  CpuOptions?: CpuOptionsRequest;
  CapacityReservationSpecification?: CapacityReservationSpecification;
  HibernationOptions?: HibernationOptionsRequest;
  LicenseSpecifications?: LicenseConfigurationRequest[];
  MetadataOptions?: InstanceMetadataOptionsRequest;
  EnclaveOptions?: EnclaveOptionsRequest;
  PrivateDnsNameOptions?: PrivateDnsNameOptionsRequest;
  MaintenanceOptions?: InstanceMaintenanceOptionsRequest;
  DisableApiStop?: boolean;
}
export interface ScheduledInstancesEbs {
  DeleteOnTermination?: boolean;
  Encrypted?: boolean;
  Iops?: number;
  SnapshotId?: string;
  VolumeSize?: number;
  VolumeType?: string;
}
export interface ScheduledInstancesBlockDeviceMapping {
  DeviceName?: string;
  Ebs?: ScheduledInstancesEbs;
  NoDevice?: string;
  VirtualName?: string;
}
export interface ScheduledInstancesIamInstanceProfile {
  Arn?: string;
  Name?: string;
}
export interface ScheduledInstancesMonitoring {
  Enabled?: boolean;
}
export interface ScheduledInstancesIpv6Address {
  Ipv6Address?: string;
}
export interface ScheduledInstancesPrivateIpAddressConfig {
  Primary?: boolean;
  PrivateIpAddress?: string;
}
export declare const ImageDiskContainerFilterSensitiveLog: (
  obj: ImageDiskContainer
) => any;
export declare const ImportImageRequestFilterSensitiveLog: (
  obj: ImportImageRequest
) => any;
export declare const ImportImageResultFilterSensitiveLog: (
  obj: ImportImageResult
) => any;
export declare const DiskImageDetailFilterSensitiveLog: (
  obj: DiskImageDetail
) => any;
export declare const DiskImageFilterSensitiveLog: (obj: DiskImage) => any;
export declare const UserDataFilterSensitiveLog: (obj: UserData) => any;
export declare const ImportInstanceLaunchSpecificationFilterSensitiveLog: (
  obj: ImportInstanceLaunchSpecification
) => any;
export declare const ImportInstanceRequestFilterSensitiveLog: (
  obj: ImportInstanceRequest
) => any;
export declare const ImportInstanceResultFilterSensitiveLog: (
  obj: ImportInstanceResult
) => any;
export declare const SnapshotDiskContainerFilterSensitiveLog: (
  obj: SnapshotDiskContainer
) => any;
export declare const ImportSnapshotRequestFilterSensitiveLog: (
  obj: ImportSnapshotRequest
) => any;
export declare const ImportSnapshotResultFilterSensitiveLog: (
  obj: ImportSnapshotResult
) => any;
export declare const ImportVolumeRequestFilterSensitiveLog: (
  obj: ImportVolumeRequest
) => any;
export declare const ImportVolumeResultFilterSensitiveLog: (
  obj: ImportVolumeResult
) => any;
export declare const ModifyVerifiedAccessTrustProviderOidcOptionsFilterSensitiveLog: (
  obj: ModifyVerifiedAccessTrustProviderOidcOptions
) => any;
export declare const ModifyVerifiedAccessTrustProviderRequestFilterSensitiveLog: (
  obj: ModifyVerifiedAccessTrustProviderRequest
) => any;
export declare const ModifyVerifiedAccessTrustProviderResultFilterSensitiveLog: (
  obj: ModifyVerifiedAccessTrustProviderResult
) => any;
export declare const ModifyVpnConnectionResultFilterSensitiveLog: (
  obj: ModifyVpnConnectionResult
) => any;
export declare const ModifyVpnConnectionOptionsResultFilterSensitiveLog: (
  obj: ModifyVpnConnectionOptionsResult
) => any;
export declare const ModifyVpnTunnelCertificateResultFilterSensitiveLog: (
  obj: ModifyVpnTunnelCertificateResult
) => any;
export declare const ModifyVpnTunnelOptionsSpecificationFilterSensitiveLog: (
  obj: ModifyVpnTunnelOptionsSpecification
) => any;
export declare const ModifyVpnTunnelOptionsRequestFilterSensitiveLog: (
  obj: ModifyVpnTunnelOptionsRequest
) => any;
export declare const ModifyVpnTunnelOptionsResultFilterSensitiveLog: (
  obj: ModifyVpnTunnelOptionsResult
) => any;
export declare const RequestSpotFleetRequestFilterSensitiveLog: (
  obj: RequestSpotFleetRequest
) => any;
export declare const RequestSpotLaunchSpecificationFilterSensitiveLog: (
  obj: RequestSpotLaunchSpecification
) => any;
export declare const RequestSpotInstancesRequestFilterSensitiveLog: (
  obj: RequestSpotInstancesRequest
) => any;
export declare const RequestSpotInstancesResultFilterSensitiveLog: (
  obj: RequestSpotInstancesResult
) => any;
export declare const RunInstancesRequestFilterSensitiveLog: (
  obj: RunInstancesRequest
) => any;
