import {
  ApplianceModeSupportValue,
  AutoAcceptSharedAssociationsValue,
  AutoAcceptSharedAttachmentsValue,
  BgpStatus,
  ConnectionNotificationState,
  ConnectionNotificationType,
  CopyTagsFromSource,
  DatafeedSubscriptionState,
  DefaultRouteTableAssociationValue,
  DefaultRouteTablePropagationValue,
  DeleteFleetErrorCode,
  DeleteQueuedReservedInstancesErrorCode,
  DeviceTrustProviderType,
  DnsNameState,
  DnsRecordIpType,
  DnsSupportValue,
  DynamicRoutingValue,
  EncryptionStateValue,
  FleetStateCode,
  GatewayAssociationState,
  GatewayType,
  Igmpv2SupportValue,
  InstanceEventWindowState,
  InternetGatewayExclusionMode,
  IpAddressType,
  Ipv6SupportValue,
  LaunchTemplateErrorCode,
  MulticastSupportValue,
  PayerResponsibility,
  PayerResponsibilityScope,
  PayerResponsibilityType,
  ProtocolValue,
  RouteOrigin,
  RouteServerBfdState,
  RouteServerBgpState,
  RouteServerPeerLivenessMode,
  RouteServerPeerState,
  RouteState,
  SecondaryNetworkCidrBlockAssociationState,
  SecondaryNetworkState,
  SecondaryNetworkType,
  SecondarySubnetCidrBlockAssociationState,
  SecondarySubnetState,
  SecurityGroupReferencingSupportValue,
  ServiceConnectivityType,
  ServiceState,
  ServiceType,
  SnapshotLocationEnum,
  SnapshotState,
  SSEType,
  State,
  StaticSourcesSupportValue,
  StorageTier,
  SubnetCidrReservationType,
  TelemetryStatus,
  Tenancy,
  TrafficDirection,
  TrafficMirrorNetworkService,
  TrafficMirrorRuleAction,
  TrafficMirrorTargetType,
  TransferType,
  TransitGatewayAttachmentResourceType,
  TransitGatewayAttachmentState,
  TransitGatewayConnectPeerState,
  TransitGatewayMeteringPayerType,
  TransitGatewayMeteringPolicyEntryState,
  TransitGatewayMeteringPolicyState,
  TransitGatewayMulticastDomainState,
  TransitGatewayPolicyTableState,
  TransitGatewayPrefixListReferenceState,
  TransitGatewayRouteState,
  TransitGatewayRouteTableAnnouncementDirection,
  TransitGatewayRouteTableAnnouncementState,
  TransitGatewayRouteTableState,
  TransitGatewayRouteType,
  TransitGatewayState,
  TrustProviderType,
  TunnelInsideIpVersion,
  UserTrustProviderType,
  VerifiedAccessEndpointAttachmentType,
  VerifiedAccessEndpointProtocol,
  VerifiedAccessEndpointStatusCode,
  VerifiedAccessEndpointType,
  VolumeType,
  VpcBlockPublicAccessExclusionState,
  VpcEncryptionControlExclusionStateInput,
  VpcEncryptionControlMode,
  VpcEndpointType,
  VpnConcentratorType,
  VpnEcmpSupportValue,
  VpnState,
  VpnStaticRouteSource,
  VpnTunnelBandwidth,
} from "./enums";
import {
  CarrierGateway,
  ClientVpnEndpointStatus,
  ClientVpnRouteStatus,
  CoipCidr,
  CoipPool,
  RouteTableAssociationState,
  Tag,
  TagSpecification,
  TransitGatewayPeeringAttachment,
  TransitGatewayVpcAttachment,
  UnsuccessfulItem,
  VerifiedAccessInstance,
  VerifiedAccessSseSpecificationResponse,
  VerifiedAccessTrustProvider,
  VpcAttachment,
  VpcPeeringConnection,
} from "./models_0";
import {
  Ec2InstanceConnectEndpoint,
  Ipam,
  IpamExternalResourceVerificationToken,
  IpamPolicy,
  IpamPool,
  IpamPrefixListResolver,
  IpamPrefixListResolverTarget,
  IpamResourceDiscovery,
  IpamScope,
  LaunchTemplate,
  LocalGatewayRoute,
  LocalGatewayRouteTable,
  LocalGatewayRouteTableVirtualInterfaceGroupAssociation,
  LocalGatewayRouteTableVpcAssociation,
  LocalGatewayVirtualInterface,
  LocalGatewayVirtualInterfaceGroup,
  ManagedPrefixList,
  OperatorRequest,
  RouteServer,
  RouteServerEndpoint,
  Subnet,
  Vpc,
  VpcEncryptionControl,
} from "./models_1";
export interface RouteServerBgpOptionsRequest {
  PeerAsn: number | undefined;
  PeerLivenessDetection?: RouteServerPeerLivenessMode | undefined;
}
export interface CreateRouteServerPeerRequest {
  RouteServerEndpointId: string | undefined;
  PeerAddress: string | undefined;
  BgpOptions: RouteServerBgpOptionsRequest | undefined;
  DryRun?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface RouteServerBfdStatus {
  Status?: RouteServerBfdState | undefined;
}
export interface RouteServerBgpOptions {
  PeerAsn?: number | undefined;
  PeerLivenessDetection?: RouteServerPeerLivenessMode | undefined;
}
export interface RouteServerBgpStatus {
  Status?: RouteServerBgpState | undefined;
}
export interface RouteServerPeer {
  RouteServerPeerId?: string | undefined;
  RouteServerEndpointId?: string | undefined;
  RouteServerId?: string | undefined;
  VpcId?: string | undefined;
  SubnetId?: string | undefined;
  State?: RouteServerPeerState | undefined;
  FailureReason?: string | undefined;
  EndpointEniId?: string | undefined;
  EndpointEniAddress?: string | undefined;
  PeerAddress?: string | undefined;
  BgpOptions?: RouteServerBgpOptions | undefined;
  BgpStatus?: RouteServerBgpStatus | undefined;
  BfdStatus?: RouteServerBfdStatus | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateRouteServerPeerResult {
  RouteServerPeer?: RouteServerPeer | undefined;
}
export interface CreateRouteTableRequest {
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  VpcId: string | undefined;
}
export interface RouteTableAssociation {
  Main?: boolean | undefined;
  RouteTableAssociationId?: string | undefined;
  RouteTableId?: string | undefined;
  SubnetId?: string | undefined;
  GatewayId?: string | undefined;
  PublicIpv4Pool?: string | undefined;
  AssociationState?: RouteTableAssociationState | undefined;
}
export interface PropagatingVgw {
  GatewayId?: string | undefined;
}
export interface Route {
  DestinationCidrBlock?: string | undefined;
  DestinationIpv6CidrBlock?: string | undefined;
  DestinationPrefixListId?: string | undefined;
  EgressOnlyInternetGatewayId?: string | undefined;
  GatewayId?: string | undefined;
  InstanceId?: string | undefined;
  InstanceOwnerId?: string | undefined;
  NatGatewayId?: string | undefined;
  TransitGatewayId?: string | undefined;
  LocalGatewayId?: string | undefined;
  CarrierGatewayId?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  Origin?: RouteOrigin | undefined;
  State?: RouteState | undefined;
  VpcPeeringConnectionId?: string | undefined;
  CoreNetworkArn?: string | undefined;
  OdbNetworkArn?: string | undefined;
  IpAddress?: string | undefined;
}
export interface RouteTable {
  Associations?: RouteTableAssociation[] | undefined;
  PropagatingVgws?: PropagatingVgw[] | undefined;
  RouteTableId?: string | undefined;
  Routes?: Route[] | undefined;
  Tags?: Tag[] | undefined;
  VpcId?: string | undefined;
  OwnerId?: string | undefined;
}
export interface CreateRouteTableResult {
  RouteTable?: RouteTable | undefined;
  ClientToken?: string | undefined;
}
export interface CreateSecondaryNetworkRequest {
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  Ipv4CidrBlock: string | undefined;
  NetworkType: SecondaryNetworkType | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface SecondaryNetworkIpv4CidrBlockAssociation {
  AssociationId?: string | undefined;
  CidrBlock?: string | undefined;
  State?: SecondaryNetworkCidrBlockAssociationState | undefined;
  StateReason?: string | undefined;
}
export interface SecondaryNetwork {
  SecondaryNetworkId?: string | undefined;
  SecondaryNetworkArn?: string | undefined;
  OwnerId?: string | undefined;
  Type?: SecondaryNetworkType | undefined;
  State?: SecondaryNetworkState | undefined;
  StateReason?: string | undefined;
  Ipv4CidrBlockAssociations?:
    | SecondaryNetworkIpv4CidrBlockAssociation[]
    | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateSecondaryNetworkResult {
  SecondaryNetwork?: SecondaryNetwork | undefined;
  ClientToken?: string | undefined;
}
export interface CreateSecondarySubnetRequest {
  ClientToken?: string | undefined;
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  DryRun?: boolean | undefined;
  Ipv4CidrBlock: string | undefined;
  SecondaryNetworkId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface SecondarySubnetIpv4CidrBlockAssociation {
  AssociationId?: string | undefined;
  CidrBlock?: string | undefined;
  State?: SecondarySubnetCidrBlockAssociationState | undefined;
  StateReason?: string | undefined;
}
export interface SecondarySubnet {
  SecondarySubnetId?: string | undefined;
  SecondarySubnetArn?: string | undefined;
  SecondaryNetworkId?: string | undefined;
  SecondaryNetworkType?: SecondaryNetworkType | undefined;
  OwnerId?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  AvailabilityZone?: string | undefined;
  Ipv4CidrBlockAssociations?:
    | SecondarySubnetIpv4CidrBlockAssociation[]
    | undefined;
  State?: SecondarySubnetState | undefined;
  StateReason?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateSecondarySubnetResult {
  SecondarySubnet?: SecondarySubnet | undefined;
  ClientToken?: string | undefined;
}
export interface CreateSecurityGroupRequest {
  Description: string | undefined;
  GroupName: string | undefined;
  VpcId?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CreateSecurityGroupResult {
  GroupId?: string | undefined;
  Tags?: Tag[] | undefined;
  SecurityGroupArn?: string | undefined;
}
export interface CreateSnapshotRequest {
  Description?: string | undefined;
  OutpostArn?: string | undefined;
  VolumeId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  Location?: SnapshotLocationEnum | undefined;
  DryRun?: boolean | undefined;
}
export interface Snapshot {
  OwnerAlias?: string | undefined;
  OutpostArn?: string | undefined;
  Tags?: Tag[] | undefined;
  StorageTier?: StorageTier | undefined;
  RestoreExpiryTime?: Date | undefined;
  SseType?: SSEType | undefined;
  AvailabilityZone?: string | undefined;
  TransferType?: TransferType | undefined;
  CompletionDurationMinutes?: number | undefined;
  CompletionTime?: Date | undefined;
  FullSnapshotSizeInBytes?: number | undefined;
  SnapshotId?: string | undefined;
  VolumeId?: string | undefined;
  State?: SnapshotState | undefined;
  StateMessage?: string | undefined;
  StartTime?: Date | undefined;
  Progress?: string | undefined;
  OwnerId?: string | undefined;
  Description?: string | undefined;
  VolumeSize?: number | undefined;
  Encrypted?: boolean | undefined;
  KmsKeyId?: string | undefined;
  DataEncryptionKeyId?: string | undefined;
}
export interface InstanceSpecification {
  InstanceId: string | undefined;
  ExcludeBootVolume?: boolean | undefined;
  ExcludeDataVolumeIds?: string[] | undefined;
}
export interface CreateSnapshotsRequest {
  Description?: string | undefined;
  InstanceSpecification: InstanceSpecification | undefined;
  OutpostArn?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  CopyTagsFromSource?: CopyTagsFromSource | undefined;
  Location?: SnapshotLocationEnum | undefined;
}
export interface SnapshotInfo {
  Description?: string | undefined;
  Tags?: Tag[] | undefined;
  Encrypted?: boolean | undefined;
  VolumeId?: string | undefined;
  State?: SnapshotState | undefined;
  VolumeSize?: number | undefined;
  StartTime?: Date | undefined;
  Progress?: string | undefined;
  OwnerId?: string | undefined;
  SnapshotId?: string | undefined;
  OutpostArn?: string | undefined;
  SseType?: SSEType | undefined;
  AvailabilityZone?: string | undefined;
}
export interface CreateSnapshotsResult {
  Snapshots?: SnapshotInfo[] | undefined;
}
export interface CreateSpotDatafeedSubscriptionRequest {
  DryRun?: boolean | undefined;
  Bucket: string | undefined;
  Prefix?: string | undefined;
}
export interface SpotInstanceStateFault {
  Code?: string | undefined;
  Message?: string | undefined;
}
export interface SpotDatafeedSubscription {
  Bucket?: string | undefined;
  Fault?: SpotInstanceStateFault | undefined;
  OwnerId?: string | undefined;
  Prefix?: string | undefined;
  State?: DatafeedSubscriptionState | undefined;
}
export interface CreateSpotDatafeedSubscriptionResult {
  SpotDatafeedSubscription?: SpotDatafeedSubscription | undefined;
}
export interface S3ObjectTag {
  Key?: string | undefined;
  Value?: string | undefined;
}
export interface CreateStoreImageTaskRequest {
  ImageId: string | undefined;
  Bucket: string | undefined;
  S3ObjectTags?: S3ObjectTag[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CreateStoreImageTaskResult {
  ObjectKey?: string | undefined;
}
export interface CreateSubnetRequest {
  TagSpecifications?: TagSpecification[] | undefined;
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  CidrBlock?: string | undefined;
  Ipv6CidrBlock?: string | undefined;
  OutpostArn?: string | undefined;
  VpcId: string | undefined;
  Ipv6Native?: boolean | undefined;
  Ipv4IpamPoolId?: string | undefined;
  Ipv4NetmaskLength?: number | undefined;
  Ipv6IpamPoolId?: string | undefined;
  Ipv6NetmaskLength?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface CreateSubnetResult {
  Subnet?: Subnet | undefined;
}
export interface CreateSubnetCidrReservationRequest {
  SubnetId: string | undefined;
  Cidr: string | undefined;
  ReservationType: SubnetCidrReservationType | undefined;
  Description?: string | undefined;
  DryRun?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface SubnetCidrReservation {
  SubnetCidrReservationId?: string | undefined;
  SubnetId?: string | undefined;
  Cidr?: string | undefined;
  ReservationType?: SubnetCidrReservationType | undefined;
  OwnerId?: string | undefined;
  Description?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateSubnetCidrReservationResult {
  SubnetCidrReservation?: SubnetCidrReservation | undefined;
}
export interface CreateTagsRequest {
  DryRun?: boolean | undefined;
  Resources: string[] | undefined;
  Tags: Tag[] | undefined;
}
export interface CreateTrafficMirrorFilterRequest {
  Description?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
}
export interface TrafficMirrorPortRange {
  FromPort?: number | undefined;
  ToPort?: number | undefined;
}
export interface TrafficMirrorFilterRule {
  TrafficMirrorFilterRuleId?: string | undefined;
  TrafficMirrorFilterId?: string | undefined;
  TrafficDirection?: TrafficDirection | undefined;
  RuleNumber?: number | undefined;
  RuleAction?: TrafficMirrorRuleAction | undefined;
  Protocol?: number | undefined;
  DestinationPortRange?: TrafficMirrorPortRange | undefined;
  SourcePortRange?: TrafficMirrorPortRange | undefined;
  DestinationCidrBlock?: string | undefined;
  SourceCidrBlock?: string | undefined;
  Description?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface TrafficMirrorFilter {
  TrafficMirrorFilterId?: string | undefined;
  IngressFilterRules?: TrafficMirrorFilterRule[] | undefined;
  EgressFilterRules?: TrafficMirrorFilterRule[] | undefined;
  NetworkServices?: TrafficMirrorNetworkService[] | undefined;
  Description?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTrafficMirrorFilterResult {
  TrafficMirrorFilter?: TrafficMirrorFilter | undefined;
  ClientToken?: string | undefined;
}
export interface TrafficMirrorPortRangeRequest {
  FromPort?: number | undefined;
  ToPort?: number | undefined;
}
export interface CreateTrafficMirrorFilterRuleRequest {
  TrafficMirrorFilterId: string | undefined;
  TrafficDirection: TrafficDirection | undefined;
  RuleNumber: number | undefined;
  RuleAction: TrafficMirrorRuleAction | undefined;
  DestinationPortRange?: TrafficMirrorPortRangeRequest | undefined;
  SourcePortRange?: TrafficMirrorPortRangeRequest | undefined;
  Protocol?: number | undefined;
  DestinationCidrBlock: string | undefined;
  SourceCidrBlock: string | undefined;
  Description?: string | undefined;
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface CreateTrafficMirrorFilterRuleResult {
  TrafficMirrorFilterRule?: TrafficMirrorFilterRule | undefined;
  ClientToken?: string | undefined;
}
export interface CreateTrafficMirrorSessionRequest {
  NetworkInterfaceId: string | undefined;
  TrafficMirrorTargetId: string | undefined;
  TrafficMirrorFilterId: string | undefined;
  PacketLength?: number | undefined;
  SessionNumber: number | undefined;
  VirtualNetworkId?: number | undefined;
  Description?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
}
export interface TrafficMirrorSession {
  TrafficMirrorSessionId?: string | undefined;
  TrafficMirrorTargetId?: string | undefined;
  TrafficMirrorFilterId?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  OwnerId?: string | undefined;
  PacketLength?: number | undefined;
  SessionNumber?: number | undefined;
  VirtualNetworkId?: number | undefined;
  Description?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTrafficMirrorSessionResult {
  TrafficMirrorSession?: TrafficMirrorSession | undefined;
  ClientToken?: string | undefined;
}
export interface CreateTrafficMirrorTargetRequest {
  NetworkInterfaceId?: string | undefined;
  NetworkLoadBalancerArn?: string | undefined;
  Description?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
  GatewayLoadBalancerEndpointId?: string | undefined;
}
export interface TrafficMirrorTarget {
  TrafficMirrorTargetId?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  NetworkLoadBalancerArn?: string | undefined;
  Type?: TrafficMirrorTargetType | undefined;
  Description?: string | undefined;
  OwnerId?: string | undefined;
  Tags?: Tag[] | undefined;
  GatewayLoadBalancerEndpointId?: string | undefined;
}
export interface CreateTrafficMirrorTargetResult {
  TrafficMirrorTarget?: TrafficMirrorTarget | undefined;
  ClientToken?: string | undefined;
}
export interface TransitGatewayRequestOptions {
  AmazonSideAsn?: number | undefined;
  AutoAcceptSharedAttachments?: AutoAcceptSharedAttachmentsValue | undefined;
  DefaultRouteTableAssociation?: DefaultRouteTableAssociationValue | undefined;
  DefaultRouteTablePropagation?: DefaultRouteTablePropagationValue | undefined;
  VpnEcmpSupport?: VpnEcmpSupportValue | undefined;
  DnsSupport?: DnsSupportValue | undefined;
  SecurityGroupReferencingSupport?:
    | SecurityGroupReferencingSupportValue
    | undefined;
  MulticastSupport?: MulticastSupportValue | undefined;
  TransitGatewayCidrBlocks?: string[] | undefined;
}
export interface CreateTransitGatewayRequest {
  Description?: string | undefined;
  Options?: TransitGatewayRequestOptions | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface EncryptionSupport {
  EncryptionState?: EncryptionStateValue | undefined;
  StateMessage?: string | undefined;
}
export interface TransitGatewayOptions {
  AmazonSideAsn?: number | undefined;
  TransitGatewayCidrBlocks?: string[] | undefined;
  AutoAcceptSharedAttachments?: AutoAcceptSharedAttachmentsValue | undefined;
  DefaultRouteTableAssociation?: DefaultRouteTableAssociationValue | undefined;
  AssociationDefaultRouteTableId?: string | undefined;
  DefaultRouteTablePropagation?: DefaultRouteTablePropagationValue | undefined;
  PropagationDefaultRouteTableId?: string | undefined;
  VpnEcmpSupport?: VpnEcmpSupportValue | undefined;
  DnsSupport?: DnsSupportValue | undefined;
  SecurityGroupReferencingSupport?:
    | SecurityGroupReferencingSupportValue
    | undefined;
  MulticastSupport?: MulticastSupportValue | undefined;
  EncryptionSupport?: EncryptionSupport | undefined;
}
export interface TransitGateway {
  TransitGatewayId?: string | undefined;
  TransitGatewayArn?: string | undefined;
  State?: TransitGatewayState | undefined;
  OwnerId?: string | undefined;
  Description?: string | undefined;
  CreationTime?: Date | undefined;
  Options?: TransitGatewayOptions | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTransitGatewayResult {
  TransitGateway?: TransitGateway | undefined;
}
export interface CreateTransitGatewayConnectRequestOptions {
  Protocol: ProtocolValue | undefined;
}
export interface CreateTransitGatewayConnectRequest {
  TransportTransitGatewayAttachmentId: string | undefined;
  Options: CreateTransitGatewayConnectRequestOptions | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayConnectOptions {
  Protocol?: ProtocolValue | undefined;
}
export interface TransitGatewayConnect {
  TransitGatewayAttachmentId?: string | undefined;
  TransportTransitGatewayAttachmentId?: string | undefined;
  TransitGatewayId?: string | undefined;
  State?: TransitGatewayAttachmentState | undefined;
  CreationTime?: Date | undefined;
  Options?: TransitGatewayConnectOptions | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTransitGatewayConnectResult {
  TransitGatewayConnect?: TransitGatewayConnect | undefined;
}
export interface TransitGatewayConnectRequestBgpOptions {
  PeerAsn?: number | undefined;
}
export interface CreateTransitGatewayConnectPeerRequest {
  TransitGatewayAttachmentId: string | undefined;
  TransitGatewayAddress?: string | undefined;
  PeerAddress: string | undefined;
  BgpOptions?: TransitGatewayConnectRequestBgpOptions | undefined;
  InsideCidrBlocks: string[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayAttachmentBgpConfiguration {
  TransitGatewayAsn?: number | undefined;
  PeerAsn?: number | undefined;
  TransitGatewayAddress?: string | undefined;
  PeerAddress?: string | undefined;
  BgpStatus?: BgpStatus | undefined;
}
export interface TransitGatewayConnectPeerConfiguration {
  TransitGatewayAddress?: string | undefined;
  PeerAddress?: string | undefined;
  InsideCidrBlocks?: string[] | undefined;
  Protocol?: ProtocolValue | undefined;
  BgpConfigurations?: TransitGatewayAttachmentBgpConfiguration[] | undefined;
}
export interface TransitGatewayConnectPeer {
  TransitGatewayAttachmentId?: string | undefined;
  TransitGatewayConnectPeerId?: string | undefined;
  State?: TransitGatewayConnectPeerState | undefined;
  CreationTime?: Date | undefined;
  ConnectPeerConfiguration?: TransitGatewayConnectPeerConfiguration | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTransitGatewayConnectPeerResult {
  TransitGatewayConnectPeer?: TransitGatewayConnectPeer | undefined;
}
export interface CreateTransitGatewayMeteringPolicyRequest {
  TransitGatewayId: string | undefined;
  MiddleboxAttachmentIds?: string[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayMeteringPolicy {
  TransitGatewayMeteringPolicyId?: string | undefined;
  TransitGatewayId?: string | undefined;
  MiddleboxAttachmentIds?: string[] | undefined;
  State?: TransitGatewayMeteringPolicyState | undefined;
  UpdateEffectiveAt?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTransitGatewayMeteringPolicyResult {
  TransitGatewayMeteringPolicy?: TransitGatewayMeteringPolicy | undefined;
}
export interface CreateTransitGatewayMeteringPolicyEntryRequest {
  TransitGatewayMeteringPolicyId: string | undefined;
  PolicyRuleNumber: number | undefined;
  SourceTransitGatewayAttachmentId?: string | undefined;
  SourceTransitGatewayAttachmentType?:
    | TransitGatewayAttachmentResourceType
    | undefined;
  SourceCidrBlock?: string | undefined;
  SourcePortRange?: string | undefined;
  DestinationTransitGatewayAttachmentId?: string | undefined;
  DestinationTransitGatewayAttachmentType?:
    | TransitGatewayAttachmentResourceType
    | undefined;
  DestinationCidrBlock?: string | undefined;
  DestinationPortRange?: string | undefined;
  Protocol?: string | undefined;
  MeteredAccount: TransitGatewayMeteringPayerType | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayMeteringPolicyRule {
  SourceTransitGatewayAttachmentId?: string | undefined;
  SourceTransitGatewayAttachmentType?:
    | TransitGatewayAttachmentResourceType
    | undefined;
  SourceCidrBlock?: string | undefined;
  SourcePortRange?: string | undefined;
  DestinationTransitGatewayAttachmentId?: string | undefined;
  DestinationTransitGatewayAttachmentType?:
    | TransitGatewayAttachmentResourceType
    | undefined;
  DestinationCidrBlock?: string | undefined;
  DestinationPortRange?: string | undefined;
  Protocol?: string | undefined;
}
export interface TransitGatewayMeteringPolicyEntry {
  PolicyRuleNumber?: string | undefined;
  MeteredAccount?: TransitGatewayMeteringPayerType | undefined;
  State?: TransitGatewayMeteringPolicyEntryState | undefined;
  UpdatedAt?: Date | undefined;
  UpdateEffectiveAt?: Date | undefined;
  MeteringPolicyRule?: TransitGatewayMeteringPolicyRule | undefined;
}
export interface CreateTransitGatewayMeteringPolicyEntryResult {
  TransitGatewayMeteringPolicyEntry?:
    | TransitGatewayMeteringPolicyEntry
    | undefined;
}
export interface CreateTransitGatewayMulticastDomainRequestOptions {
  Igmpv2Support?: Igmpv2SupportValue | undefined;
  StaticSourcesSupport?: StaticSourcesSupportValue | undefined;
  AutoAcceptSharedAssociations?: AutoAcceptSharedAssociationsValue | undefined;
}
export interface CreateTransitGatewayMulticastDomainRequest {
  TransitGatewayId: string | undefined;
  Options?: CreateTransitGatewayMulticastDomainRequestOptions | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayMulticastDomainOptions {
  Igmpv2Support?: Igmpv2SupportValue | undefined;
  StaticSourcesSupport?: StaticSourcesSupportValue | undefined;
  AutoAcceptSharedAssociations?: AutoAcceptSharedAssociationsValue | undefined;
}
export interface TransitGatewayMulticastDomain {
  TransitGatewayMulticastDomainId?: string | undefined;
  TransitGatewayId?: string | undefined;
  TransitGatewayMulticastDomainArn?: string | undefined;
  OwnerId?: string | undefined;
  Options?: TransitGatewayMulticastDomainOptions | undefined;
  State?: TransitGatewayMulticastDomainState | undefined;
  CreationTime?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTransitGatewayMulticastDomainResult {
  TransitGatewayMulticastDomain?: TransitGatewayMulticastDomain | undefined;
}
export interface CreateTransitGatewayPeeringAttachmentRequestOptions {
  DynamicRouting?: DynamicRoutingValue | undefined;
}
export interface CreateTransitGatewayPeeringAttachmentRequest {
  TransitGatewayId: string | undefined;
  PeerTransitGatewayId: string | undefined;
  PeerAccountId: string | undefined;
  PeerRegion: string | undefined;
  Options?: CreateTransitGatewayPeeringAttachmentRequestOptions | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CreateTransitGatewayPeeringAttachmentResult {
  TransitGatewayPeeringAttachment?: TransitGatewayPeeringAttachment | undefined;
}
export interface CreateTransitGatewayPolicyTableRequest {
  TransitGatewayId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayPolicyTable {
  TransitGatewayPolicyTableId?: string | undefined;
  TransitGatewayId?: string | undefined;
  State?: TransitGatewayPolicyTableState | undefined;
  CreationTime?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTransitGatewayPolicyTableResult {
  TransitGatewayPolicyTable?: TransitGatewayPolicyTable | undefined;
}
export interface CreateTransitGatewayPrefixListReferenceRequest {
  TransitGatewayRouteTableId: string | undefined;
  PrefixListId: string | undefined;
  TransitGatewayAttachmentId?: string | undefined;
  Blackhole?: boolean | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayPrefixListAttachment {
  TransitGatewayAttachmentId?: string | undefined;
  ResourceType?: TransitGatewayAttachmentResourceType | undefined;
  ResourceId?: string | undefined;
}
export interface TransitGatewayPrefixListReference {
  TransitGatewayRouteTableId?: string | undefined;
  PrefixListId?: string | undefined;
  PrefixListOwnerId?: string | undefined;
  State?: TransitGatewayPrefixListReferenceState | undefined;
  Blackhole?: boolean | undefined;
  TransitGatewayAttachment?: TransitGatewayPrefixListAttachment | undefined;
}
export interface CreateTransitGatewayPrefixListReferenceResult {
  TransitGatewayPrefixListReference?:
    | TransitGatewayPrefixListReference
    | undefined;
}
export interface CreateTransitGatewayRouteRequest {
  DestinationCidrBlock: string | undefined;
  TransitGatewayRouteTableId: string | undefined;
  TransitGatewayAttachmentId?: string | undefined;
  Blackhole?: boolean | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayRouteAttachment {
  ResourceId?: string | undefined;
  TransitGatewayAttachmentId?: string | undefined;
  ResourceType?: TransitGatewayAttachmentResourceType | undefined;
}
export interface TransitGatewayRoute {
  DestinationCidrBlock?: string | undefined;
  PrefixListId?: string | undefined;
  TransitGatewayRouteTableAnnouncementId?: string | undefined;
  TransitGatewayAttachments?: TransitGatewayRouteAttachment[] | undefined;
  Type?: TransitGatewayRouteType | undefined;
  State?: TransitGatewayRouteState | undefined;
}
export interface CreateTransitGatewayRouteResult {
  Route?: TransitGatewayRoute | undefined;
}
export interface CreateTransitGatewayRouteTableRequest {
  TransitGatewayId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayRouteTable {
  TransitGatewayRouteTableId?: string | undefined;
  TransitGatewayId?: string | undefined;
  State?: TransitGatewayRouteTableState | undefined;
  DefaultAssociationRouteTable?: boolean | undefined;
  DefaultPropagationRouteTable?: boolean | undefined;
  CreationTime?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTransitGatewayRouteTableResult {
  TransitGatewayRouteTable?: TransitGatewayRouteTable | undefined;
}
export interface CreateTransitGatewayRouteTableAnnouncementRequest {
  TransitGatewayRouteTableId: string | undefined;
  PeeringAttachmentId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface TransitGatewayRouteTableAnnouncement {
  TransitGatewayRouteTableAnnouncementId?: string | undefined;
  TransitGatewayId?: string | undefined;
  CoreNetworkId?: string | undefined;
  PeerTransitGatewayId?: string | undefined;
  PeerCoreNetworkId?: string | undefined;
  PeeringAttachmentId?: string | undefined;
  AnnouncementDirection?:
    | TransitGatewayRouteTableAnnouncementDirection
    | undefined;
  TransitGatewayRouteTableId?: string | undefined;
  State?: TransitGatewayRouteTableAnnouncementState | undefined;
  CreationTime?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateTransitGatewayRouteTableAnnouncementResult {
  TransitGatewayRouteTableAnnouncement?:
    | TransitGatewayRouteTableAnnouncement
    | undefined;
}
export interface CreateTransitGatewayVpcAttachmentRequestOptions {
  DnsSupport?: DnsSupportValue | undefined;
  SecurityGroupReferencingSupport?:
    | SecurityGroupReferencingSupportValue
    | undefined;
  Ipv6Support?: Ipv6SupportValue | undefined;
  ApplianceModeSupport?: ApplianceModeSupportValue | undefined;
}
export interface CreateTransitGatewayVpcAttachmentRequest {
  TransitGatewayId: string | undefined;
  VpcId: string | undefined;
  SubnetIds: string[] | undefined;
  Options?: CreateTransitGatewayVpcAttachmentRequestOptions | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CreateTransitGatewayVpcAttachmentResult {
  TransitGatewayVpcAttachment?: TransitGatewayVpcAttachment | undefined;
}
export interface CreateVerifiedAccessEndpointPortRange {
  FromPort?: number | undefined;
  ToPort?: number | undefined;
}
export interface CreateVerifiedAccessEndpointCidrOptions {
  Protocol?: VerifiedAccessEndpointProtocol | undefined;
  SubnetIds?: string[] | undefined;
  Cidr?: string | undefined;
  PortRanges?: CreateVerifiedAccessEndpointPortRange[] | undefined;
}
export interface CreateVerifiedAccessEndpointLoadBalancerOptions {
  Protocol?: VerifiedAccessEndpointProtocol | undefined;
  Port?: number | undefined;
  LoadBalancerArn?: string | undefined;
  SubnetIds?: string[] | undefined;
  PortRanges?: CreateVerifiedAccessEndpointPortRange[] | undefined;
}
export interface CreateVerifiedAccessEndpointEniOptions {
  NetworkInterfaceId?: string | undefined;
  Protocol?: VerifiedAccessEndpointProtocol | undefined;
  Port?: number | undefined;
  PortRanges?: CreateVerifiedAccessEndpointPortRange[] | undefined;
}
export interface CreateVerifiedAccessEndpointRdsOptions {
  Protocol?: VerifiedAccessEndpointProtocol | undefined;
  Port?: number | undefined;
  RdsDbInstanceArn?: string | undefined;
  RdsDbClusterArn?: string | undefined;
  RdsDbProxyArn?: string | undefined;
  RdsEndpoint?: string | undefined;
  SubnetIds?: string[] | undefined;
}
export interface VerifiedAccessSseSpecificationRequest {
  CustomerManagedKeyEnabled?: boolean | undefined;
  KmsKeyArn?: string | undefined;
}
export interface CreateVerifiedAccessEndpointRequest {
  VerifiedAccessGroupId: string | undefined;
  EndpointType: VerifiedAccessEndpointType | undefined;
  AttachmentType: VerifiedAccessEndpointAttachmentType | undefined;
  DomainCertificateArn?: string | undefined;
  ApplicationDomain?: string | undefined;
  EndpointDomainPrefix?: string | undefined;
  SecurityGroupIds?: string[] | undefined;
  LoadBalancerOptions?:
    | CreateVerifiedAccessEndpointLoadBalancerOptions
    | undefined;
  NetworkInterfaceOptions?: CreateVerifiedAccessEndpointEniOptions | undefined;
  Description?: string | undefined;
  PolicyDocument?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  SseSpecification?: VerifiedAccessSseSpecificationRequest | undefined;
  RdsOptions?: CreateVerifiedAccessEndpointRdsOptions | undefined;
  CidrOptions?: CreateVerifiedAccessEndpointCidrOptions | undefined;
}
export interface VerifiedAccessEndpointPortRange {
  FromPort?: number | undefined;
  ToPort?: number | undefined;
}
export interface VerifiedAccessEndpointCidrOptions {
  Cidr?: string | undefined;
  PortRanges?: VerifiedAccessEndpointPortRange[] | undefined;
  Protocol?: VerifiedAccessEndpointProtocol | undefined;
  SubnetIds?: string[] | undefined;
}
export interface VerifiedAccessEndpointLoadBalancerOptions {
  Protocol?: VerifiedAccessEndpointProtocol | undefined;
  Port?: number | undefined;
  LoadBalancerArn?: string | undefined;
  SubnetIds?: string[] | undefined;
  PortRanges?: VerifiedAccessEndpointPortRange[] | undefined;
}
export interface VerifiedAccessEndpointEniOptions {
  NetworkInterfaceId?: string | undefined;
  Protocol?: VerifiedAccessEndpointProtocol | undefined;
  Port?: number | undefined;
  PortRanges?: VerifiedAccessEndpointPortRange[] | undefined;
}
export interface VerifiedAccessEndpointRdsOptions {
  Protocol?: VerifiedAccessEndpointProtocol | undefined;
  Port?: number | undefined;
  RdsDbInstanceArn?: string | undefined;
  RdsDbClusterArn?: string | undefined;
  RdsDbProxyArn?: string | undefined;
  RdsEndpoint?: string | undefined;
  SubnetIds?: string[] | undefined;
}
export interface VerifiedAccessEndpointStatus {
  Code?: VerifiedAccessEndpointStatusCode | undefined;
  Message?: string | undefined;
}
export interface VerifiedAccessEndpoint {
  VerifiedAccessInstanceId?: string | undefined;
  VerifiedAccessGroupId?: string | undefined;
  VerifiedAccessEndpointId?: string | undefined;
  ApplicationDomain?: string | undefined;
  EndpointType?: VerifiedAccessEndpointType | undefined;
  AttachmentType?: VerifiedAccessEndpointAttachmentType | undefined;
  DomainCertificateArn?: string | undefined;
  EndpointDomain?: string | undefined;
  DeviceValidationDomain?: string | undefined;
  SecurityGroupIds?: string[] | undefined;
  LoadBalancerOptions?: VerifiedAccessEndpointLoadBalancerOptions | undefined;
  NetworkInterfaceOptions?: VerifiedAccessEndpointEniOptions | undefined;
  Status?: VerifiedAccessEndpointStatus | undefined;
  Description?: string | undefined;
  CreationTime?: string | undefined;
  LastUpdatedTime?: string | undefined;
  DeletionTime?: string | undefined;
  Tags?: Tag[] | undefined;
  SseSpecification?: VerifiedAccessSseSpecificationResponse | undefined;
  RdsOptions?: VerifiedAccessEndpointRdsOptions | undefined;
  CidrOptions?: VerifiedAccessEndpointCidrOptions | undefined;
}
export interface CreateVerifiedAccessEndpointResult {
  VerifiedAccessEndpoint?: VerifiedAccessEndpoint | undefined;
}
export interface CreateVerifiedAccessGroupRequest {
  VerifiedAccessInstanceId: string | undefined;
  Description?: string | undefined;
  PolicyDocument?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  SseSpecification?: VerifiedAccessSseSpecificationRequest | undefined;
}
export interface VerifiedAccessGroup {
  VerifiedAccessGroupId?: string | undefined;
  VerifiedAccessInstanceId?: string | undefined;
  Description?: string | undefined;
  Owner?: string | undefined;
  VerifiedAccessGroupArn?: string | undefined;
  CreationTime?: string | undefined;
  LastUpdatedTime?: string | undefined;
  DeletionTime?: string | undefined;
  Tags?: Tag[] | undefined;
  SseSpecification?: VerifiedAccessSseSpecificationResponse | undefined;
}
export interface CreateVerifiedAccessGroupResult {
  VerifiedAccessGroup?: VerifiedAccessGroup | undefined;
}
export interface CreateVerifiedAccessInstanceRequest {
  Description?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  FIPSEnabled?: boolean | undefined;
  CidrEndpointsCustomSubDomain?: string | undefined;
}
export interface CreateVerifiedAccessInstanceResult {
  VerifiedAccessInstance?: VerifiedAccessInstance | undefined;
}
export interface CreateVerifiedAccessTrustProviderDeviceOptions {
  TenantId?: string | undefined;
  PublicSigningKeyUrl?: string | undefined;
}
export interface CreateVerifiedAccessNativeApplicationOidcOptions {
  PublicSigningKeyEndpoint?: string | undefined;
  Issuer?: string | undefined;
  AuthorizationEndpoint?: string | undefined;
  TokenEndpoint?: string | undefined;
  UserInfoEndpoint?: string | undefined;
  ClientId?: string | undefined;
  ClientSecret?: string | undefined;
  Scope?: string | undefined;
}
export interface CreateVerifiedAccessTrustProviderOidcOptions {
  Issuer?: string | undefined;
  AuthorizationEndpoint?: string | undefined;
  TokenEndpoint?: string | undefined;
  UserInfoEndpoint?: string | undefined;
  ClientId?: string | undefined;
  ClientSecret?: string | undefined;
  Scope?: string | undefined;
}
export interface CreateVerifiedAccessTrustProviderRequest {
  TrustProviderType: TrustProviderType | undefined;
  UserTrustProviderType?: UserTrustProviderType | undefined;
  DeviceTrustProviderType?: DeviceTrustProviderType | undefined;
  OidcOptions?: CreateVerifiedAccessTrustProviderOidcOptions | undefined;
  DeviceOptions?: CreateVerifiedAccessTrustProviderDeviceOptions | undefined;
  PolicyReferenceName: string | undefined;
  Description?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  SseSpecification?: VerifiedAccessSseSpecificationRequest | undefined;
  NativeApplicationOidcOptions?:
    | CreateVerifiedAccessNativeApplicationOidcOptions
    | undefined;
}
export interface CreateVerifiedAccessTrustProviderResult {
  VerifiedAccessTrustProvider?: VerifiedAccessTrustProvider | undefined;
}
export interface CreateVolumeRequest {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  Encrypted?: boolean | undefined;
  Iops?: number | undefined;
  KmsKeyId?: string | undefined;
  OutpostArn?: string | undefined;
  Size?: number | undefined;
  SnapshotId?: string | undefined;
  VolumeType?: VolumeType | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  MultiAttachEnabled?: boolean | undefined;
  Throughput?: number | undefined;
  ClientToken?: string | undefined;
  VolumeInitializationRate?: number | undefined;
  Operator?: OperatorRequest | undefined;
  DryRun?: boolean | undefined;
}
export interface VpcEncryptionControlConfiguration {
  Mode: VpcEncryptionControlMode | undefined;
  InternetGatewayExclusion?:
    | VpcEncryptionControlExclusionStateInput
    | undefined;
  EgressOnlyInternetGatewayExclusion?:
    | VpcEncryptionControlExclusionStateInput
    | undefined;
  NatGatewayExclusion?: VpcEncryptionControlExclusionStateInput | undefined;
  VirtualPrivateGatewayExclusion?:
    | VpcEncryptionControlExclusionStateInput
    | undefined;
  VpcPeeringExclusion?: VpcEncryptionControlExclusionStateInput | undefined;
  LambdaExclusion?: VpcEncryptionControlExclusionStateInput | undefined;
  VpcLatticeExclusion?: VpcEncryptionControlExclusionStateInput | undefined;
  ElasticFileSystemExclusion?:
    | VpcEncryptionControlExclusionStateInput
    | undefined;
}
export interface CreateVpcRequest {
  CidrBlock?: string | undefined;
  Ipv6Pool?: string | undefined;
  Ipv6CidrBlock?: string | undefined;
  Ipv4IpamPoolId?: string | undefined;
  Ipv4NetmaskLength?: number | undefined;
  Ipv6IpamPoolId?: string | undefined;
  Ipv6NetmaskLength?: number | undefined;
  Ipv6CidrBlockNetworkBorderGroup?: string | undefined;
  VpcEncryptionControl?: VpcEncryptionControlConfiguration | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  InstanceTenancy?: Tenancy | undefined;
  AmazonProvidedIpv6CidrBlock?: boolean | undefined;
}
export interface CreateVpcResult {
  Vpc?: Vpc | undefined;
}
export interface CreateVpcBlockPublicAccessExclusionRequest {
  DryRun?: boolean | undefined;
  SubnetId?: string | undefined;
  VpcId?: string | undefined;
  InternetGatewayExclusionMode: InternetGatewayExclusionMode | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface VpcBlockPublicAccessExclusion {
  ExclusionId?: string | undefined;
  InternetGatewayExclusionMode?: InternetGatewayExclusionMode | undefined;
  ResourceArn?: string | undefined;
  State?: VpcBlockPublicAccessExclusionState | undefined;
  Reason?: string | undefined;
  CreationTimestamp?: Date | undefined;
  LastUpdateTimestamp?: Date | undefined;
  DeletionTimestamp?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateVpcBlockPublicAccessExclusionResult {
  VpcBlockPublicAccessExclusion?: VpcBlockPublicAccessExclusion | undefined;
}
export interface CreateVpcEncryptionControlRequest {
  DryRun?: boolean | undefined;
  VpcId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface CreateVpcEncryptionControlResult {
  VpcEncryptionControl?: VpcEncryptionControl | undefined;
}
export interface DnsOptionsSpecification {
  DnsRecordIpType?: DnsRecordIpType | undefined;
  PrivateDnsOnlyForInboundResolverEndpoint?: boolean | undefined;
  PrivateDnsPreference?: string | undefined;
  PrivateDnsSpecifiedDomains?: string[] | undefined;
}
export interface SubnetConfiguration {
  SubnetId?: string | undefined;
  Ipv4?: string | undefined;
  Ipv6?: string | undefined;
}
export interface CreateVpcEndpointRequest {
  DryRun?: boolean | undefined;
  VpcEndpointType?: VpcEndpointType | undefined;
  VpcId: string | undefined;
  ServiceName?: string | undefined;
  PolicyDocument?: string | undefined;
  RouteTableIds?: string[] | undefined;
  SubnetIds?: string[] | undefined;
  SecurityGroupIds?: string[] | undefined;
  IpAddressType?: IpAddressType | undefined;
  DnsOptions?: DnsOptionsSpecification | undefined;
  ClientToken?: string | undefined;
  PrivateDnsEnabled?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  SubnetConfigurations?: SubnetConfiguration[] | undefined;
  ServiceNetworkArn?: string | undefined;
  ResourceConfigurationArn?: string | undefined;
  ServiceRegion?: string | undefined;
}
export interface DnsEntry {
  DnsName?: string | undefined;
  HostedZoneId?: string | undefined;
}
export interface DnsOptions {
  DnsRecordIpType?: DnsRecordIpType | undefined;
  PrivateDnsOnlyForInboundResolverEndpoint?: boolean | undefined;
  PrivateDnsPreference?: string | undefined;
  PrivateDnsSpecifiedDomains?: string[] | undefined;
}
export interface SecurityGroupIdentifier {
  GroupId?: string | undefined;
  GroupName?: string | undefined;
}
export interface SubnetIpPrefixes {
  SubnetId?: string | undefined;
  IpPrefixes?: string[] | undefined;
}
export interface LastError {
  Message?: string | undefined;
  Code?: string | undefined;
}
export interface PayerResponsibilityEntry {
  Scope?: PayerResponsibilityScope | undefined;
  PayerResponsibilityType?: PayerResponsibilityType | undefined;
}
export interface VpcEndpoint {
  VpcEndpointId?: string | undefined;
  VpcEndpointType?: VpcEndpointType | undefined;
  VpcId?: string | undefined;
  ServiceName?: string | undefined;
  State?: State | undefined;
  PolicyDocument?: string | undefined;
  RouteTableIds?: string[] | undefined;
  SubnetIds?: string[] | undefined;
  Groups?: SecurityGroupIdentifier[] | undefined;
  IpAddressType?: IpAddressType | undefined;
  DnsOptions?: DnsOptions | undefined;
  PrivateDnsEnabled?: boolean | undefined;
  RequesterManaged?: boolean | undefined;
  NetworkInterfaceIds?: string[] | undefined;
  DnsEntries?: DnsEntry[] | undefined;
  CreationTimestamp?: Date | undefined;
  Tags?: Tag[] | undefined;
  OwnerId?: string | undefined;
  LastError?: LastError | undefined;
  Ipv4Prefixes?: SubnetIpPrefixes[] | undefined;
  Ipv6Prefixes?: SubnetIpPrefixes[] | undefined;
  FailureReason?: string | undefined;
  ServiceNetworkArn?: string | undefined;
  ResourceConfigurationArn?: string | undefined;
  ServiceRegion?: string | undefined;
  PayerResponsibilities?: PayerResponsibilityEntry[] | undefined;
}
export interface CreateVpcEndpointResult {
  VpcEndpoint?: VpcEndpoint | undefined;
  ClientToken?: string | undefined;
}
export interface CreateVpcEndpointConnectionNotificationRequest {
  DryRun?: boolean | undefined;
  ServiceId?: string | undefined;
  VpcEndpointId?: string | undefined;
  ConnectionNotificationArn: string | undefined;
  ConnectionEvents: string[] | undefined;
  ClientToken?: string | undefined;
}
export interface ConnectionNotification {
  ConnectionNotificationId?: string | undefined;
  ServiceId?: string | undefined;
  VpcEndpointId?: string | undefined;
  ConnectionNotificationType?: ConnectionNotificationType | undefined;
  ConnectionNotificationArn?: string | undefined;
  ConnectionEvents?: string[] | undefined;
  ConnectionNotificationState?: ConnectionNotificationState | undefined;
  ServiceRegion?: string | undefined;
}
export interface CreateVpcEndpointConnectionNotificationResult {
  ConnectionNotification?: ConnectionNotification | undefined;
  ClientToken?: string | undefined;
}
export interface CreateVpcEndpointServiceConfigurationRequest {
  DryRun?: boolean | undefined;
  AcceptanceRequired?: boolean | undefined;
  PrivateDnsName?: string | undefined;
  NetworkLoadBalancerArns?: string[] | undefined;
  GatewayLoadBalancerArns?: string[] | undefined;
  SupportedIpAddressTypes?: string[] | undefined;
  SupportedRegions?: string[] | undefined;
  ClientToken?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface PrivateDnsNameConfiguration {
  State?: DnsNameState | undefined;
  Type?: string | undefined;
  Value?: string | undefined;
  Name?: string | undefined;
}
export interface ServiceTypeDetail {
  ServiceType?: ServiceType | undefined;
}
export interface SupportedRegionDetail {
  Region?: string | undefined;
  ServiceState?: string | undefined;
}
export interface ServiceConfiguration {
  ServiceType?: ServiceTypeDetail[] | undefined;
  ServiceId?: string | undefined;
  ServiceName?: string | undefined;
  ServiceState?: ServiceState | undefined;
  AvailabilityZoneIds?: string[] | undefined;
  AvailabilityZones?: string[] | undefined;
  AcceptanceRequired?: boolean | undefined;
  ManagesVpcEndpoints?: boolean | undefined;
  NetworkLoadBalancerArns?: string[] | undefined;
  GatewayLoadBalancerArns?: string[] | undefined;
  SupportedIpAddressTypes?: ServiceConnectivityType[] | undefined;
  BaseEndpointDnsNames?: string[] | undefined;
  PrivateDnsName?: string | undefined;
  PrivateDnsNameConfiguration?: PrivateDnsNameConfiguration | undefined;
  PayerResponsibility?: PayerResponsibility | undefined;
  Tags?: Tag[] | undefined;
  SupportedRegions?: SupportedRegionDetail[] | undefined;
  RemoteAccessEnabled?: boolean | undefined;
}
export interface CreateVpcEndpointServiceConfigurationResult {
  ServiceConfiguration?: ServiceConfiguration | undefined;
  ClientToken?: string | undefined;
}
export interface CreateVpcPeeringConnectionRequest {
  PeerRegion?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  VpcId: string | undefined;
  PeerVpcId?: string | undefined;
  PeerOwnerId?: string | undefined;
}
export interface CreateVpcPeeringConnectionResult {
  VpcPeeringConnection?: VpcPeeringConnection | undefined;
}
export interface CreateVpnConcentratorRequest {
  Type: VpnConcentratorType | undefined;
  TransitGatewayId?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface VpnConcentrator {
  VpnConcentratorId?: string | undefined;
  State?: string | undefined;
  TransitGatewayId?: string | undefined;
  TransitGatewayAttachmentId?: string | undefined;
  Type?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateVpnConcentratorResult {
  VpnConcentrator?: VpnConcentrator | undefined;
}
export interface IKEVersionsRequestListValue {
  Value?: string | undefined;
}
export interface CloudWatchLogOptionsSpecification {
  LogEnabled?: boolean | undefined;
  LogGroupArn?: string | undefined;
  LogOutputFormat?: string | undefined;
  BgpLogEnabled?: boolean | undefined;
  BgpLogGroupArn?: string | undefined;
  BgpLogOutputFormat?: string | undefined;
}
export interface VpnTunnelLogOptionsSpecification {
  CloudWatchLogOptions?: CloudWatchLogOptionsSpecification | undefined;
}
export interface Phase1DHGroupNumbersRequestListValue {
  Value?: number | undefined;
}
export interface Phase1EncryptionAlgorithmsRequestListValue {
  Value?: string | undefined;
}
export interface Phase1IntegrityAlgorithmsRequestListValue {
  Value?: string | undefined;
}
export interface Phase2DHGroupNumbersRequestListValue {
  Value?: number | undefined;
}
export interface Phase2EncryptionAlgorithmsRequestListValue {
  Value?: string | undefined;
}
export interface Phase2IntegrityAlgorithmsRequestListValue {
  Value?: string | undefined;
}
export interface VpnTunnelOptionsSpecification {
  TunnelInsideCidr?: string | undefined;
  TunnelInsideIpv6Cidr?: string | undefined;
  PreSharedKey?: string | undefined;
  Phase1LifetimeSeconds?: number | undefined;
  Phase2LifetimeSeconds?: number | undefined;
  RekeyMarginTimeSeconds?: number | undefined;
  RekeyFuzzPercentage?: number | undefined;
  ReplayWindowSize?: number | undefined;
  DPDTimeoutSeconds?: number | undefined;
  DPDTimeoutAction?: string | undefined;
  Phase1EncryptionAlgorithms?:
    | Phase1EncryptionAlgorithmsRequestListValue[]
    | undefined;
  Phase2EncryptionAlgorithms?:
    | Phase2EncryptionAlgorithmsRequestListValue[]
    | undefined;
  Phase1IntegrityAlgorithms?:
    | Phase1IntegrityAlgorithmsRequestListValue[]
    | undefined;
  Phase2IntegrityAlgorithms?:
    | Phase2IntegrityAlgorithmsRequestListValue[]
    | undefined;
  Phase1DHGroupNumbers?: Phase1DHGroupNumbersRequestListValue[] | undefined;
  Phase2DHGroupNumbers?: Phase2DHGroupNumbersRequestListValue[] | undefined;
  IKEVersions?: IKEVersionsRequestListValue[] | undefined;
  StartupAction?: string | undefined;
  LogOptions?: VpnTunnelLogOptionsSpecification | undefined;
  EnableTunnelLifecycleControl?: boolean | undefined;
}
export interface VpnConnectionOptionsSpecification {
  EnableAcceleration?: boolean | undefined;
  TunnelInsideIpVersion?: TunnelInsideIpVersion | undefined;
  TunnelOptions?: VpnTunnelOptionsSpecification[] | undefined;
  LocalIpv4NetworkCidr?: string | undefined;
  RemoteIpv4NetworkCidr?: string | undefined;
  LocalIpv6NetworkCidr?: string | undefined;
  RemoteIpv6NetworkCidr?: string | undefined;
  OutsideIpAddressType?: string | undefined;
  TransportTransitGatewayAttachmentId?: string | undefined;
  TunnelBandwidth?: VpnTunnelBandwidth | undefined;
  StaticRoutesOnly?: boolean | undefined;
}
export interface CreateVpnConnectionRequest {
  CustomerGatewayId: string | undefined;
  Type: string | undefined;
  VpnGatewayId?: string | undefined;
  TransitGatewayId?: string | undefined;
  VpnConcentratorId?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  PreSharedKeyStorage?: string | undefined;
  DryRun?: boolean | undefined;
  Options?: VpnConnectionOptionsSpecification | undefined;
}
export interface IKEVersionsListValue {
  Value?: string | undefined;
}
export interface CloudWatchLogOptions {
  LogEnabled?: boolean | undefined;
  LogGroupArn?: string | undefined;
  LogOutputFormat?: string | undefined;
  BgpLogEnabled?: boolean | undefined;
  BgpLogGroupArn?: string | undefined;
  BgpLogOutputFormat?: string | undefined;
}
export interface VpnTunnelLogOptions {
  CloudWatchLogOptions?: CloudWatchLogOptions | undefined;
}
export interface Phase1DHGroupNumbersListValue {
  Value?: number | undefined;
}
export interface Phase1EncryptionAlgorithmsListValue {
  Value?: string | undefined;
}
export interface Phase1IntegrityAlgorithmsListValue {
  Value?: string | undefined;
}
export interface Phase2DHGroupNumbersListValue {
  Value?: number | undefined;
}
export interface Phase2EncryptionAlgorithmsListValue {
  Value?: string | undefined;
}
export interface Phase2IntegrityAlgorithmsListValue {
  Value?: string | undefined;
}
export interface TunnelOption {
  OutsideIpAddress?: string | undefined;
  TunnelInsideCidr?: string | undefined;
  TunnelInsideIpv6Cidr?: string | undefined;
  PreSharedKey?: string | undefined;
  Phase1LifetimeSeconds?: number | undefined;
  Phase2LifetimeSeconds?: number | undefined;
  RekeyMarginTimeSeconds?: number | undefined;
  RekeyFuzzPercentage?: number | undefined;
  ReplayWindowSize?: number | undefined;
  DpdTimeoutSeconds?: number | undefined;
  DpdTimeoutAction?: string | undefined;
  Phase1EncryptionAlgorithms?:
    | Phase1EncryptionAlgorithmsListValue[]
    | undefined;
  Phase2EncryptionAlgorithms?:
    | Phase2EncryptionAlgorithmsListValue[]
    | undefined;
  Phase1IntegrityAlgorithms?: Phase1IntegrityAlgorithmsListValue[] | undefined;
  Phase2IntegrityAlgorithms?: Phase2IntegrityAlgorithmsListValue[] | undefined;
  Phase1DHGroupNumbers?: Phase1DHGroupNumbersListValue[] | undefined;
  Phase2DHGroupNumbers?: Phase2DHGroupNumbersListValue[] | undefined;
  IkeVersions?: IKEVersionsListValue[] | undefined;
  StartupAction?: string | undefined;
  LogOptions?: VpnTunnelLogOptions | undefined;
  EnableTunnelLifecycleControl?: boolean | undefined;
}
export interface VpnConnectionOptions {
  EnableAcceleration?: boolean | undefined;
  StaticRoutesOnly?: boolean | undefined;
  LocalIpv4NetworkCidr?: string | undefined;
  RemoteIpv4NetworkCidr?: string | undefined;
  LocalIpv6NetworkCidr?: string | undefined;
  RemoteIpv6NetworkCidr?: string | undefined;
  OutsideIpAddressType?: string | undefined;
  TransportTransitGatewayAttachmentId?: string | undefined;
  TunnelInsideIpVersion?: TunnelInsideIpVersion | undefined;
  TunnelOptions?: TunnelOption[] | undefined;
  TunnelBandwidth?: VpnTunnelBandwidth | undefined;
}
export interface VpnStaticRoute {
  DestinationCidrBlock?: string | undefined;
  Source?: VpnStaticRouteSource | undefined;
  State?: VpnState | undefined;
}
export interface VgwTelemetry {
  AcceptedRouteCount?: number | undefined;
  LastStatusChange?: Date | undefined;
  OutsideIpAddress?: string | undefined;
  Status?: TelemetryStatus | undefined;
  StatusMessage?: string | undefined;
  CertificateArn?: string | undefined;
}
export interface VpnConnection {
  Category?: string | undefined;
  TransitGatewayId?: string | undefined;
  VpnConcentratorId?: string | undefined;
  CoreNetworkArn?: string | undefined;
  CoreNetworkAttachmentArn?: string | undefined;
  GatewayAssociationState?: GatewayAssociationState | undefined;
  Options?: VpnConnectionOptions | undefined;
  Routes?: VpnStaticRoute[] | undefined;
  Tags?: Tag[] | undefined;
  VgwTelemetry?: VgwTelemetry[] | undefined;
  PreSharedKeyArn?: string | undefined;
  VpnConnectionId?: string | undefined;
  State?: VpnState | undefined;
  CustomerGatewayConfiguration?: string | undefined;
  Type?: GatewayType | undefined;
  CustomerGatewayId?: string | undefined;
  VpnGatewayId?: string | undefined;
}
export interface CreateVpnConnectionResult {
  VpnConnection?: VpnConnection | undefined;
}
export interface CreateVpnConnectionRouteRequest {
  DestinationCidrBlock: string | undefined;
  VpnConnectionId: string | undefined;
}
export interface CreateVpnGatewayRequest {
  AvailabilityZone?: string | undefined;
  Type: GatewayType | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  AmazonSideAsn?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface VpnGateway {
  AmazonSideAsn?: number | undefined;
  Tags?: Tag[] | undefined;
  VpnGatewayId?: string | undefined;
  State?: VpnState | undefined;
  Type?: GatewayType | undefined;
  AvailabilityZone?: string | undefined;
  VpcAttachments?: VpcAttachment[] | undefined;
}
export interface CreateVpnGatewayResult {
  VpnGateway?: VpnGateway | undefined;
}
export interface DeleteCapacityManagerDataExportRequest {
  CapacityManagerDataExportId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteCapacityManagerDataExportResult {
  CapacityManagerDataExportId?: string | undefined;
}
export interface DeleteCarrierGatewayRequest {
  CarrierGatewayId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteCarrierGatewayResult {
  CarrierGateway?: CarrierGateway | undefined;
}
export interface DeleteClientVpnEndpointRequest {
  ClientVpnEndpointId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteClientVpnEndpointResult {
  Status?: ClientVpnEndpointStatus | undefined;
}
export interface DeleteClientVpnRouteRequest {
  ClientVpnEndpointId: string | undefined;
  TargetVpcSubnetId?: string | undefined;
  DestinationCidrBlock: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteClientVpnRouteResult {
  Status?: ClientVpnRouteStatus | undefined;
}
export interface DeleteCoipCidrRequest {
  Cidr: string | undefined;
  CoipPoolId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteCoipCidrResult {
  CoipCidr?: CoipCidr | undefined;
}
export interface DeleteCoipPoolRequest {
  CoipPoolId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteCoipPoolResult {
  CoipPool?: CoipPool | undefined;
}
export interface DeleteCustomerGatewayRequest {
  CustomerGatewayId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteDhcpOptionsRequest {
  DhcpOptionsId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteEgressOnlyInternetGatewayRequest {
  DryRun?: boolean | undefined;
  EgressOnlyInternetGatewayId: string | undefined;
}
export interface DeleteEgressOnlyInternetGatewayResult {
  ReturnCode?: boolean | undefined;
}
export interface DeleteFleetsRequest {
  DryRun?: boolean | undefined;
  FleetIds: string[] | undefined;
  TerminateInstances: boolean | undefined;
}
export interface DeleteFleetSuccessItem {
  CurrentFleetState?: FleetStateCode | undefined;
  PreviousFleetState?: FleetStateCode | undefined;
  FleetId?: string | undefined;
}
export interface DeleteFleetError {
  Code?: DeleteFleetErrorCode | undefined;
  Message?: string | undefined;
}
export interface DeleteFleetErrorItem {
  Error?: DeleteFleetError | undefined;
  FleetId?: string | undefined;
}
export interface DeleteFleetsResult {
  SuccessfulFleetDeletions?: DeleteFleetSuccessItem[] | undefined;
  UnsuccessfulFleetDeletions?: DeleteFleetErrorItem[] | undefined;
}
export interface DeleteFlowLogsRequest {
  DryRun?: boolean | undefined;
  FlowLogIds: string[] | undefined;
}
export interface DeleteFlowLogsResult {
  Unsuccessful?: UnsuccessfulItem[] | undefined;
}
export interface DeleteFpgaImageRequest {
  DryRun?: boolean | undefined;
  FpgaImageId: string | undefined;
}
export interface DeleteFpgaImageResult {
  Return?: boolean | undefined;
}
export interface DeleteImageUsageReportRequest {
  ReportId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteImageUsageReportResult {
  Return?: boolean | undefined;
}
export interface DeleteInstanceConnectEndpointRequest {
  DryRun?: boolean | undefined;
  InstanceConnectEndpointId: string | undefined;
}
export interface DeleteInstanceConnectEndpointResult {
  InstanceConnectEndpoint?: Ec2InstanceConnectEndpoint | undefined;
}
export interface DeleteInstanceEventWindowRequest {
  DryRun?: boolean | undefined;
  ForceDelete?: boolean | undefined;
  InstanceEventWindowId: string | undefined;
}
export interface InstanceEventWindowStateChange {
  InstanceEventWindowId?: string | undefined;
  State?: InstanceEventWindowState | undefined;
}
export interface DeleteInstanceEventWindowResult {
  InstanceEventWindowState?: InstanceEventWindowStateChange | undefined;
}
export interface DeleteInternetGatewayRequest {
  DryRun?: boolean | undefined;
  InternetGatewayId: string | undefined;
}
export interface DeleteIpamRequest {
  DryRun?: boolean | undefined;
  IpamId: string | undefined;
  Cascade?: boolean | undefined;
}
export interface DeleteIpamResult {
  Ipam?: Ipam | undefined;
}
export interface DeleteIpamExternalResourceVerificationTokenRequest {
  DryRun?: boolean | undefined;
  IpamExternalResourceVerificationTokenId: string | undefined;
}
export interface DeleteIpamExternalResourceVerificationTokenResult {
  IpamExternalResourceVerificationToken?:
    | IpamExternalResourceVerificationToken
    | undefined;
}
export interface DeleteIpamPolicyRequest {
  DryRun?: boolean | undefined;
  IpamPolicyId: string | undefined;
}
export interface DeleteIpamPolicyResult {
  IpamPolicy?: IpamPolicy | undefined;
}
export interface DeleteIpamPoolRequest {
  DryRun?: boolean | undefined;
  IpamPoolId: string | undefined;
  Cascade?: boolean | undefined;
}
export interface DeleteIpamPoolResult {
  IpamPool?: IpamPool | undefined;
}
export interface DeleteIpamPrefixListResolverRequest {
  DryRun?: boolean | undefined;
  IpamPrefixListResolverId: string | undefined;
}
export interface DeleteIpamPrefixListResolverResult {
  IpamPrefixListResolver?: IpamPrefixListResolver | undefined;
}
export interface DeleteIpamPrefixListResolverTargetRequest {
  DryRun?: boolean | undefined;
  IpamPrefixListResolverTargetId: string | undefined;
}
export interface DeleteIpamPrefixListResolverTargetResult {
  IpamPrefixListResolverTarget?: IpamPrefixListResolverTarget | undefined;
}
export interface DeleteIpamResourceDiscoveryRequest {
  DryRun?: boolean | undefined;
  IpamResourceDiscoveryId: string | undefined;
}
export interface DeleteIpamResourceDiscoveryResult {
  IpamResourceDiscovery?: IpamResourceDiscovery | undefined;
}
export interface DeleteIpamScopeRequest {
  DryRun?: boolean | undefined;
  IpamScopeId: string | undefined;
}
export interface DeleteIpamScopeResult {
  IpamScope?: IpamScope | undefined;
}
export interface DeleteKeyPairRequest {
  KeyName?: string | undefined;
  KeyPairId?: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteKeyPairResult {
  Return?: boolean | undefined;
  KeyPairId?: string | undefined;
}
export interface DeleteLaunchTemplateRequest {
  DryRun?: boolean | undefined;
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
}
export interface DeleteLaunchTemplateResult {
  LaunchTemplate?: LaunchTemplate | undefined;
}
export interface DeleteLaunchTemplateVersionsRequest {
  DryRun?: boolean | undefined;
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  Versions: string[] | undefined;
}
export interface DeleteLaunchTemplateVersionsResponseSuccessItem {
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  VersionNumber?: number | undefined;
}
export interface ResponseError {
  Code?: LaunchTemplateErrorCode | undefined;
  Message?: string | undefined;
}
export interface DeleteLaunchTemplateVersionsResponseErrorItem {
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  VersionNumber?: number | undefined;
  ResponseError?: ResponseError | undefined;
}
export interface DeleteLaunchTemplateVersionsResult {
  SuccessfullyDeletedLaunchTemplateVersions?:
    | DeleteLaunchTemplateVersionsResponseSuccessItem[]
    | undefined;
  UnsuccessfullyDeletedLaunchTemplateVersions?:
    | DeleteLaunchTemplateVersionsResponseErrorItem[]
    | undefined;
}
export interface DeleteLocalGatewayRouteRequest {
  DestinationCidrBlock?: string | undefined;
  LocalGatewayRouteTableId: string | undefined;
  DryRun?: boolean | undefined;
  DestinationPrefixListId?: string | undefined;
}
export interface DeleteLocalGatewayRouteResult {
  Route?: LocalGatewayRoute | undefined;
}
export interface DeleteLocalGatewayRouteTableRequest {
  LocalGatewayRouteTableId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteLocalGatewayRouteTableResult {
  LocalGatewayRouteTable?: LocalGatewayRouteTable | undefined;
}
export interface DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociationId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociation?:
    | LocalGatewayRouteTableVirtualInterfaceGroupAssociation
    | undefined;
}
export interface DeleteLocalGatewayRouteTableVpcAssociationRequest {
  LocalGatewayRouteTableVpcAssociationId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteLocalGatewayRouteTableVpcAssociationResult {
  LocalGatewayRouteTableVpcAssociation?:
    | LocalGatewayRouteTableVpcAssociation
    | undefined;
}
export interface DeleteLocalGatewayVirtualInterfaceRequest {
  LocalGatewayVirtualInterfaceId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteLocalGatewayVirtualInterfaceResult {
  LocalGatewayVirtualInterface?: LocalGatewayVirtualInterface | undefined;
}
export interface DeleteLocalGatewayVirtualInterfaceGroupRequest {
  LocalGatewayVirtualInterfaceGroupId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteLocalGatewayVirtualInterfaceGroupResult {
  LocalGatewayVirtualInterfaceGroup?:
    | LocalGatewayVirtualInterfaceGroup
    | undefined;
}
export interface DeleteManagedPrefixListRequest {
  DryRun?: boolean | undefined;
  PrefixListId: string | undefined;
}
export interface DeleteManagedPrefixListResult {
  PrefixList?: ManagedPrefixList | undefined;
}
export interface DeleteNatGatewayRequest {
  DryRun?: boolean | undefined;
  NatGatewayId: string | undefined;
}
export interface DeleteNatGatewayResult {
  NatGatewayId?: string | undefined;
}
export interface DeleteNetworkAclRequest {
  DryRun?: boolean | undefined;
  NetworkAclId: string | undefined;
}
export interface DeleteNetworkAclEntryRequest {
  DryRun?: boolean | undefined;
  NetworkAclId: string | undefined;
  RuleNumber: number | undefined;
  Egress: boolean | undefined;
}
export interface DeleteNetworkInsightsAccessScopeRequest {
  DryRun?: boolean | undefined;
  NetworkInsightsAccessScopeId: string | undefined;
}
export interface DeleteNetworkInsightsAccessScopeResult {
  NetworkInsightsAccessScopeId?: string | undefined;
}
export interface DeleteNetworkInsightsAccessScopeAnalysisRequest {
  NetworkInsightsAccessScopeAnalysisId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteNetworkInsightsAccessScopeAnalysisResult {
  NetworkInsightsAccessScopeAnalysisId?: string | undefined;
}
export interface DeleteNetworkInsightsAnalysisRequest {
  DryRun?: boolean | undefined;
  NetworkInsightsAnalysisId: string | undefined;
}
export interface DeleteNetworkInsightsAnalysisResult {
  NetworkInsightsAnalysisId?: string | undefined;
}
export interface DeleteNetworkInsightsPathRequest {
  DryRun?: boolean | undefined;
  NetworkInsightsPathId: string | undefined;
}
export interface DeleteNetworkInsightsPathResult {
  NetworkInsightsPathId?: string | undefined;
}
export interface DeleteNetworkInterfaceRequest {
  DryRun?: boolean | undefined;
  NetworkInterfaceId: string | undefined;
}
export interface DeleteNetworkInterfacePermissionRequest {
  NetworkInterfacePermissionId: string | undefined;
  Force?: boolean | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteNetworkInterfacePermissionResult {
  Return?: boolean | undefined;
}
export interface DeletePlacementGroupRequest {
  DryRun?: boolean | undefined;
  GroupName: string | undefined;
}
export interface DeletePublicIpv4PoolRequest {
  DryRun?: boolean | undefined;
  PoolId: string | undefined;
  NetworkBorderGroup?: string | undefined;
}
export interface DeletePublicIpv4PoolResult {
  ReturnValue?: boolean | undefined;
}
export interface DeleteQueuedReservedInstancesRequest {
  DryRun?: boolean | undefined;
  ReservedInstancesIds: string[] | undefined;
}
export interface DeleteQueuedReservedInstancesError {
  Code?: DeleteQueuedReservedInstancesErrorCode | undefined;
  Message?: string | undefined;
}
export interface FailedQueuedPurchaseDeletion {
  Error?: DeleteQueuedReservedInstancesError | undefined;
  ReservedInstancesId?: string | undefined;
}
export interface SuccessfulQueuedPurchaseDeletion {
  ReservedInstancesId?: string | undefined;
}
export interface DeleteQueuedReservedInstancesResult {
  SuccessfulQueuedPurchaseDeletions?:
    | SuccessfulQueuedPurchaseDeletion[]
    | undefined;
  FailedQueuedPurchaseDeletions?: FailedQueuedPurchaseDeletion[] | undefined;
}
export interface DeleteRouteRequest {
  DestinationPrefixListId?: string | undefined;
  DryRun?: boolean | undefined;
  RouteTableId: string | undefined;
  DestinationCidrBlock?: string | undefined;
  DestinationIpv6CidrBlock?: string | undefined;
}
export interface DeleteRouteServerRequest {
  RouteServerId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteRouteServerResult {
  RouteServer?: RouteServer | undefined;
}
export interface DeleteRouteServerEndpointRequest {
  RouteServerEndpointId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteRouteServerEndpointResult {
  RouteServerEndpoint?: RouteServerEndpoint | undefined;
}
export interface DeleteRouteServerPeerRequest {
  RouteServerPeerId: string | undefined;
  DryRun?: boolean | undefined;
}
export interface DeleteRouteServerPeerResult {
  RouteServerPeer?: RouteServerPeer | undefined;
}
