import {
  _InstanceType,
  AcceleratorManufacturer,
  AcceleratorName,
  AcceleratorType,
  AddressFamily,
  AmdSevSnpSpecification,
  AttachmentStatus,
  AutoProvisionZonesState,
  AutoScalingIpsState,
  AvailabilityMode,
  BareMetal,
  BlockPublicAccessMode,
  BurstablePerformance,
  CapacityReservationPreference,
  ConnectivityType,
  ContainerFormat,
  CpuManufacturer,
  CurrencyCodeValues,
  DefaultTargetCapacityType,
  DestinationFileFormat,
  DiskImageFormat,
  Ec2InstanceConnectEndpointState,
  ExportEnvironment,
  ExportTaskState,
  FleetCapacityReservationUsageStrategy,
  FleetExcessCapacityTerminationPolicy,
  FleetHttpTokensState,
  FleetInstanceMetadataEndpointState,
  FleetOnDemandAllocationStrategy,
  FleetReplacementStrategy,
  FleetReservationType,
  FleetType,
  FlowLogsResourceType,
  HostnameType,
  InstanceBandwidthWeighting,
  InstanceGeneration,
  InstanceInterruptionBehavior,
  InstanceLifecycle,
  InterfacePermissionType,
  InterruptibleCapacityReservationAllocationStatus,
  InterruptionType,
  IpAddressType,
  IpamExternalResourceVerificationTokenState,
  IpamMeteredAccount,
  IpamPolicyState,
  IpamPoolAwsService,
  IpamPoolPublicIpSource,
  IpamPoolSourceResourceType,
  IpamPoolState,
  IpamPrefixListResolverRuleConditionOperation,
  IpamPrefixListResolverRuleType,
  IpamPrefixListResolverState,
  IpamPrefixListResolverTargetState,
  IpamPrefixListResolverVersionCreationStatus,
  IpamResourceDiscoveryState,
  IpamResourceType,
  IpamScopeExternalAuthorityType,
  IpamScopeState,
  IpamScopeType,
  IpamState,
  IpamTier,
  KeyFormat,
  KeyType,
  LaunchTemplateAutoRecoveryState,
  LaunchTemplateHttpTokensState,
  LaunchTemplateInstanceMetadataEndpointState,
  LaunchTemplateInstanceMetadataOptionsState,
  LaunchTemplateInstanceMetadataProtocolIpv6,
  LaunchTemplateInstanceMetadataTagsState,
  LocalGatewayRouteState,
  LocalGatewayRouteTableMode,
  LocalGatewayRouteType,
  LocalGatewayVirtualInterfaceConfigurationState,
  LocalGatewayVirtualInterfaceGroupConfigurationState,
  LocalStorage,
  LocalStorageType,
  LogDestinationType,
  MacModificationTaskState,
  MacModificationTaskType,
  MacSystemIntegrityProtectionSettingStatus,
  MarketType,
  NatGatewayApplianceModifyState,
  NatGatewayApplianceState,
  NatGatewayApplianceType,
  NatGatewayState,
  NestedVirtualizationSpecification,
  NetworkInterfaceCreationType,
  NetworkInterfacePermissionStateCode,
  NetworkInterfaceStatus,
  NetworkInterfaceType,
  PlacementGroupState,
  PlacementStrategy,
  PlatformValues,
  PrefixListState,
  Protocol,
  ReplaceRootVolumeTaskState,
  ResourceType,
  RouteServerEndpointState,
  RouteServerPersistRoutesAction,
  RouteServerPersistRoutesState,
  RouteServerState,
  RuleAction,
  SecondaryInterfaceType,
  ShutdownBehavior,
  SnapshotLocationEnum,
  SpotAllocationStrategy,
  SpotInstanceInterruptionBehavior,
  SpotInstanceType,
  SpreadLevel,
  SubnetState,
  TaggableResourceType,
  TargetCapacityUnitType,
  Tenancy,
  TokenState,
  TrafficType,
  VolumeType,
  VpcEncryptionControlExclusionState,
  VpcEncryptionControlMode,
  VpcEncryptionControlState,
  VpcState,
  WeekDay,
} from "./enums";
import {
  AcceleratorCount,
  AcceleratorCountRequest,
  AcceleratorTotalMemoryMiB,
  AcceleratorTotalMemoryMiBRequest,
  AccessScopePath,
  AccessScopePathRequest,
  AddIpamOperatingRegion,
  AddPrefixListEntry,
  InstanceEventWindow,
  Ipv4PrefixSpecification,
  NatGatewayAddress,
  OperatorResponse,
  PortRange,
  ReservedInstancesListing,
  SubnetIpv6CidrBlockAssociation,
  Tag,
  TagSpecification,
  UnsuccessfulItem,
  VpcCidrBlockAssociation,
  VpcIpv6CidrBlockAssociation,
} from "./models_0";
export interface BlockPublicAccessStates {
  InternetGatewayBlockMode?: BlockPublicAccessMode | undefined;
}
export interface PrivateDnsNameOptionsOnLaunch {
  HostnameType?: HostnameType | undefined;
  EnableResourceNameDnsARecord?: boolean | undefined;
  EnableResourceNameDnsAAAARecord?: boolean | undefined;
}
export interface Subnet {
  AvailabilityZoneId?: string | undefined;
  EnableLniAtDeviceIndex?: number | undefined;
  MapCustomerOwnedIpOnLaunch?: boolean | undefined;
  CustomerOwnedIpv4Pool?: string | undefined;
  OwnerId?: string | undefined;
  AssignIpv6AddressOnCreation?: boolean | undefined;
  Ipv6CidrBlockAssociationSet?: SubnetIpv6CidrBlockAssociation[] | undefined;
  Tags?: Tag[] | undefined;
  SubnetArn?: string | undefined;
  OutpostArn?: string | undefined;
  EnableDns64?: boolean | undefined;
  Ipv6Native?: boolean | undefined;
  PrivateDnsNameOptionsOnLaunch?: PrivateDnsNameOptionsOnLaunch | undefined;
  BlockPublicAccessStates?: BlockPublicAccessStates | undefined;
  Type?: string | undefined;
  SubnetId?: string | undefined;
  State?: SubnetState | undefined;
  VpcId?: string | undefined;
  CidrBlock?: string | undefined;
  AvailableIpAddressCount?: number | undefined;
  AvailabilityZone?: string | undefined;
  DefaultForAz?: boolean | undefined;
  MapPublicIpOnLaunch?: boolean | undefined;
}
export interface CreateDefaultSubnetResult {
  Subnet?: Subnet | undefined;
}
export interface CreateDefaultVpcRequest {
  DryRun?: boolean | undefined;
}
export interface VpcEncryptionControlExclusion {
  State?: VpcEncryptionControlExclusionState | undefined;
  StateMessage?: string | undefined;
}
export interface VpcEncryptionControlExclusions {
  InternetGateway?: VpcEncryptionControlExclusion | undefined;
  EgressOnlyInternetGateway?: VpcEncryptionControlExclusion | undefined;
  NatGateway?: VpcEncryptionControlExclusion | undefined;
  VirtualPrivateGateway?: VpcEncryptionControlExclusion | undefined;
  VpcPeering?: VpcEncryptionControlExclusion | undefined;
  Lambda?: VpcEncryptionControlExclusion | undefined;
  VpcLattice?: VpcEncryptionControlExclusion | undefined;
  ElasticFileSystem?: VpcEncryptionControlExclusion | undefined;
}
export interface VpcEncryptionControl {
  VpcId?: string | undefined;
  VpcEncryptionControlId?: string | undefined;
  Mode?: VpcEncryptionControlMode | undefined;
  State?: VpcEncryptionControlState | undefined;
  StateMessage?: string | undefined;
  ResourceExclusions?: VpcEncryptionControlExclusions | undefined;
  Tags?: Tag[] | undefined;
}
export interface Vpc {
  OwnerId?: string | undefined;
  InstanceTenancy?: Tenancy | undefined;
  Ipv6CidrBlockAssociationSet?: VpcIpv6CidrBlockAssociation[] | undefined;
  CidrBlockAssociationSet?: VpcCidrBlockAssociation[] | undefined;
  IsDefault?: boolean | undefined;
  EncryptionControl?: VpcEncryptionControl | undefined;
  Tags?: Tag[] | undefined;
  BlockPublicAccessStates?: BlockPublicAccessStates | undefined;
  VpcId?: string | undefined;
  State?: VpcState | undefined;
  CidrBlock?: string | undefined;
  DhcpOptionsId?: string | undefined;
}
export interface CreateDefaultVpcResult {
  Vpc?: Vpc | undefined;
}
export interface CreateDelegateMacVolumeOwnershipTaskRequest {
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  InstanceId: string | undefined;
  MacCredentials: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface MacSystemIntegrityProtectionConfiguration {
  AppleInternal?: MacSystemIntegrityProtectionSettingStatus | undefined;
  BaseSystem?: MacSystemIntegrityProtectionSettingStatus | undefined;
  DebuggingRestrictions?: MacSystemIntegrityProtectionSettingStatus | undefined;
  DTraceRestrictions?: MacSystemIntegrityProtectionSettingStatus | undefined;
  FilesystemProtections?: MacSystemIntegrityProtectionSettingStatus | undefined;
  KextSigning?: MacSystemIntegrityProtectionSettingStatus | undefined;
  NvramProtections?: MacSystemIntegrityProtectionSettingStatus | undefined;
  Status?: MacSystemIntegrityProtectionSettingStatus | undefined;
}
export interface MacModificationTask {
  InstanceId?: string | undefined;
  MacModificationTaskId?: string | undefined;
  MacSystemIntegrityProtectionConfig?:
    | MacSystemIntegrityProtectionConfiguration
    | undefined;
  StartTime?: Date | undefined;
  Tags?: Tag[] | undefined;
  TaskState?: MacModificationTaskState | undefined;
  TaskType?: MacModificationTaskType | undefined;
}
export interface CreateDelegateMacVolumeOwnershipTaskResult {
  MacModificationTask?: MacModificationTask | undefined;
}
export interface NewDhcpConfiguration {
  Key?: string | undefined;
  Values?: string[] | undefined;
}
export interface CreateDhcpOptionsRequest {
  DhcpConfigurations: NewDhcpConfiguration[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface AttributeValue {
  Value?: string | undefined;
}
export interface DhcpConfiguration {
  Key?: string | undefined;
  Values?: AttributeValue[] | undefined;
}
export interface DhcpOptions {
  OwnerId?: string | undefined;
  Tags?: Tag[] | undefined;
  DhcpOptionsId?: string | undefined;
  DhcpConfigurations?: DhcpConfiguration[] | undefined;
}
export interface CreateDhcpOptionsResult {
  DhcpOptions?: DhcpOptions | undefined;
}
export interface CreateEgressOnlyInternetGatewayRequest {
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  VpcId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface InternetGatewayAttachment {
  State?: AttachmentStatus | undefined;
  VpcId?: string | undefined;
}
export interface EgressOnlyInternetGateway {
  Attachments?: InternetGatewayAttachment[] | undefined;
  EgressOnlyInternetGatewayId?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateEgressOnlyInternetGatewayResult {
  ClientToken?: string | undefined;
  EgressOnlyInternetGateway?: EgressOnlyInternetGateway | undefined;
}
export interface FleetLaunchTemplateSpecificationRequest {
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  Version?: string | undefined;
  LaunchTemplateSpecificationUserData?: string | undefined;
}
export interface FleetEbsBlockDeviceRequest {
  Encrypted?: boolean | undefined;
  DeleteOnTermination?: boolean | undefined;
  Iops?: number | undefined;
  Throughput?: number | undefined;
  KmsKeyId?: string | undefined;
  SnapshotId?: string | undefined;
  VolumeSize?: number | undefined;
  VolumeType?: VolumeType | undefined;
}
export interface FleetBlockDeviceMappingRequest {
  DeviceName?: string | undefined;
  VirtualName?: string | undefined;
  Ebs?: FleetEbsBlockDeviceRequest | undefined;
  NoDevice?: string | undefined;
}
export interface FleetIamInstanceProfileSpecificationRequest {
  Arn?: string | undefined;
  Name?: string | undefined;
}
export interface BaselineEbsBandwidthMbpsRequest {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface PerformanceFactorReferenceRequest {
  InstanceFamily?: string | undefined;
}
export interface CpuPerformanceFactorRequest {
  References?: PerformanceFactorReferenceRequest[] | undefined;
}
export interface BaselinePerformanceFactorsRequest {
  Cpu?: CpuPerformanceFactorRequest | undefined;
}
export interface MemoryGiBPerVCpuRequest {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface MemoryMiBRequest {
  Min: number | undefined;
  Max?: number | undefined;
}
export interface NetworkBandwidthGbpsRequest {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface NetworkInterfaceCountRequest {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface TotalLocalStorageGBRequest {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface VCpuCountRangeRequest {
  Min: number | undefined;
  Max?: number | undefined;
}
export interface InstanceRequirementsRequest {
  VCpuCount: VCpuCountRangeRequest | undefined;
  MemoryMiB: MemoryMiBRequest | undefined;
  CpuManufacturers?: CpuManufacturer[] | undefined;
  MemoryGiBPerVCpu?: MemoryGiBPerVCpuRequest | undefined;
  ExcludedInstanceTypes?: string[] | undefined;
  InstanceGenerations?: InstanceGeneration[] | undefined;
  SpotMaxPricePercentageOverLowestPrice?: number | undefined;
  OnDemandMaxPricePercentageOverLowestPrice?: number | undefined;
  BareMetal?: BareMetal | undefined;
  BurstablePerformance?: BurstablePerformance | undefined;
  RequireHibernateSupport?: boolean | undefined;
  NetworkInterfaceCount?: NetworkInterfaceCountRequest | undefined;
  LocalStorage?: LocalStorage | undefined;
  LocalStorageTypes?: LocalStorageType[] | undefined;
  TotalLocalStorageGB?: TotalLocalStorageGBRequest | undefined;
  BaselineEbsBandwidthMbps?: BaselineEbsBandwidthMbpsRequest | undefined;
  AcceleratorTypes?: AcceleratorType[] | undefined;
  AcceleratorCount?: AcceleratorCountRequest | undefined;
  AcceleratorManufacturers?: AcceleratorManufacturer[] | undefined;
  AcceleratorNames?: AcceleratorName[] | undefined;
  AcceleratorTotalMemoryMiB?: AcceleratorTotalMemoryMiBRequest | undefined;
  NetworkBandwidthGbps?: NetworkBandwidthGbpsRequest | undefined;
  AllowedInstanceTypes?: string[] | undefined;
  MaxSpotPriceAsPercentageOfOptimalOnDemandPrice?: number | undefined;
  BaselinePerformanceFactors?: BaselinePerformanceFactorsRequest | undefined;
  RequireEncryptionInTransit?: boolean | undefined;
}
export interface FleetInstanceMetadataOptionsRequest {
  HttpTokens?: FleetHttpTokensState | undefined;
  HttpPutResponseHopLimit?: number | undefined;
  HttpEndpoint?: FleetInstanceMetadataEndpointState | undefined;
}
export interface Placement {
  AvailabilityZoneId?: string | undefined;
  Affinity?: string | undefined;
  GroupName?: string | undefined;
  PartitionNumber?: number | undefined;
  HostId?: string | undefined;
  Tenancy?: Tenancy | undefined;
  SpreadDomain?: string | undefined;
  HostResourceGroupArn?: string | undefined;
  GroupId?: string | undefined;
  AvailabilityZone?: string | undefined;
}
export interface FleetLaunchTemplateOverridesRequest {
  InstanceType?: _InstanceType | undefined;
  MaxPrice?: string | undefined;
  SubnetId?: string | undefined;
  AvailabilityZone?: string | undefined;
  WeightedCapacity?: number | undefined;
  Priority?: number | undefined;
  Placement?: Placement | undefined;
  KeyName?: string | undefined;
  BlockDeviceMappings?: FleetBlockDeviceMappingRequest[] | undefined;
  IamInstanceProfile?: FleetIamInstanceProfileSpecificationRequest | undefined;
  MetadataOptions?: FleetInstanceMetadataOptionsRequest | undefined;
  InstanceRequirements?: InstanceRequirementsRequest | undefined;
  ImageId?: string | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface FleetLaunchTemplateConfigRequest {
  LaunchTemplateSpecification?:
    | FleetLaunchTemplateSpecificationRequest
    | undefined;
  Overrides?: FleetLaunchTemplateOverridesRequest[] | undefined;
}
export interface CapacityReservationOptionsRequest {
  UsageStrategy?: FleetCapacityReservationUsageStrategy | undefined;
}
export interface OnDemandOptionsRequest {
  AllocationStrategy?: FleetOnDemandAllocationStrategy | undefined;
  CapacityReservationOptions?: CapacityReservationOptionsRequest | undefined;
  SingleInstanceType?: boolean | undefined;
  SingleAvailabilityZone?: boolean | undefined;
  MinTargetCapacity?: number | undefined;
  MaxTotalPrice?: string | undefined;
}
export interface ReservedCapacityOptionsRequest {
  ReservationTypes?: FleetReservationType[] | undefined;
}
export interface FleetSpotCapacityRebalanceRequest {
  ReplacementStrategy?: FleetReplacementStrategy | undefined;
  TerminationDelay?: number | undefined;
}
export interface FleetSpotMaintenanceStrategiesRequest {
  CapacityRebalance?: FleetSpotCapacityRebalanceRequest | undefined;
}
export interface SpotOptionsRequest {
  AllocationStrategy?: SpotAllocationStrategy | undefined;
  MaintenanceStrategies?: FleetSpotMaintenanceStrategiesRequest | undefined;
  InstanceInterruptionBehavior?: SpotInstanceInterruptionBehavior | undefined;
  InstancePoolsToUseCount?: number | undefined;
  SingleInstanceType?: boolean | undefined;
  SingleAvailabilityZone?: boolean | undefined;
  MinTargetCapacity?: number | undefined;
  MaxTotalPrice?: string | undefined;
}
export interface TargetCapacitySpecificationRequest {
  TotalTargetCapacity: number | undefined;
  OnDemandTargetCapacity?: number | undefined;
  SpotTargetCapacity?: number | undefined;
  DefaultTargetCapacityType?: DefaultTargetCapacityType | undefined;
  TargetCapacityUnitType?: TargetCapacityUnitType | undefined;
}
export interface CreateFleetRequest {
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
  SpotOptions?: SpotOptionsRequest | undefined;
  OnDemandOptions?: OnDemandOptionsRequest | undefined;
  ReservedCapacityOptions?: ReservedCapacityOptionsRequest | undefined;
  ExcessCapacityTerminationPolicy?:
    | FleetExcessCapacityTerminationPolicy
    | undefined;
  LaunchTemplateConfigs: FleetLaunchTemplateConfigRequest[] | undefined;
  TargetCapacitySpecification: TargetCapacitySpecificationRequest | undefined;
  TerminateInstancesWithExpiration?: boolean | undefined;
  Type?: FleetType | undefined;
  ValidFrom?: Date | undefined;
  ValidUntil?: Date | undefined;
  ReplaceUnhealthyInstances?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  Context?: string | undefined;
}
export interface FleetLaunchTemplateSpecification {
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  Version?: string | undefined;
}
export interface EbsBlockDeviceResponse {
  Encrypted?: boolean | undefined;
  DeleteOnTermination?: boolean | undefined;
  Iops?: number | undefined;
  Throughput?: number | undefined;
  KmsKeyId?: string | undefined;
  SnapshotId?: string | undefined;
  VolumeSize?: number | undefined;
  VolumeType?: VolumeType | undefined;
}
export interface BlockDeviceMappingResponse {
  DeviceName?: string | undefined;
  VirtualName?: string | undefined;
  Ebs?: EbsBlockDeviceResponse | undefined;
  NoDevice?: string | undefined;
}
export interface BaselineEbsBandwidthMbps {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface PerformanceFactorReference {
  InstanceFamily?: string | undefined;
}
export interface CpuPerformanceFactor {
  References?: PerformanceFactorReference[] | undefined;
}
export interface BaselinePerformanceFactors {
  Cpu?: CpuPerformanceFactor | undefined;
}
export interface MemoryGiBPerVCpu {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface MemoryMiB {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface NetworkBandwidthGbps {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface NetworkInterfaceCount {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface TotalLocalStorageGB {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface VCpuCountRange {
  Min?: number | undefined;
  Max?: number | undefined;
}
export interface InstanceRequirements {
  VCpuCount?: VCpuCountRange | undefined;
  MemoryMiB?: MemoryMiB | undefined;
  CpuManufacturers?: CpuManufacturer[] | undefined;
  MemoryGiBPerVCpu?: MemoryGiBPerVCpu | undefined;
  ExcludedInstanceTypes?: string[] | undefined;
  InstanceGenerations?: InstanceGeneration[] | undefined;
  SpotMaxPricePercentageOverLowestPrice?: number | undefined;
  OnDemandMaxPricePercentageOverLowestPrice?: number | undefined;
  BareMetal?: BareMetal | undefined;
  BurstablePerformance?: BurstablePerformance | undefined;
  RequireHibernateSupport?: boolean | undefined;
  NetworkInterfaceCount?: NetworkInterfaceCount | undefined;
  LocalStorage?: LocalStorage | undefined;
  LocalStorageTypes?: LocalStorageType[] | undefined;
  TotalLocalStorageGB?: TotalLocalStorageGB | undefined;
  BaselineEbsBandwidthMbps?: BaselineEbsBandwidthMbps | undefined;
  AcceleratorTypes?: AcceleratorType[] | undefined;
  AcceleratorCount?: AcceleratorCount | undefined;
  AcceleratorManufacturers?: AcceleratorManufacturer[] | undefined;
  AcceleratorNames?: AcceleratorName[] | undefined;
  AcceleratorTotalMemoryMiB?: AcceleratorTotalMemoryMiB | undefined;
  NetworkBandwidthGbps?: NetworkBandwidthGbps | undefined;
  AllowedInstanceTypes?: string[] | undefined;
  MaxSpotPriceAsPercentageOfOptimalOnDemandPrice?: number | undefined;
  BaselinePerformanceFactors?: BaselinePerformanceFactors | undefined;
  RequireEncryptionInTransit?: boolean | undefined;
}
export interface PlacementResponse {
  GroupName?: string | undefined;
}
export interface FleetLaunchTemplateOverrides {
  InstanceType?: _InstanceType | undefined;
  MaxPrice?: string | undefined;
  SubnetId?: string | undefined;
  AvailabilityZone?: string | undefined;
  WeightedCapacity?: number | undefined;
  Priority?: number | undefined;
  Placement?: PlacementResponse | undefined;
  InstanceRequirements?: InstanceRequirements | undefined;
  ImageId?: string | undefined;
  BlockDeviceMappings?: BlockDeviceMappingResponse[] | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface LaunchTemplateAndOverridesResponse {
  LaunchTemplateSpecification?: FleetLaunchTemplateSpecification | undefined;
  Overrides?: FleetLaunchTemplateOverrides | undefined;
}
export interface CreateFleetError {
  LaunchTemplateAndOverrides?: LaunchTemplateAndOverridesResponse | undefined;
  Lifecycle?: InstanceLifecycle | undefined;
  ErrorCode?: string | undefined;
  ErrorMessage?: string | undefined;
}
export interface CreateFleetInstance {
  LaunchTemplateAndOverrides?: LaunchTemplateAndOverridesResponse | undefined;
  Lifecycle?: InstanceLifecycle | undefined;
  InstanceIds?: string[] | undefined;
  InstanceType?: _InstanceType | undefined;
  Platform?: PlatformValues | undefined;
  AvailabilityZoneId?: string | undefined;
  AvailabilityZone?: string | undefined;
  SubnetId?: string | undefined;
}
export interface CreateFleetResult {
  FleetId?: string | undefined;
  Errors?: CreateFleetError[] | undefined;
  Instances?: CreateFleetInstance[] | undefined;
}
export interface DestinationOptionsRequest {
  FileFormat?: DestinationFileFormat | undefined;
  HiveCompatiblePartitions?: boolean | undefined;
  PerHourPartition?: boolean | undefined;
}
export interface TagFieldSpecificationRequest {
  ResourceType?: TaggableResourceType | undefined;
  TagKeys?: string[] | undefined;
}
export interface CreateFlowLogsRequest {
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
  DeliverLogsPermissionArn?: string | undefined;
  DeliverCrossAccountRole?: string | undefined;
  LogGroupName?: string | undefined;
  ResourceIds: string[] | undefined;
  ResourceType: FlowLogsResourceType | undefined;
  TrafficType?: TrafficType | undefined;
  LogDestinationType?: LogDestinationType | undefined;
  LogDestination?: string | undefined;
  LogFormat?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  MaxAggregationInterval?: number | undefined;
  DestinationOptions?: DestinationOptionsRequest | undefined;
  TagFieldSpecifications?: TagFieldSpecificationRequest[] | undefined;
}
export interface CreateFlowLogsResult {
  ClientToken?: string | undefined;
  FlowLogIds?: string[] | undefined;
  Unsuccessful?: UnsuccessfulItem[] | undefined;
}
export interface StorageLocation {
  Bucket?: string | undefined;
  Key?: string | undefined;
}
export interface CreateFpgaImageRequest {
  DryRun?: boolean | undefined;
  InputStorageLocation: StorageLocation | undefined;
  LogsStorageLocation?: StorageLocation | undefined;
  Description?: string | undefined;
  Name?: string | undefined;
  ClientToken?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface CreateFpgaImageResult {
  FpgaImageId?: string | undefined;
  FpgaImageGlobalId?: string | undefined;
}
export interface EbsBlockDevice {
  DeleteOnTermination?: boolean | undefined;
  Iops?: number | undefined;
  SnapshotId?: string | undefined;
  VolumeSize?: number | undefined;
  VolumeType?: VolumeType | undefined;
  KmsKeyId?: string | undefined;
  Throughput?: number | undefined;
  OutpostArn?: string | undefined;
  AvailabilityZone?: string | undefined;
  Encrypted?: boolean | undefined;
  VolumeInitializationRate?: number | undefined;
  AvailabilityZoneId?: string | undefined;
  EbsCardIndex?: number | undefined;
}
export interface BlockDeviceMapping {
  Ebs?: EbsBlockDevice | undefined;
  NoDevice?: string | undefined;
  DeviceName?: string | undefined;
  VirtualName?: string | undefined;
}
export interface CreateImageRequest {
  TagSpecifications?: TagSpecification[] | undefined;
  SnapshotLocation?: SnapshotLocationEnum | undefined;
  DryRun?: boolean | undefined;
  InstanceId: string | undefined;
  Name: string | undefined;
  Description?: string | undefined;
  NoReboot?: boolean | undefined;
  BlockDeviceMappings?: BlockDeviceMapping[] | undefined;
}
export interface CreateImageResult {
  ImageId?: string | undefined;
}
export interface ImageUsageResourceTypeOptionRequest {
  OptionName?: string | undefined;
  OptionValues?: string[] | undefined;
}
export interface ImageUsageResourceTypeRequest {
  ResourceType?: string | undefined;
  ResourceTypeOptions?: ImageUsageResourceTypeOptionRequest[] | undefined;
}
export interface CreateImageUsageReportRequest {
  ImageId: string | undefined;
  DryRun?: boolean | undefined;
  ResourceTypes: ImageUsageResourceTypeRequest[] | undefined;
  AccountIds?: string[] | undefined;
  ClientToken?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface CreateImageUsageReportResult {
  ReportId?: string | undefined;
}
export interface CreateInstanceConnectEndpointRequest {
  DryRun?: boolean | undefined;
  SubnetId: string | undefined;
  SecurityGroupIds?: string[] | undefined;
  PreserveClientIp?: boolean | undefined;
  ClientToken?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  IpAddressType?: IpAddressType | undefined;
}
export interface InstanceConnectEndpointDnsNames {
  DnsName?: string | undefined;
  FipsDnsName?: string | undefined;
}
export interface InstanceConnectEndpointPublicDnsNames {
  Ipv4?: InstanceConnectEndpointDnsNames | undefined;
  Dualstack?: InstanceConnectEndpointDnsNames | undefined;
}
export interface Ec2InstanceConnectEndpoint {
  OwnerId?: string | undefined;
  InstanceConnectEndpointId?: string | undefined;
  InstanceConnectEndpointArn?: string | undefined;
  State?: Ec2InstanceConnectEndpointState | undefined;
  StateMessage?: string | undefined;
  DnsName?: string | undefined;
  FipsDnsName?: string | undefined;
  NetworkInterfaceIds?: string[] | undefined;
  VpcId?: string | undefined;
  AvailabilityZone?: string | undefined;
  CreatedAt?: Date | undefined;
  SubnetId?: string | undefined;
  PreserveClientIp?: boolean | undefined;
  SecurityGroupIds?: string[] | undefined;
  Tags?: Tag[] | undefined;
  IpAddressType?: IpAddressType | undefined;
  PublicDnsNames?: InstanceConnectEndpointPublicDnsNames | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface CreateInstanceConnectEndpointResult {
  InstanceConnectEndpoint?: Ec2InstanceConnectEndpoint | undefined;
  ClientToken?: string | undefined;
}
export interface InstanceEventWindowTimeRangeRequest {
  StartWeekDay?: WeekDay | undefined;
  StartHour?: number | undefined;
  EndWeekDay?: WeekDay | undefined;
  EndHour?: number | undefined;
}
export interface CreateInstanceEventWindowRequest {
  DryRun?: boolean | undefined;
  Name?: string | undefined;
  TimeRanges?: InstanceEventWindowTimeRangeRequest[] | undefined;
  CronExpression?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface CreateInstanceEventWindowResult {
  InstanceEventWindow?: InstanceEventWindow | undefined;
}
export interface ExportToS3TaskSpecification {
  DiskImageFormat?: DiskImageFormat | undefined;
  ContainerFormat?: ContainerFormat | undefined;
  S3Bucket?: string | undefined;
  S3Prefix?: string | undefined;
}
export interface CreateInstanceExportTaskRequest {
  TagSpecifications?: TagSpecification[] | undefined;
  Description?: string | undefined;
  InstanceId: string | undefined;
  TargetEnvironment: ExportEnvironment | undefined;
  ExportToS3Task: ExportToS3TaskSpecification | undefined;
}
export interface ExportToS3Task {
  ContainerFormat?: ContainerFormat | undefined;
  DiskImageFormat?: DiskImageFormat | undefined;
  S3Bucket?: string | undefined;
  S3Key?: string | undefined;
}
export interface InstanceExportDetails {
  InstanceId?: string | undefined;
  TargetEnvironment?: ExportEnvironment | undefined;
}
export interface ExportTask {
  Description?: string | undefined;
  ExportTaskId?: string | undefined;
  ExportToS3Task?: ExportToS3Task | undefined;
  InstanceExportDetails?: InstanceExportDetails | undefined;
  State?: ExportTaskState | undefined;
  StatusMessage?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateInstanceExportTaskResult {
  ExportTask?: ExportTask | undefined;
}
export interface CreateInternetGatewayRequest {
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface InternetGateway {
  Attachments?: InternetGatewayAttachment[] | undefined;
  InternetGatewayId?: string | undefined;
  OwnerId?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateInternetGatewayResult {
  InternetGateway?: InternetGateway | undefined;
}
export interface CreateInterruptibleCapacityReservationAllocationRequest {
  CapacityReservationId: string | undefined;
  InstanceCount: number | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface CreateInterruptibleCapacityReservationAllocationResult {
  SourceCapacityReservationId?: string | undefined;
  TargetInstanceCount?: number | undefined;
  Status?: InterruptibleCapacityReservationAllocationStatus | undefined;
  InterruptionType?: InterruptionType | undefined;
}
export interface CreateIpamRequest {
  DryRun?: boolean | undefined;
  Description?: string | undefined;
  OperatingRegions?: AddIpamOperatingRegion[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  Tier?: IpamTier | undefined;
  EnablePrivateGua?: boolean | undefined;
  MeteredAccount?: IpamMeteredAccount | undefined;
}
export interface IpamOperatingRegion {
  RegionName?: string | undefined;
}
export interface Ipam {
  OwnerId?: string | undefined;
  IpamId?: string | undefined;
  IpamArn?: string | undefined;
  IpamRegion?: string | undefined;
  PublicDefaultScopeId?: string | undefined;
  PrivateDefaultScopeId?: string | undefined;
  ScopeCount?: number | undefined;
  Description?: string | undefined;
  OperatingRegions?: IpamOperatingRegion[] | undefined;
  State?: IpamState | undefined;
  Tags?: Tag[] | undefined;
  DefaultResourceDiscoveryId?: string | undefined;
  DefaultResourceDiscoveryAssociationId?: string | undefined;
  ResourceDiscoveryAssociationCount?: number | undefined;
  StateMessage?: string | undefined;
  Tier?: IpamTier | undefined;
  EnablePrivateGua?: boolean | undefined;
  MeteredAccount?: IpamMeteredAccount | undefined;
}
export interface CreateIpamResult {
  Ipam?: Ipam | undefined;
}
export interface CreateIpamExternalResourceVerificationTokenRequest {
  DryRun?: boolean | undefined;
  IpamId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
}
export interface IpamExternalResourceVerificationToken {
  IpamExternalResourceVerificationTokenId?: string | undefined;
  IpamExternalResourceVerificationTokenArn?: string | undefined;
  IpamId?: string | undefined;
  IpamArn?: string | undefined;
  IpamRegion?: string | undefined;
  TokenValue?: string | undefined;
  TokenName?: string | undefined;
  NotAfter?: Date | undefined;
  Status?: TokenState | undefined;
  Tags?: Tag[] | undefined;
  State?: IpamExternalResourceVerificationTokenState | undefined;
}
export interface CreateIpamExternalResourceVerificationTokenResult {
  IpamExternalResourceVerificationToken?:
    | IpamExternalResourceVerificationToken
    | undefined;
}
export interface CreateIpamPolicyRequest {
  DryRun?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  IpamId: string | undefined;
}
export interface IpamPolicy {
  OwnerId?: string | undefined;
  IpamPolicyId?: string | undefined;
  IpamPolicyArn?: string | undefined;
  IpamPolicyRegion?: string | undefined;
  State?: IpamPolicyState | undefined;
  StateMessage?: string | undefined;
  Tags?: Tag[] | undefined;
  IpamId?: string | undefined;
}
export interface CreateIpamPolicyResult {
  IpamPolicy?: IpamPolicy | undefined;
}
export interface RequestIpamResourceTag {
  Key?: string | undefined;
  Value?: string | undefined;
}
export interface IpamPoolSourceResourceRequest {
  ResourceId?: string | undefined;
  ResourceType?: IpamPoolSourceResourceType | undefined;
  ResourceRegion?: string | undefined;
  ResourceOwner?: string | undefined;
}
export interface CreateIpamPoolRequest {
  DryRun?: boolean | undefined;
  IpamScopeId: string | undefined;
  Locale?: string | undefined;
  SourceIpamPoolId?: string | undefined;
  Description?: string | undefined;
  AddressFamily: AddressFamily | undefined;
  AutoImport?: boolean | undefined;
  PubliclyAdvertisable?: boolean | undefined;
  AllocationMinNetmaskLength?: number | undefined;
  AllocationMaxNetmaskLength?: number | undefined;
  AllocationDefaultNetmaskLength?: number | undefined;
  AllocationResourceTags?: RequestIpamResourceTag[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  AwsService?: IpamPoolAwsService | undefined;
  PublicIpSource?: IpamPoolPublicIpSource | undefined;
  SourceResource?: IpamPoolSourceResourceRequest | undefined;
}
export interface IpamResourceTag {
  Key?: string | undefined;
  Value?: string | undefined;
}
export interface IpamPoolSourceResource {
  ResourceId?: string | undefined;
  ResourceType?: IpamPoolSourceResourceType | undefined;
  ResourceRegion?: string | undefined;
  ResourceOwner?: string | undefined;
}
export interface IpamPool {
  OwnerId?: string | undefined;
  IpamPoolId?: string | undefined;
  SourceIpamPoolId?: string | undefined;
  IpamPoolArn?: string | undefined;
  IpamScopeArn?: string | undefined;
  IpamScopeType?: IpamScopeType | undefined;
  IpamArn?: string | undefined;
  IpamRegion?: string | undefined;
  Locale?: string | undefined;
  PoolDepth?: number | undefined;
  State?: IpamPoolState | undefined;
  StateMessage?: string | undefined;
  Description?: string | undefined;
  AutoImport?: boolean | undefined;
  PubliclyAdvertisable?: boolean | undefined;
  AddressFamily?: AddressFamily | undefined;
  AllocationMinNetmaskLength?: number | undefined;
  AllocationMaxNetmaskLength?: number | undefined;
  AllocationDefaultNetmaskLength?: number | undefined;
  AllocationResourceTags?: IpamResourceTag[] | undefined;
  Tags?: Tag[] | undefined;
  AwsService?: IpamPoolAwsService | undefined;
  PublicIpSource?: IpamPoolPublicIpSource | undefined;
  SourceResource?: IpamPoolSourceResource | undefined;
}
export interface CreateIpamPoolResult {
  IpamPool?: IpamPool | undefined;
}
export interface IpamPrefixListResolverRuleConditionRequest {
  Operation: IpamPrefixListResolverRuleConditionOperation | undefined;
  IpamPoolId?: string | undefined;
  ResourceId?: string | undefined;
  ResourceOwner?: string | undefined;
  ResourceRegion?: string | undefined;
  ResourceTag?: RequestIpamResourceTag | undefined;
  Cidr?: string | undefined;
}
export interface IpamPrefixListResolverRuleRequest {
  RuleType: IpamPrefixListResolverRuleType | undefined;
  StaticCidr?: string | undefined;
  IpamScopeId?: string | undefined;
  ResourceType?: IpamResourceType | undefined;
  Conditions?: IpamPrefixListResolverRuleConditionRequest[] | undefined;
}
export interface CreateIpamPrefixListResolverRequest {
  DryRun?: boolean | undefined;
  IpamId: string | undefined;
  Description?: string | undefined;
  AddressFamily: AddressFamily | undefined;
  Rules?: IpamPrefixListResolverRuleRequest[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
}
export interface IpamPrefixListResolver {
  OwnerId?: string | undefined;
  IpamPrefixListResolverId?: string | undefined;
  IpamPrefixListResolverArn?: string | undefined;
  IpamArn?: string | undefined;
  IpamRegion?: string | undefined;
  Description?: string | undefined;
  AddressFamily?: AddressFamily | undefined;
  State?: IpamPrefixListResolverState | undefined;
  Tags?: Tag[] | undefined;
  LastVersionCreationStatus?:
    | IpamPrefixListResolverVersionCreationStatus
    | undefined;
  LastVersionCreationStatusMessage?: string | undefined;
}
export interface CreateIpamPrefixListResolverResult {
  IpamPrefixListResolver?: IpamPrefixListResolver | undefined;
}
export interface CreateIpamPrefixListResolverTargetRequest {
  DryRun?: boolean | undefined;
  IpamPrefixListResolverId: string | undefined;
  PrefixListId: string | undefined;
  PrefixListRegion: string | undefined;
  DesiredVersion?: number | undefined;
  TrackLatestVersion: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
}
export interface IpamPrefixListResolverTarget {
  IpamPrefixListResolverTargetId?: string | undefined;
  IpamPrefixListResolverTargetArn?: string | undefined;
  IpamPrefixListResolverId?: string | undefined;
  OwnerId?: string | undefined;
  PrefixListId?: string | undefined;
  PrefixListRegion?: string | undefined;
  DesiredVersion?: number | undefined;
  LastSyncedVersion?: number | undefined;
  TrackLatestVersion?: boolean | undefined;
  StateMessage?: string | undefined;
  State?: IpamPrefixListResolverTargetState | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateIpamPrefixListResolverTargetResult {
  IpamPrefixListResolverTarget?: IpamPrefixListResolverTarget | undefined;
}
export interface CreateIpamResourceDiscoveryRequest {
  DryRun?: boolean | undefined;
  Description?: string | undefined;
  OperatingRegions?: AddIpamOperatingRegion[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
}
export interface IpamOrganizationalUnitExclusion {
  OrganizationsEntityPath?: string | undefined;
}
export interface IpamResourceDiscovery {
  OwnerId?: string | undefined;
  IpamResourceDiscoveryId?: string | undefined;
  IpamResourceDiscoveryArn?: string | undefined;
  IpamResourceDiscoveryRegion?: string | undefined;
  Description?: string | undefined;
  OperatingRegions?: IpamOperatingRegion[] | undefined;
  IsDefault?: boolean | undefined;
  State?: IpamResourceDiscoveryState | undefined;
  Tags?: Tag[] | undefined;
  OrganizationalUnitExclusions?: IpamOrganizationalUnitExclusion[] | undefined;
}
export interface CreateIpamResourceDiscoveryResult {
  IpamResourceDiscovery?: IpamResourceDiscovery | undefined;
}
export interface ExternalAuthorityConfiguration {
  Type?: IpamScopeExternalAuthorityType | undefined;
  ExternalResourceIdentifier?: string | undefined;
}
export interface CreateIpamScopeRequest {
  DryRun?: boolean | undefined;
  IpamId: string | undefined;
  Description?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  ExternalAuthorityConfiguration?: ExternalAuthorityConfiguration | undefined;
}
export interface IpamScopeExternalAuthorityConfiguration {
  Type?: IpamScopeExternalAuthorityType | undefined;
  ExternalResourceIdentifier?: string | undefined;
}
export interface IpamScope {
  OwnerId?: string | undefined;
  IpamScopeId?: string | undefined;
  IpamScopeArn?: string | undefined;
  IpamArn?: string | undefined;
  IpamRegion?: string | undefined;
  IpamScopeType?: IpamScopeType | undefined;
  IsDefault?: boolean | undefined;
  Description?: string | undefined;
  PoolCount?: number | undefined;
  State?: IpamScopeState | undefined;
  Tags?: Tag[] | undefined;
  ExternalAuthorityConfiguration?:
    | IpamScopeExternalAuthorityConfiguration
    | undefined;
}
export interface CreateIpamScopeResult {
  IpamScope?: IpamScope | undefined;
}
export interface CreateKeyPairRequest {
  KeyName: string | undefined;
  KeyType?: KeyType | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  KeyFormat?: KeyFormat | undefined;
  DryRun?: boolean | undefined;
}
export interface KeyPair {
  KeyPairId?: string | undefined;
  Tags?: Tag[] | undefined;
  KeyName?: string | undefined;
  KeyFingerprint?: string | undefined;
  KeyMaterial?: string | undefined;
}
export interface LaunchTemplateEbsBlockDeviceRequest {
  Encrypted?: boolean | undefined;
  DeleteOnTermination?: boolean | undefined;
  Iops?: number | undefined;
  KmsKeyId?: string | undefined;
  SnapshotId?: string | undefined;
  VolumeSize?: number | undefined;
  VolumeType?: VolumeType | undefined;
  Throughput?: number | undefined;
  VolumeInitializationRate?: number | undefined;
  EbsCardIndex?: number | undefined;
}
export interface LaunchTemplateBlockDeviceMappingRequest {
  DeviceName?: string | undefined;
  VirtualName?: string | undefined;
  Ebs?: LaunchTemplateEbsBlockDeviceRequest | undefined;
  NoDevice?: string | undefined;
}
export interface CapacityReservationTarget {
  CapacityReservationId?: string | undefined;
  CapacityReservationResourceGroupArn?: string | undefined;
}
export interface LaunchTemplateCapacityReservationSpecificationRequest {
  CapacityReservationPreference?: CapacityReservationPreference | undefined;
  CapacityReservationTarget?: CapacityReservationTarget | undefined;
}
export interface LaunchTemplateCpuOptionsRequest {
  CoreCount?: number | undefined;
  ThreadsPerCore?: number | undefined;
  AmdSevSnp?: AmdSevSnpSpecification | undefined;
  NestedVirtualization?: NestedVirtualizationSpecification | undefined;
}
export interface CreditSpecificationRequest {
  CpuCredits: string | undefined;
}
export interface ElasticGpuSpecification {
  Type: string | undefined;
}
export interface LaunchTemplateElasticInferenceAccelerator {
  Type: string | undefined;
  Count?: number | undefined;
}
export interface LaunchTemplateEnclaveOptionsRequest {
  Enabled?: boolean | undefined;
}
export interface LaunchTemplateHibernationOptionsRequest {
  Configured?: boolean | undefined;
}
export interface LaunchTemplateIamInstanceProfileSpecificationRequest {
  Arn?: string | undefined;
  Name?: string | undefined;
}
export interface LaunchTemplateSpotMarketOptionsRequest {
  MaxPrice?: string | undefined;
  SpotInstanceType?: SpotInstanceType | undefined;
  BlockDurationMinutes?: number | undefined;
  ValidUntil?: Date | undefined;
  InstanceInterruptionBehavior?: InstanceInterruptionBehavior | undefined;
}
export interface LaunchTemplateInstanceMarketOptionsRequest {
  MarketType?: MarketType | undefined;
  SpotOptions?: LaunchTemplateSpotMarketOptionsRequest | undefined;
}
export interface LaunchTemplateLicenseConfigurationRequest {
  LicenseConfigurationArn?: string | undefined;
}
export interface LaunchTemplateInstanceMaintenanceOptionsRequest {
  AutoRecovery?: LaunchTemplateAutoRecoveryState | undefined;
}
export interface LaunchTemplateInstanceMetadataOptionsRequest {
  HttpTokens?: LaunchTemplateHttpTokensState | undefined;
  HttpPutResponseHopLimit?: number | undefined;
  HttpEndpoint?: LaunchTemplateInstanceMetadataEndpointState | undefined;
  HttpProtocolIpv6?: LaunchTemplateInstanceMetadataProtocolIpv6 | undefined;
  InstanceMetadataTags?: LaunchTemplateInstanceMetadataTagsState | undefined;
}
export interface LaunchTemplatesMonitoringRequest {
  Enabled?: boolean | undefined;
}
export interface ConnectionTrackingSpecificationRequest {
  TcpEstablishedTimeout?: number | undefined;
  UdpStreamTimeout?: number | undefined;
  UdpTimeout?: number | undefined;
}
export interface EnaSrdUdpSpecificationRequest {
  EnaSrdUdpEnabled?: boolean | undefined;
}
export interface EnaSrdSpecificationRequest {
  EnaSrdEnabled?: boolean | undefined;
  EnaSrdUdpSpecification?: EnaSrdUdpSpecificationRequest | undefined;
}
export interface Ipv4PrefixSpecificationRequest {
  Ipv4Prefix?: string | undefined;
}
export interface InstanceIpv6AddressRequest {
  Ipv6Address?: string | undefined;
}
export interface Ipv6PrefixSpecificationRequest {
  Ipv6Prefix?: string | undefined;
}
export interface PrivateIpAddressSpecification {
  Primary?: boolean | undefined;
  PrivateIpAddress?: string | undefined;
}
export interface LaunchTemplateInstanceNetworkInterfaceSpecificationRequest {
  AssociateCarrierIpAddress?: boolean | undefined;
  AssociatePublicIpAddress?: boolean | undefined;
  DeleteOnTermination?: boolean | undefined;
  Description?: string | undefined;
  DeviceIndex?: number | undefined;
  Groups?: string[] | undefined;
  InterfaceType?: string | undefined;
  Ipv6AddressCount?: number | undefined;
  Ipv6Addresses?: InstanceIpv6AddressRequest[] | undefined;
  NetworkInterfaceId?: string | undefined;
  PrivateIpAddress?: string | undefined;
  PrivateIpAddresses?: PrivateIpAddressSpecification[] | undefined;
  SecondaryPrivateIpAddressCount?: number | undefined;
  SubnetId?: string | undefined;
  NetworkCardIndex?: number | undefined;
  Ipv4Prefixes?: Ipv4PrefixSpecificationRequest[] | undefined;
  Ipv4PrefixCount?: number | undefined;
  Ipv6Prefixes?: Ipv6PrefixSpecificationRequest[] | undefined;
  Ipv6PrefixCount?: number | undefined;
  PrimaryIpv6?: boolean | undefined;
  EnaSrdSpecification?: EnaSrdSpecificationRequest | undefined;
  ConnectionTrackingSpecification?:
    | ConnectionTrackingSpecificationRequest
    | undefined;
  EnaQueueCount?: number | undefined;
}
export interface LaunchTemplateNetworkPerformanceOptionsRequest {
  BandwidthWeighting?: InstanceBandwidthWeighting | undefined;
}
export interface OperatorRequest {
  Principal?: string | undefined;
}
export interface LaunchTemplatePlacementRequest {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  Affinity?: string | undefined;
  GroupName?: string | undefined;
  HostId?: string | undefined;
  Tenancy?: Tenancy | undefined;
  SpreadDomain?: string | undefined;
  HostResourceGroupArn?: string | undefined;
  PartitionNumber?: number | undefined;
  GroupId?: string | undefined;
}
export interface LaunchTemplatePrivateDnsNameOptionsRequest {
  HostnameType?: HostnameType | undefined;
  EnableResourceNameDnsARecord?: boolean | undefined;
  EnableResourceNameDnsAAAARecord?: boolean | undefined;
}
export interface SecondaryInterfacePrivateIpAddressSpecificationRequest {
  PrivateIpAddress?: string | undefined;
}
export interface LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest {
  DeleteOnTermination?: boolean | undefined;
  DeviceIndex?: number | undefined;
  PrivateIpAddresses?:
    | SecondaryInterfacePrivateIpAddressSpecificationRequest[]
    | undefined;
  PrivateIpAddressCount?: number | undefined;
  SecondarySubnetId?: string | undefined;
  InterfaceType?: SecondaryInterfaceType | undefined;
  NetworkCardIndex?: number | undefined;
}
export interface LaunchTemplateTagSpecificationRequest {
  ResourceType?: ResourceType | undefined;
  Tags?: Tag[] | undefined;
}
export interface RequestLaunchTemplateData {
  KernelId?: string | undefined;
  EbsOptimized?: boolean | undefined;
  IamInstanceProfile?:
    | LaunchTemplateIamInstanceProfileSpecificationRequest
    | undefined;
  BlockDeviceMappings?: LaunchTemplateBlockDeviceMappingRequest[] | undefined;
  NetworkInterfaces?:
    | LaunchTemplateInstanceNetworkInterfaceSpecificationRequest[]
    | undefined;
  ImageId?: string | undefined;
  InstanceType?: _InstanceType | undefined;
  KeyName?: string | undefined;
  Monitoring?: LaunchTemplatesMonitoringRequest | undefined;
  Placement?: LaunchTemplatePlacementRequest | undefined;
  RamDiskId?: string | undefined;
  DisableApiTermination?: boolean | undefined;
  InstanceInitiatedShutdownBehavior?: ShutdownBehavior | undefined;
  UserData?: string | undefined;
  TagSpecifications?: LaunchTemplateTagSpecificationRequest[] | undefined;
  ElasticGpuSpecifications?: ElasticGpuSpecification[] | undefined;
  ElasticInferenceAccelerators?:
    | LaunchTemplateElasticInferenceAccelerator[]
    | undefined;
  SecurityGroupIds?: string[] | undefined;
  SecurityGroups?: string[] | undefined;
  InstanceMarketOptions?:
    | LaunchTemplateInstanceMarketOptionsRequest
    | undefined;
  CreditSpecification?: CreditSpecificationRequest | undefined;
  CpuOptions?: LaunchTemplateCpuOptionsRequest | undefined;
  CapacityReservationSpecification?:
    | LaunchTemplateCapacityReservationSpecificationRequest
    | undefined;
  LicenseSpecifications?:
    | LaunchTemplateLicenseConfigurationRequest[]
    | undefined;
  HibernationOptions?: LaunchTemplateHibernationOptionsRequest | undefined;
  MetadataOptions?: LaunchTemplateInstanceMetadataOptionsRequest | undefined;
  EnclaveOptions?: LaunchTemplateEnclaveOptionsRequest | undefined;
  InstanceRequirements?: InstanceRequirementsRequest | undefined;
  PrivateDnsNameOptions?:
    | LaunchTemplatePrivateDnsNameOptionsRequest
    | undefined;
  MaintenanceOptions?:
    | LaunchTemplateInstanceMaintenanceOptionsRequest
    | undefined;
  DisableApiStop?: boolean | undefined;
  Operator?: OperatorRequest | undefined;
  NetworkPerformanceOptions?:
    | LaunchTemplateNetworkPerformanceOptionsRequest
    | undefined;
  SecondaryInterfaces?:
    | LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest[]
    | undefined;
}
export interface CreateLaunchTemplateRequest {
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
  LaunchTemplateName: string | undefined;
  VersionDescription?: string | undefined;
  LaunchTemplateData: RequestLaunchTemplateData | undefined;
  Operator?: OperatorRequest | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface LaunchTemplate {
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  CreateTime?: Date | undefined;
  CreatedBy?: string | undefined;
  DefaultVersionNumber?: number | undefined;
  LatestVersionNumber?: number | undefined;
  Tags?: Tag[] | undefined;
  Operator?: OperatorResponse | undefined;
}
export interface ValidationError {
  Code?: string | undefined;
  Message?: string | undefined;
}
export interface ValidationWarning {
  Errors?: ValidationError[] | undefined;
}
export interface CreateLaunchTemplateResult {
  LaunchTemplate?: LaunchTemplate | undefined;
  Warning?: ValidationWarning | undefined;
}
export interface CreateLaunchTemplateVersionRequest {
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  SourceVersion?: string | undefined;
  VersionDescription?: string | undefined;
  LaunchTemplateData: RequestLaunchTemplateData | undefined;
  ResolveAlias?: boolean | undefined;
}
export interface LaunchTemplateEbsBlockDevice {
  Encrypted?: boolean | undefined;
  DeleteOnTermination?: boolean | undefined;
  Iops?: number | undefined;
  KmsKeyId?: string | undefined;
  SnapshotId?: string | undefined;
  VolumeSize?: number | undefined;
  VolumeType?: VolumeType | undefined;
  Throughput?: number | undefined;
  VolumeInitializationRate?: number | undefined;
  EbsCardIndex?: number | undefined;
}
export interface LaunchTemplateBlockDeviceMapping {
  DeviceName?: string | undefined;
  VirtualName?: string | undefined;
  Ebs?: LaunchTemplateEbsBlockDevice | undefined;
  NoDevice?: string | undefined;
}
export interface CapacityReservationTargetResponse {
  CapacityReservationId?: string | undefined;
  CapacityReservationResourceGroupArn?: string | undefined;
}
export interface LaunchTemplateCapacityReservationSpecificationResponse {
  CapacityReservationPreference?: CapacityReservationPreference | undefined;
  CapacityReservationTarget?: CapacityReservationTargetResponse | undefined;
}
export interface LaunchTemplateCpuOptions {
  CoreCount?: number | undefined;
  ThreadsPerCore?: number | undefined;
  AmdSevSnp?: AmdSevSnpSpecification | undefined;
  NestedVirtualization?: NestedVirtualizationSpecification | undefined;
}
export interface CreditSpecification {
  CpuCredits?: string | undefined;
}
export interface ElasticGpuSpecificationResponse {
  Type?: string | undefined;
}
export interface LaunchTemplateElasticInferenceAcceleratorResponse {
  Type?: string | undefined;
  Count?: number | undefined;
}
export interface LaunchTemplateEnclaveOptions {
  Enabled?: boolean | undefined;
}
export interface LaunchTemplateHibernationOptions {
  Configured?: boolean | undefined;
}
export interface LaunchTemplateIamInstanceProfileSpecification {
  Arn?: string | undefined;
  Name?: string | undefined;
}
export interface LaunchTemplateSpotMarketOptions {
  MaxPrice?: string | undefined;
  SpotInstanceType?: SpotInstanceType | undefined;
  BlockDurationMinutes?: number | undefined;
  ValidUntil?: Date | undefined;
  InstanceInterruptionBehavior?: InstanceInterruptionBehavior | undefined;
}
export interface LaunchTemplateInstanceMarketOptions {
  MarketType?: MarketType | undefined;
  SpotOptions?: LaunchTemplateSpotMarketOptions | undefined;
}
export interface LaunchTemplateLicenseConfiguration {
  LicenseConfigurationArn?: string | undefined;
}
export interface LaunchTemplateInstanceMaintenanceOptions {
  AutoRecovery?: LaunchTemplateAutoRecoveryState | undefined;
}
export interface LaunchTemplateInstanceMetadataOptions {
  State?: LaunchTemplateInstanceMetadataOptionsState | undefined;
  HttpTokens?: LaunchTemplateHttpTokensState | undefined;
  HttpPutResponseHopLimit?: number | undefined;
  HttpEndpoint?: LaunchTemplateInstanceMetadataEndpointState | undefined;
  HttpProtocolIpv6?: LaunchTemplateInstanceMetadataProtocolIpv6 | undefined;
  InstanceMetadataTags?: LaunchTemplateInstanceMetadataTagsState | undefined;
}
export interface LaunchTemplatesMonitoring {
  Enabled?: boolean | undefined;
}
export interface ConnectionTrackingSpecification {
  TcpEstablishedTimeout?: number | undefined;
  UdpTimeout?: number | undefined;
  UdpStreamTimeout?: number | undefined;
}
export interface LaunchTemplateEnaSrdUdpSpecification {
  EnaSrdUdpEnabled?: boolean | undefined;
}
export interface LaunchTemplateEnaSrdSpecification {
  EnaSrdEnabled?: boolean | undefined;
  EnaSrdUdpSpecification?: LaunchTemplateEnaSrdUdpSpecification | undefined;
}
export interface Ipv4PrefixSpecificationResponse {
  Ipv4Prefix?: string | undefined;
}
export interface InstanceIpv6Address {
  Ipv6Address?: string | undefined;
  IsPrimaryIpv6?: boolean | undefined;
}
export interface Ipv6PrefixSpecificationResponse {
  Ipv6Prefix?: string | undefined;
}
export interface LaunchTemplateInstanceNetworkInterfaceSpecification {
  AssociateCarrierIpAddress?: boolean | undefined;
  AssociatePublicIpAddress?: boolean | undefined;
  DeleteOnTermination?: boolean | undefined;
  Description?: string | undefined;
  DeviceIndex?: number | undefined;
  Groups?: string[] | undefined;
  InterfaceType?: string | undefined;
  Ipv6AddressCount?: number | undefined;
  Ipv6Addresses?: InstanceIpv6Address[] | undefined;
  NetworkInterfaceId?: string | undefined;
  PrivateIpAddress?: string | undefined;
  PrivateIpAddresses?: PrivateIpAddressSpecification[] | undefined;
  SecondaryPrivateIpAddressCount?: number | undefined;
  SubnetId?: string | undefined;
  NetworkCardIndex?: number | undefined;
  Ipv4Prefixes?: Ipv4PrefixSpecificationResponse[] | undefined;
  Ipv4PrefixCount?: number | undefined;
  Ipv6Prefixes?: Ipv6PrefixSpecificationResponse[] | undefined;
  Ipv6PrefixCount?: number | undefined;
  PrimaryIpv6?: boolean | undefined;
  EnaSrdSpecification?: LaunchTemplateEnaSrdSpecification | undefined;
  ConnectionTrackingSpecification?: ConnectionTrackingSpecification | undefined;
  EnaQueueCount?: number | undefined;
}
export interface LaunchTemplateNetworkPerformanceOptions {
  BandwidthWeighting?: InstanceBandwidthWeighting | undefined;
}
export interface LaunchTemplatePlacement {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  Affinity?: string | undefined;
  GroupName?: string | undefined;
  HostId?: string | undefined;
  Tenancy?: Tenancy | undefined;
  SpreadDomain?: string | undefined;
  HostResourceGroupArn?: string | undefined;
  PartitionNumber?: number | undefined;
  GroupId?: string | undefined;
}
export interface LaunchTemplatePrivateDnsNameOptions {
  HostnameType?: HostnameType | undefined;
  EnableResourceNameDnsARecord?: boolean | undefined;
  EnableResourceNameDnsAAAARecord?: boolean | undefined;
}
export interface SecondaryInterfacePrivateIpAddressSpecification {
  PrivateIpAddress?: string | undefined;
}
export interface LaunchTemplateInstanceSecondaryInterfaceSpecification {
  DeleteOnTermination?: boolean | undefined;
  DeviceIndex?: number | undefined;
  PrivateIpAddresses?:
    | SecondaryInterfacePrivateIpAddressSpecification[]
    | undefined;
  PrivateIpAddressCount?: number | undefined;
  SecondarySubnetId?: string | undefined;
  InterfaceType?: SecondaryInterfaceType | undefined;
  NetworkCardIndex?: number | undefined;
}
export interface LaunchTemplateTagSpecification {
  ResourceType?: ResourceType | undefined;
  Tags?: Tag[] | undefined;
}
export interface ResponseLaunchTemplateData {
  KernelId?: string | undefined;
  EbsOptimized?: boolean | undefined;
  IamInstanceProfile?:
    | LaunchTemplateIamInstanceProfileSpecification
    | undefined;
  BlockDeviceMappings?: LaunchTemplateBlockDeviceMapping[] | undefined;
  NetworkInterfaces?:
    | LaunchTemplateInstanceNetworkInterfaceSpecification[]
    | undefined;
  ImageId?: string | undefined;
  InstanceType?: _InstanceType | undefined;
  KeyName?: string | undefined;
  Monitoring?: LaunchTemplatesMonitoring | undefined;
  Placement?: LaunchTemplatePlacement | undefined;
  RamDiskId?: string | undefined;
  DisableApiTermination?: boolean | undefined;
  InstanceInitiatedShutdownBehavior?: ShutdownBehavior | undefined;
  UserData?: string | undefined;
  TagSpecifications?: LaunchTemplateTagSpecification[] | undefined;
  ElasticGpuSpecifications?: ElasticGpuSpecificationResponse[] | undefined;
  ElasticInferenceAccelerators?:
    | LaunchTemplateElasticInferenceAcceleratorResponse[]
    | undefined;
  SecurityGroupIds?: string[] | undefined;
  SecurityGroups?: string[] | undefined;
  InstanceMarketOptions?: LaunchTemplateInstanceMarketOptions | undefined;
  CreditSpecification?: CreditSpecification | undefined;
  CpuOptions?: LaunchTemplateCpuOptions | undefined;
  CapacityReservationSpecification?:
    | LaunchTemplateCapacityReservationSpecificationResponse
    | undefined;
  LicenseSpecifications?: LaunchTemplateLicenseConfiguration[] | undefined;
  HibernationOptions?: LaunchTemplateHibernationOptions | undefined;
  MetadataOptions?: LaunchTemplateInstanceMetadataOptions | undefined;
  EnclaveOptions?: LaunchTemplateEnclaveOptions | undefined;
  InstanceRequirements?: InstanceRequirements | undefined;
  PrivateDnsNameOptions?: LaunchTemplatePrivateDnsNameOptions | undefined;
  MaintenanceOptions?: LaunchTemplateInstanceMaintenanceOptions | undefined;
  DisableApiStop?: boolean | undefined;
  Operator?: OperatorResponse | undefined;
  NetworkPerformanceOptions?:
    | LaunchTemplateNetworkPerformanceOptions
    | undefined;
  SecondaryInterfaces?:
    | LaunchTemplateInstanceSecondaryInterfaceSpecification[]
    | undefined;
}
export interface LaunchTemplateVersion {
  LaunchTemplateId?: string | undefined;
  LaunchTemplateName?: string | undefined;
  VersionNumber?: number | undefined;
  VersionDescription?: string | undefined;
  CreateTime?: Date | undefined;
  CreatedBy?: string | undefined;
  DefaultVersion?: boolean | undefined;
  LaunchTemplateData?: ResponseLaunchTemplateData | undefined;
  Operator?: OperatorResponse | undefined;
}
export interface CreateLaunchTemplateVersionResult {
  LaunchTemplateVersion?: LaunchTemplateVersion | undefined;
  Warning?: ValidationWarning | undefined;
}
export interface CreateLocalGatewayRouteRequest {
  DestinationCidrBlock?: string | undefined;
  LocalGatewayRouteTableId: string | undefined;
  LocalGatewayVirtualInterfaceGroupId?: string | undefined;
  DryRun?: boolean | undefined;
  NetworkInterfaceId?: string | undefined;
  DestinationPrefixListId?: string | undefined;
}
export interface LocalGatewayRoute {
  DestinationCidrBlock?: string | undefined;
  LocalGatewayVirtualInterfaceGroupId?: string | undefined;
  Type?: LocalGatewayRouteType | undefined;
  State?: LocalGatewayRouteState | undefined;
  LocalGatewayRouteTableId?: string | undefined;
  LocalGatewayRouteTableArn?: string | undefined;
  OwnerId?: string | undefined;
  SubnetId?: string | undefined;
  CoipPoolId?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  DestinationPrefixListId?: string | undefined;
}
export interface CreateLocalGatewayRouteResult {
  Route?: LocalGatewayRoute | undefined;
}
export interface CreateLocalGatewayRouteTableRequest {
  LocalGatewayId: string | undefined;
  Mode?: LocalGatewayRouteTableMode | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface StateReason {
  Code?: string | undefined;
  Message?: string | undefined;
}
export interface LocalGatewayRouteTable {
  LocalGatewayRouteTableId?: string | undefined;
  LocalGatewayRouteTableArn?: string | undefined;
  LocalGatewayId?: string | undefined;
  OutpostArn?: string | undefined;
  OwnerId?: string | undefined;
  State?: string | undefined;
  Tags?: Tag[] | undefined;
  Mode?: LocalGatewayRouteTableMode | undefined;
  StateReason?: StateReason | undefined;
}
export interface CreateLocalGatewayRouteTableResult {
  LocalGatewayRouteTable?: LocalGatewayRouteTable | undefined;
}
export interface CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest {
  LocalGatewayRouteTableId: string | undefined;
  LocalGatewayVirtualInterfaceGroupId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface LocalGatewayRouteTableVirtualInterfaceGroupAssociation {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociationId?: string | undefined;
  LocalGatewayVirtualInterfaceGroupId?: string | undefined;
  LocalGatewayId?: string | undefined;
  LocalGatewayRouteTableId?: string | undefined;
  LocalGatewayRouteTableArn?: string | undefined;
  OwnerId?: string | undefined;
  State?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult {
  LocalGatewayRouteTableVirtualInterfaceGroupAssociation?:
    | LocalGatewayRouteTableVirtualInterfaceGroupAssociation
    | undefined;
}
export interface CreateLocalGatewayRouteTableVpcAssociationRequest {
  LocalGatewayRouteTableId: string | undefined;
  VpcId: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface LocalGatewayRouteTableVpcAssociation {
  LocalGatewayRouteTableVpcAssociationId?: string | undefined;
  LocalGatewayRouteTableId?: string | undefined;
  LocalGatewayRouteTableArn?: string | undefined;
  LocalGatewayId?: string | undefined;
  VpcId?: string | undefined;
  OwnerId?: string | undefined;
  State?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateLocalGatewayRouteTableVpcAssociationResult {
  LocalGatewayRouteTableVpcAssociation?:
    | LocalGatewayRouteTableVpcAssociation
    | undefined;
}
export interface CreateLocalGatewayVirtualInterfaceRequest {
  LocalGatewayVirtualInterfaceGroupId: string | undefined;
  OutpostLagId: string | undefined;
  Vlan: number | undefined;
  LocalAddress: string | undefined;
  PeerAddress: string | undefined;
  PeerBgpAsn?: number | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  PeerBgpAsnExtended?: number | undefined;
}
export interface LocalGatewayVirtualInterface {
  LocalGatewayVirtualInterfaceId?: string | undefined;
  LocalGatewayId?: string | undefined;
  LocalGatewayVirtualInterfaceGroupId?: string | undefined;
  LocalGatewayVirtualInterfaceArn?: string | undefined;
  OutpostLagId?: string | undefined;
  Vlan?: number | undefined;
  LocalAddress?: string | undefined;
  PeerAddress?: string | undefined;
  LocalBgpAsn?: number | undefined;
  PeerBgpAsn?: number | undefined;
  PeerBgpAsnExtended?: number | undefined;
  OwnerId?: string | undefined;
  Tags?: Tag[] | undefined;
  ConfigurationState?:
    | LocalGatewayVirtualInterfaceConfigurationState
    | undefined;
}
export interface CreateLocalGatewayVirtualInterfaceResult {
  LocalGatewayVirtualInterface?: LocalGatewayVirtualInterface | undefined;
}
export interface CreateLocalGatewayVirtualInterfaceGroupRequest {
  LocalGatewayId: string | undefined;
  LocalBgpAsn?: number | undefined;
  LocalBgpAsnExtended?: number | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface LocalGatewayVirtualInterfaceGroup {
  LocalGatewayVirtualInterfaceGroupId?: string | undefined;
  LocalGatewayVirtualInterfaceIds?: string[] | undefined;
  LocalGatewayId?: string | undefined;
  OwnerId?: string | undefined;
  LocalBgpAsn?: number | undefined;
  LocalBgpAsnExtended?: number | undefined;
  LocalGatewayVirtualInterfaceGroupArn?: string | undefined;
  Tags?: Tag[] | undefined;
  ConfigurationState?:
    | LocalGatewayVirtualInterfaceGroupConfigurationState
    | undefined;
}
export interface CreateLocalGatewayVirtualInterfaceGroupResult {
  LocalGatewayVirtualInterfaceGroup?:
    | LocalGatewayVirtualInterfaceGroup
    | undefined;
}
export interface MacSystemIntegrityProtectionConfigurationRequest {
  AppleInternal?: MacSystemIntegrityProtectionSettingStatus | undefined;
  BaseSystem?: MacSystemIntegrityProtectionSettingStatus | undefined;
  DebuggingRestrictions?: MacSystemIntegrityProtectionSettingStatus | undefined;
  DTraceRestrictions?: MacSystemIntegrityProtectionSettingStatus | undefined;
  FilesystemProtections?: MacSystemIntegrityProtectionSettingStatus | undefined;
  KextSigning?: MacSystemIntegrityProtectionSettingStatus | undefined;
  NvramProtections?: MacSystemIntegrityProtectionSettingStatus | undefined;
}
export interface CreateMacSystemIntegrityProtectionModificationTaskRequest {
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  InstanceId: string | undefined;
  MacCredentials?: string | undefined;
  MacSystemIntegrityProtectionConfiguration?:
    | MacSystemIntegrityProtectionConfigurationRequest
    | undefined;
  MacSystemIntegrityProtectionStatus:
    | MacSystemIntegrityProtectionSettingStatus
    | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface CreateMacSystemIntegrityProtectionModificationTaskResult {
  MacModificationTask?: MacModificationTask | undefined;
}
export interface CreateManagedPrefixListRequest {
  DryRun?: boolean | undefined;
  PrefixListName: string | undefined;
  Entries?: AddPrefixListEntry[] | undefined;
  MaxEntries: number | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  AddressFamily: string | undefined;
  ClientToken?: string | undefined;
}
export interface ManagedPrefixList {
  PrefixListId?: string | undefined;
  AddressFamily?: string | undefined;
  State?: PrefixListState | undefined;
  StateMessage?: string | undefined;
  PrefixListArn?: string | undefined;
  PrefixListName?: string | undefined;
  MaxEntries?: number | undefined;
  Version?: number | undefined;
  Tags?: Tag[] | undefined;
  OwnerId?: string | undefined;
  IpamPrefixListResolverTargetId?: string | undefined;
  IpamPrefixListResolverSyncEnabled?: boolean | undefined;
}
export interface CreateManagedPrefixListResult {
  PrefixList?: ManagedPrefixList | undefined;
}
export interface AvailabilityZoneAddress {
  AvailabilityZone?: string | undefined;
  AvailabilityZoneId?: string | undefined;
  AllocationIds?: string[] | undefined;
}
export interface CreateNatGatewayRequest {
  AvailabilityMode?: AvailabilityMode | undefined;
  AllocationId?: string | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  SubnetId?: string | undefined;
  VpcId?: string | undefined;
  AvailabilityZoneAddresses?: AvailabilityZoneAddress[] | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ConnectivityType?: ConnectivityType | undefined;
  PrivateIpAddress?: string | undefined;
  SecondaryAllocationIds?: string[] | undefined;
  SecondaryPrivateIpAddresses?: string[] | undefined;
  SecondaryPrivateIpAddressCount?: number | undefined;
}
export interface NatGatewayAttachedAppliance {
  Type?: NatGatewayApplianceType | undefined;
  ApplianceArn?: string | undefined;
  VpcEndpointId?: string | undefined;
  AttachmentState?: NatGatewayApplianceState | undefined;
  ModificationState?: NatGatewayApplianceModifyState | undefined;
  FailureCode?: string | undefined;
  FailureMessage?: string | undefined;
}
export interface ProvisionedBandwidth {
  ProvisionTime?: Date | undefined;
  Provisioned?: string | undefined;
  RequestTime?: Date | undefined;
  Requested?: string | undefined;
  Status?: string | undefined;
}
export interface NatGateway {
  CreateTime?: Date | undefined;
  DeleteTime?: Date | undefined;
  FailureCode?: string | undefined;
  FailureMessage?: string | undefined;
  NatGatewayAddresses?: NatGatewayAddress[] | undefined;
  NatGatewayId?: string | undefined;
  ProvisionedBandwidth?: ProvisionedBandwidth | undefined;
  State?: NatGatewayState | undefined;
  SubnetId?: string | undefined;
  VpcId?: string | undefined;
  Tags?: Tag[] | undefined;
  ConnectivityType?: ConnectivityType | undefined;
  AvailabilityMode?: AvailabilityMode | undefined;
  AutoScalingIps?: AutoScalingIpsState | undefined;
  AutoProvisionZones?: AutoProvisionZonesState | undefined;
  AttachedAppliances?: NatGatewayAttachedAppliance[] | undefined;
  RouteTableId?: string | undefined;
}
export interface CreateNatGatewayResult {
  ClientToken?: string | undefined;
  NatGateway?: NatGateway | undefined;
}
export interface CreateNetworkAclRequest {
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  VpcId: string | undefined;
}
export interface NetworkAclAssociation {
  NetworkAclAssociationId?: string | undefined;
  NetworkAclId?: string | undefined;
  SubnetId?: string | undefined;
}
export interface IcmpTypeCode {
  Code?: number | undefined;
  Type?: number | undefined;
}
export interface NetworkAclEntry {
  CidrBlock?: string | undefined;
  Egress?: boolean | undefined;
  IcmpTypeCode?: IcmpTypeCode | undefined;
  Ipv6CidrBlock?: string | undefined;
  PortRange?: PortRange | undefined;
  Protocol?: string | undefined;
  RuleAction?: RuleAction | undefined;
  RuleNumber?: number | undefined;
}
export interface NetworkAcl {
  Associations?: NetworkAclAssociation[] | undefined;
  Entries?: NetworkAclEntry[] | undefined;
  IsDefault?: boolean | undefined;
  NetworkAclId?: string | undefined;
  Tags?: Tag[] | undefined;
  VpcId?: string | undefined;
  OwnerId?: string | undefined;
}
export interface CreateNetworkAclResult {
  NetworkAcl?: NetworkAcl | undefined;
  ClientToken?: string | undefined;
}
export interface CreateNetworkAclEntryRequest {
  DryRun?: boolean | undefined;
  NetworkAclId: string | undefined;
  RuleNumber: number | undefined;
  Protocol: string | undefined;
  RuleAction: RuleAction | undefined;
  Egress: boolean | undefined;
  CidrBlock?: string | undefined;
  Ipv6CidrBlock?: string | undefined;
  IcmpTypeCode?: IcmpTypeCode | undefined;
  PortRange?: PortRange | undefined;
}
export interface CreateNetworkInsightsAccessScopeRequest {
  MatchPaths?: AccessScopePathRequest[] | undefined;
  ExcludePaths?: AccessScopePathRequest[] | undefined;
  ClientToken?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface NetworkInsightsAccessScope {
  NetworkInsightsAccessScopeId?: string | undefined;
  NetworkInsightsAccessScopeArn?: string | undefined;
  CreatedDate?: Date | undefined;
  UpdatedDate?: Date | undefined;
  Tags?: Tag[] | undefined;
}
export interface NetworkInsightsAccessScopeContent {
  NetworkInsightsAccessScopeId?: string | undefined;
  MatchPaths?: AccessScopePath[] | undefined;
  ExcludePaths?: AccessScopePath[] | undefined;
}
export interface CreateNetworkInsightsAccessScopeResult {
  NetworkInsightsAccessScope?: NetworkInsightsAccessScope | undefined;
  NetworkInsightsAccessScopeContent?:
    | NetworkInsightsAccessScopeContent
    | undefined;
}
export interface RequestFilterPortRange {
  FromPort?: number | undefined;
  ToPort?: number | undefined;
}
export interface PathRequestFilter {
  SourceAddress?: string | undefined;
  SourcePortRange?: RequestFilterPortRange | undefined;
  DestinationAddress?: string | undefined;
  DestinationPortRange?: RequestFilterPortRange | undefined;
}
export interface CreateNetworkInsightsPathRequest {
  SourceIp?: string | undefined;
  DestinationIp?: string | undefined;
  Source: string | undefined;
  Destination?: string | undefined;
  Protocol: Protocol | undefined;
  DestinationPort?: number | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
  ClientToken?: string | undefined;
  FilterAtSource?: PathRequestFilter | undefined;
  FilterAtDestination?: PathRequestFilter | undefined;
}
export interface FilterPortRange {
  FromPort?: number | undefined;
  ToPort?: number | undefined;
}
export interface PathFilter {
  SourceAddress?: string | undefined;
  SourcePortRange?: FilterPortRange | undefined;
  DestinationAddress?: string | undefined;
  DestinationPortRange?: FilterPortRange | undefined;
}
export interface NetworkInsightsPath {
  NetworkInsightsPathId?: string | undefined;
  NetworkInsightsPathArn?: string | undefined;
  CreatedDate?: Date | undefined;
  Source?: string | undefined;
  Destination?: string | undefined;
  SourceArn?: string | undefined;
  DestinationArn?: string | undefined;
  SourceIp?: string | undefined;
  DestinationIp?: string | undefined;
  Protocol?: Protocol | undefined;
  DestinationPort?: number | undefined;
  Tags?: Tag[] | undefined;
  FilterAtSource?: PathFilter | undefined;
  FilterAtDestination?: PathFilter | undefined;
}
export interface CreateNetworkInsightsPathResult {
  NetworkInsightsPath?: NetworkInsightsPath | undefined;
}
export interface CreateNetworkInterfaceRequest {
  Ipv4Prefixes?: Ipv4PrefixSpecificationRequest[] | undefined;
  Ipv4PrefixCount?: number | undefined;
  Ipv6Prefixes?: Ipv6PrefixSpecificationRequest[] | undefined;
  Ipv6PrefixCount?: number | undefined;
  InterfaceType?: NetworkInterfaceCreationType | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ClientToken?: string | undefined;
  EnablePrimaryIpv6?: boolean | undefined;
  ConnectionTrackingSpecification?:
    | ConnectionTrackingSpecificationRequest
    | undefined;
  Operator?: OperatorRequest | undefined;
  SubnetId: string | undefined;
  Description?: string | undefined;
  PrivateIpAddress?: string | undefined;
  Groups?: string[] | undefined;
  PrivateIpAddresses?: PrivateIpAddressSpecification[] | undefined;
  SecondaryPrivateIpAddressCount?: number | undefined;
  Ipv6Addresses?: InstanceIpv6Address[] | undefined;
  Ipv6AddressCount?: number | undefined;
  DryRun?: boolean | undefined;
}
export interface NetworkInterfaceAssociation {
  AllocationId?: string | undefined;
  AssociationId?: string | undefined;
  IpOwnerId?: string | undefined;
  PublicDnsName?: string | undefined;
  PublicIp?: string | undefined;
  CustomerOwnedIp?: string | undefined;
  CarrierIp?: string | undefined;
}
export interface AttachmentEnaSrdUdpSpecification {
  EnaSrdUdpEnabled?: boolean | undefined;
}
export interface AttachmentEnaSrdSpecification {
  EnaSrdEnabled?: boolean | undefined;
  EnaSrdUdpSpecification?: AttachmentEnaSrdUdpSpecification | undefined;
}
export interface NetworkInterfaceAttachment {
  AttachTime?: Date | undefined;
  AttachmentId?: string | undefined;
  DeleteOnTermination?: boolean | undefined;
  DeviceIndex?: number | undefined;
  NetworkCardIndex?: number | undefined;
  InstanceId?: string | undefined;
  InstanceOwnerId?: string | undefined;
  Status?: AttachmentStatus | undefined;
  EnaSrdSpecification?: AttachmentEnaSrdSpecification | undefined;
  EnaQueueCount?: number | undefined;
}
export interface ConnectionTrackingConfiguration {
  TcpEstablishedTimeout?: number | undefined;
  UdpStreamTimeout?: number | undefined;
  UdpTimeout?: number | undefined;
}
export interface GroupIdentifier {
  GroupId?: string | undefined;
  GroupName?: string | undefined;
}
export interface NetworkInterfaceIpv6Address {
  Ipv6Address?: string | undefined;
  PublicIpv6DnsName?: string | undefined;
  IsPrimaryIpv6?: boolean | undefined;
}
export interface Ipv6PrefixSpecification {
  Ipv6Prefix?: string | undefined;
}
export interface NetworkInterfacePrivateIpAddress {
  Association?: NetworkInterfaceAssociation | undefined;
  Primary?: boolean | undefined;
  PrivateDnsName?: string | undefined;
  PrivateIpAddress?: string | undefined;
}
export interface PublicIpDnsNameOptions {
  DnsHostnameType?: string | undefined;
  PublicIpv4DnsName?: string | undefined;
  PublicIpv6DnsName?: string | undefined;
  PublicDualStackDnsName?: string | undefined;
}
export interface NetworkInterface {
  Association?: NetworkInterfaceAssociation | undefined;
  Attachment?: NetworkInterfaceAttachment | undefined;
  AvailabilityZone?: string | undefined;
  ConnectionTrackingConfiguration?: ConnectionTrackingConfiguration | undefined;
  Description?: string | undefined;
  Groups?: GroupIdentifier[] | undefined;
  InterfaceType?: NetworkInterfaceType | undefined;
  Ipv6Addresses?: NetworkInterfaceIpv6Address[] | undefined;
  MacAddress?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  OutpostArn?: string | undefined;
  OwnerId?: string | undefined;
  PrivateDnsName?: string | undefined;
  PublicDnsName?: string | undefined;
  PublicIpDnsNameOptions?: PublicIpDnsNameOptions | undefined;
  PrivateIpAddress?: string | undefined;
  PrivateIpAddresses?: NetworkInterfacePrivateIpAddress[] | undefined;
  Ipv4Prefixes?: Ipv4PrefixSpecification[] | undefined;
  Ipv6Prefixes?: Ipv6PrefixSpecification[] | undefined;
  RequesterId?: string | undefined;
  RequesterManaged?: boolean | undefined;
  SourceDestCheck?: boolean | undefined;
  Status?: NetworkInterfaceStatus | undefined;
  SubnetId?: string | undefined;
  TagSet?: Tag[] | undefined;
  VpcId?: string | undefined;
  DenyAllIgwTraffic?: boolean | undefined;
  Ipv6Native?: boolean | undefined;
  Ipv6Address?: string | undefined;
  Operator?: OperatorResponse | undefined;
  AssociatedSubnets?: string[] | undefined;
  AvailabilityZoneId?: string | undefined;
}
export interface CreateNetworkInterfaceResult {
  NetworkInterface?: NetworkInterface | undefined;
  ClientToken?: string | undefined;
}
export interface CreateNetworkInterfacePermissionRequest {
  NetworkInterfaceId: string | undefined;
  AwsAccountId?: string | undefined;
  AwsService?: string | undefined;
  Permission: InterfacePermissionType | undefined;
  DryRun?: boolean | undefined;
}
export interface NetworkInterfacePermissionState {
  State?: NetworkInterfacePermissionStateCode | undefined;
  StatusMessage?: string | undefined;
}
export interface NetworkInterfacePermission {
  NetworkInterfacePermissionId?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  AwsAccountId?: string | undefined;
  AwsService?: string | undefined;
  Permission?: InterfacePermissionType | undefined;
  PermissionState?: NetworkInterfacePermissionState | undefined;
}
export interface CreateNetworkInterfacePermissionResult {
  InterfacePermission?: NetworkInterfacePermission | undefined;
}
export interface CreatePlacementGroupRequest {
  PartitionCount?: number | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  SpreadLevel?: SpreadLevel | undefined;
  LinkedGroupId?: string | undefined;
  Operator?: OperatorRequest | undefined;
  ParentGroupId?: string | undefined;
  DryRun?: boolean | undefined;
  GroupName?: string | undefined;
  Strategy?: PlacementStrategy | undefined;
}
export interface PlacementGroup {
  GroupName?: string | undefined;
  State?: PlacementGroupState | undefined;
  Strategy?: PlacementStrategy | undefined;
  PartitionCount?: number | undefined;
  GroupId?: string | undefined;
  Tags?: Tag[] | undefined;
  GroupArn?: string | undefined;
  SpreadLevel?: SpreadLevel | undefined;
  LinkedGroupId?: string | undefined;
  Operator?: OperatorResponse | undefined;
  ParentGroupId?: string | undefined;
}
export interface CreatePlacementGroupResult {
  PlacementGroup?: PlacementGroup | undefined;
}
export interface CreatePublicIpv4PoolRequest {
  DryRun?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  NetworkBorderGroup?: string | undefined;
}
export interface CreatePublicIpv4PoolResult {
  PoolId?: string | undefined;
}
export interface CreateReplaceRootVolumeTaskRequest {
  InstanceId: string | undefined;
  SnapshotId?: string | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  ImageId?: string | undefined;
  DeleteReplacedRootVolume?: boolean | undefined;
  VolumeInitializationRate?: number | undefined;
  VolumeId?: string | undefined;
}
export interface ReplaceRootVolumeTask {
  ReplaceRootVolumeTaskId?: string | undefined;
  InstanceId?: string | undefined;
  TaskState?: ReplaceRootVolumeTaskState | undefined;
  StartTime?: string | undefined;
  CompleteTime?: string | undefined;
  Tags?: Tag[] | undefined;
  ImageId?: string | undefined;
  SnapshotId?: string | undefined;
  DeleteReplacedRootVolume?: boolean | undefined;
}
export interface CreateReplaceRootVolumeTaskResult {
  ReplaceRootVolumeTask?: ReplaceRootVolumeTask | undefined;
}
export interface PriceScheduleSpecification {
  Term?: number | undefined;
  Price?: number | undefined;
  CurrencyCode?: CurrencyCodeValues | undefined;
}
export interface CreateReservedInstancesListingRequest {
  ReservedInstancesId: string | undefined;
  InstanceCount: number | undefined;
  PriceSchedules: PriceScheduleSpecification[] | undefined;
  ClientToken: string | undefined;
}
export interface CreateReservedInstancesListingResult {
  ReservedInstancesListings?: ReservedInstancesListing[] | undefined;
}
export interface CreateRestoreImageTaskRequest {
  Bucket: string | undefined;
  ObjectKey: string | undefined;
  Name?: string | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
  DryRun?: boolean | undefined;
}
export interface CreateRestoreImageTaskResult {
  ImageId?: string | undefined;
}
export interface CreateRouteRequest {
  DestinationPrefixListId?: string | undefined;
  VpcEndpointId?: string | undefined;
  TransitGatewayId?: string | undefined;
  LocalGatewayId?: string | undefined;
  CarrierGatewayId?: string | undefined;
  CoreNetworkArn?: string | undefined;
  OdbNetworkArn?: string | undefined;
  DryRun?: boolean | undefined;
  RouteTableId: string | undefined;
  DestinationCidrBlock?: string | undefined;
  GatewayId?: string | undefined;
  DestinationIpv6CidrBlock?: string | undefined;
  EgressOnlyInternetGatewayId?: string | undefined;
  InstanceId?: string | undefined;
  NetworkInterfaceId?: string | undefined;
  VpcPeeringConnectionId?: string | undefined;
  NatGatewayId?: string | undefined;
}
export interface CreateRouteResult {
  Return?: boolean | undefined;
}
export interface CreateRouteServerRequest {
  AmazonSideAsn: number | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  PersistRoutes?: RouteServerPersistRoutesAction | undefined;
  PersistRoutesDuration?: number | undefined;
  SnsNotificationsEnabled?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface RouteServer {
  RouteServerId?: string | undefined;
  AmazonSideAsn?: number | undefined;
  State?: RouteServerState | undefined;
  Tags?: Tag[] | undefined;
  PersistRoutesState?: RouteServerPersistRoutesState | undefined;
  PersistRoutesDuration?: number | undefined;
  SnsNotificationsEnabled?: boolean | undefined;
  SnsTopicArn?: string | undefined;
}
export interface CreateRouteServerResult {
  RouteServer?: RouteServer | undefined;
}
export interface CreateRouteServerEndpointRequest {
  RouteServerId: string | undefined;
  SubnetId: string | undefined;
  ClientToken?: string | undefined;
  DryRun?: boolean | undefined;
  TagSpecifications?: TagSpecification[] | undefined;
}
export interface RouteServerEndpoint {
  RouteServerId?: string | undefined;
  RouteServerEndpointId?: string | undefined;
  VpcId?: string | undefined;
  SubnetId?: string | undefined;
  EniId?: string | undefined;
  EniAddress?: string | undefined;
  State?: RouteServerEndpointState | undefined;
  FailureReason?: string | undefined;
  Tags?: Tag[] | undefined;
}
export interface CreateRouteServerEndpointResult {
  RouteServerEndpoint?: RouteServerEndpoint | undefined;
}
