import type { _InstanceType, AcceleratorManufacturer, AcceleratorName, AcceleratorType, AddressFamily, AmdSevSnpSpecification, AttachmentStatus, AutoProvisionZonesState, AutoScalingIpsState, AvailabilityMode, BareMetal, BurstablePerformance, CapacityReservationPreference, ConnectivityType, ContainerFormat, CpuManufacturer, CurrencyCodeValues, DefaultTargetCapacityType, DestinationFileFormat, DiskImageFormat, Ec2InstanceConnectEndpointState, ExportEnvironment, ExportTaskState, FleetCapacityReservationUsageStrategy, FleetExcessCapacityTerminationPolicy, 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, RouteOrigin, RouteServerBfdState, RouteServerBgpState, RouteServerEndpointState, RouteServerPeerLivenessMode, RouteServerPeerState, RouteServerPersistRoutesAction, RouteServerPersistRoutesState, RouteServerState, RouteState, RuleAction, SecondaryInterfaceType, ShutdownBehavior, SnapshotLocationEnum, SpotAllocationStrategy, SpotInstanceInterruptionBehavior, SpotInstanceType, SpreadLevel, TargetCapacityUnitType, Tenancy, TokenState, TrafficType, VolumeType, WeekDay } from "./enums"; import type { AcceleratorCount, AcceleratorCountRequest, AcceleratorTotalMemoryMiB, AcceleratorTotalMemoryMiBRequest, AccessScopePath, AccessScopePathRequest, AddIpamOperatingRegion, AddPrefixListEntry, InstanceEventWindow, Ipv4PrefixSpecification, NatGatewayAddress, OperatorResponse, PortRange, ReservedInstancesListing, RouteTableAssociationState, Tag, TagSpecification, UnsuccessfulItem } from "./models_0"; /** * @public */ export interface CreateDelegateMacVolumeOwnershipTaskRequest { /** *
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.
* @public */ ClientToken?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
The ID of the Amazon EC2 Mac instance.
* @public */ InstanceId: string | undefined; /** *Specifies the following credentials:
** Internal disk administrative user *
*
* Username - Only the default administrative user
* (aws-managed-user) is supported and it is used by default. You can't
* specify a different administrative user.
* Password - If you did not change the default
* password for aws-managed-user, specify the default password, which is
* blank. Otherwise, specify your password.
* Amazon EBS root volume administrative user *
*
* Username - If you did not change the default
* administrative user, specify ec2-user. Otherwise, specify the username
* for your administrative user.
* Password - Specify the password for the * administrative user.
*The credentials must be specified in the following JSON format:
*
* \{
* "internalDiskPassword":"internal-disk-admin_password",
* "rootVolumeUsername":"root-volume-admin_username",
* "rootVolumepassword":"root-volume-admin_password"
* \}
*
The tags to assign to the volume ownership delegation task.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** *Describes the configuration for a System Integrity Protection (SIP) modification task.
* @public */ export interface MacSystemIntegrityProtectionConfiguration { /** *Indicates whether Apple Internal was enabled or disabled by the task.
* @public */ AppleInternal?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Indicates whether Base System was enabled or disabled by the task.
* @public */ BaseSystem?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Indicates whether Debugging Restrictions was enabled or disabled by the task.
* @public */ DebuggingRestrictions?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Indicates whether Dtrace Restrictions was enabled or disabled by the task.
* @public */ DTraceRestrictions?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Indicates whether Filesystem Protections was enabled or disabled by the task.
* @public */ FilesystemProtections?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Indicates whether Kext Signing was enabled or disabled by the task.
* @public */ KextSigning?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Indicates whether NVRAM Protections was enabled or disabled by the task.
* @public */ NvramProtections?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Indicates SIP was enabled or disabled by the task.
* @public */ Status?: MacSystemIntegrityProtectionSettingStatus | undefined; } /** *Information about a System Integrity Protection (SIP) modification task or volume * ownership delegation task for an Amazon EC2 Mac instance.
* @public */ export interface MacModificationTask { /** *The ID of the Amazon EC2 Mac instance.
* @public */ InstanceId?: string | undefined; /** *The ID of task.
* @public */ MacModificationTaskId?: string | undefined; /** *[SIP modification tasks only] Information about the SIP * configuration.
* @public */ MacSystemIntegrityProtectionConfig?: MacSystemIntegrityProtectionConfiguration | undefined; /** *The date and time the task was created, in the UTC timezone
* (YYYY-MM-DDThh:mm:ss.sssZ).
The tags assigned to the task.
* @public */ Tags?: Tag[] | undefined; /** *The state of the task.
* @public */ TaskState?: MacModificationTaskState | undefined; /** *The type of task.
* @public */ TaskType?: MacModificationTaskType | undefined; } /** * @public */ export interface CreateDelegateMacVolumeOwnershipTaskResult { /** *Information about the volume ownership delegation task.
* @public */ MacModificationTask?: MacModificationTask | undefined; } /** *Describes a DHCP configuration option.
* @public */ export interface NewDhcpConfiguration { /** *The name of a DHCP option.
* @public */ Key?: string | undefined; /** *The values for the DHCP option.
* @public */ Values?: string[] | undefined; } /** * @public */ export interface CreateDhcpOptionsRequest { /** *A DHCP configuration option.
* @public */ DhcpConfigurations: NewDhcpConfiguration[] | undefined; /** *The tags to assign to the DHCP option.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Describes a value for a resource attribute that is a String.
* @public */ export interface AttributeValue { /** *The attribute value. The value is case-sensitive.
* @public */ Value?: string | undefined; } /** *Describes a DHCP configuration option.
* @public */ export interface DhcpConfiguration { /** *The name of a DHCP option.
* @public */ Key?: string | undefined; /** *The values for the DHCP option.
* @public */ Values?: AttributeValue[] | undefined; } /** *The set of DHCP options.
* @public */ export interface DhcpOptions { /** *The ID of the Amazon Web Services account that owns the DHCP options set.
* @public */ OwnerId?: string | undefined; /** *Any tags assigned to the DHCP options set.
* @public */ Tags?: Tag[] | undefined; /** *The ID of the set of DHCP options.
* @public */ DhcpOptionsId?: string | undefined; /** *The DHCP options in the set.
* @public */ DhcpConfigurations?: DhcpConfiguration[] | undefined; } /** * @public */ export interface CreateDhcpOptionsResult { /** *A set of DHCP options.
* @public */ DhcpOptions?: DhcpOptions | undefined; } /** * @public */ export interface CreateEgressOnlyInternetGatewayRequest { /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the * request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the VPC for which to create the egress-only internet gateway.
* @public */ VpcId: string | undefined; /** *The tags to assign to the egress-only internet gateway.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** *Describes the attachment of a VPC to an internet gateway or an egress-only internet gateway.
* @public */ export interface InternetGatewayAttachment { /** *The current state of the attachment. For an internet gateway, the state is
* available when attached to a VPC; otherwise, this value is not
* returned.
The ID of the VPC.
* @public */ VpcId?: string | undefined; } /** *Describes an egress-only internet gateway.
* @public */ export interface EgressOnlyInternetGateway { /** *Information about the attachment of the egress-only internet gateway.
* @public */ Attachments?: InternetGatewayAttachment[] | undefined; /** *The ID of the egress-only internet gateway.
* @public */ EgressOnlyInternetGatewayId?: string | undefined; /** *The tags assigned to the egress-only internet gateway.
* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface CreateEgressOnlyInternetGatewayResult { /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the * request.
* @public */ ClientToken?: string | undefined; /** *Information about the egress-only internet gateway.
* @public */ EgressOnlyInternetGateway?: EgressOnlyInternetGateway | undefined; } /** *The Amazon EC2 launch template that can be used by * an EC2 Fleet to configure Amazon EC2 instances. You must specify either the ID or name of the launch template in the request, but not both.
*For information about launch templates, see Launch * an instance from a launch template in the * Amazon EC2 User Guide.
* @public */ export interface FleetLaunchTemplateSpecificationRequest { /** *The ID of the launch template.
*You must specify the LaunchTemplateId or the LaunchTemplateName, but not both.
The name of the launch template.
*You must specify the LaunchTemplateName or the LaunchTemplateId, but not both.
The launch template version number, $Latest, or $Default. You must specify a value, otherwise the request fails.
If the value is $Latest, Amazon EC2 uses the latest version of the launch template.
If the value is $Default, Amazon EC2 uses the default version of the launch template.
Describes a block device for an EBS volume.
* @public */ export interface FleetEbsBlockDeviceRequest { /** *Indicates whether the encryption state of an EBS volume is changed while being restored
* from a backing snapshot. The effect of setting the encryption state to true
* depends on the volume origin (new or from a snapshot), starting encryption state,
* ownership, and whether encryption by default is enabled. For more information, see Amazon EBS
* encryption in the Amazon EBS User Guide.
In no case can you remove encryption from an encrypted volume.
*Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For * more information, see Supported instance types.
*This parameter is not returned by DescribeImageAttribute.
*For CreateImage and RegisterImage, whether you * can include this parameter, and the allowed values differ depending on the type of block * device mapping you are creating.
*If you are creating a block device mapping for a new (empty)
* volume, you can include this parameter, and specify either
* true for an encrypted volume, or false for an
* unencrypted volume. If you omit this parameter, it defaults to false
* (unencrypted).
If you are creating a block device mapping from an existing encrypted or * unencrypted snapshot, you must omit this parameter. If you include this * parameter, the request will fail, regardless of the value that you specify.
*If you are creating a block device mapping from an existing unencrypted
* volume, you can include this parameter, but you must specify
* false. If you specify true, the request will fail. In
* this case, we recommend that you omit the parameter.
If you are creating a block device mapping from an existing encrypted
* volume, you can include this parameter, and specify either
* true or false. However, if you specify
* false, the parameter is ignored and the block device mapping is
* always encrypted. In this case, we recommend that you omit the parameter.
Indicates whether the EBS volume is deleted on instance termination. For more * information, see Preserve data when * an instance is terminated in the Amazon EC2 User Guide.
* @public */ DeleteOnTermination?: boolean | undefined; /** *The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes,
* this represents the number of IOPS that are provisioned for the volume. For gp2
* volumes, this represents the baseline performance of the volume and the rate at which
* the volume accumulates I/O credits for bursting.
The following are the supported values for each volume type:
*
* gp3: 3,000 - 80,000 IOPS
* io1: 100 - 64,000 IOPS
* io2: 100 - 256,000 IOPS
For io2 volumes, you can achieve up to 256,000 IOPS on
* instances
* built on the Nitro System. On other instances, you can achieve performance up to 32,000 IOPS.
This parameter is required for io1 and io2 volumes. The default for gp3 volumes
* is 3,000 IOPS.
The throughput that the volume supports, in MiB/s.
*This parameter is valid only for gp3 volumes.
Valid Range: Minimum value of 125. Maximum value of 2,000.
* @public */ Throughput?: number | undefined; /** *Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key * to use for EBS encryption.
*This parameter is only supported on BlockDeviceMapping objects called by
* CreateFleet, RequestSpotInstances, and RunInstances.
The ID of the snapshot.
* @public */ SnapshotId?: string | undefined; /** *The size of the volume, in GiBs. You must specify either a snapshot ID or a volume * size. If you specify a snapshot, the default is the snapshot size. You can specify a * volume size that is equal to or larger than the snapshot size.
*The following are the supported sizes for each volume type:
*
* gp2: 1 - 16,384 GiB
* gp3: 1 - 65,536 GiB
* io1: 4 - 16,384 GiB
* io2: 4 - 65,536 GiB
* st1 and sc1: 125 - 16,384 GiB
* standard: 1 - 1024 GiB
The volume type. For more information, see Amazon EBS volume types in the * Amazon EBS User Guide.
* @public */ VolumeType?: VolumeType | undefined; } /** *Describes a block device mapping, which defines the EBS volumes and instance store * volumes to attach to an instance at launch.
*To override a block device mapping specified in the launch template:
*Specify the exact same DeviceName here as specified in the launch
* template.
Only specify the parameters you want to change.
*Any parameters you don't specify here will keep their original launch template * values.
*To add a new block device mapping:
*Specify a DeviceName that doesn't exist in the launch
* template.
Specify all desired parameters here.
*The device name (for example, /dev/sdh or xvdh).
The virtual device name (ephemeralN). Instance store volumes are numbered
* starting from 0. An instance type with 2 available instance store volumes can specify
* mappings for ephemeral0 and ephemeral1. The number of available
* instance store volumes depends on the instance type. After you connect to the instance, you
* must mount the volume.
NVMe instance store volumes are automatically enumerated and assigned a device name. * Including them in your block device mapping has no effect.
*Constraints: For M3 instances, you must specify instance store volumes in the block * device mapping for the instance. When you launch an M3 instance, we ignore any instance * store volumes specified in the block device mapping for the AMI.
* @public */ VirtualName?: string | undefined; /** *Parameters used to automatically set up EBS volumes when the instance is * launched.
* @public */ Ebs?: FleetEbsBlockDeviceRequest | undefined; /** *To omit the device from the block device mapping, specify an empty string. When this * property is specified, the device is removed from the block device mapping regardless of * the assigned value.
* @public */ NoDevice?: string | undefined; } /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see * Amazon * EBS–optimized instances in the Amazon EC2 User Guide.
* @public */ export interface BaselineEbsBandwidthMbpsRequest { /** *The minimum baseline bandwidth, in Mbps. To specify no minimum limit, omit * this parameter.
* @public */ Min?: number | undefined; /** *The maximum baseline bandwidth, in Mbps. To specify no maximum limit, omit * this parameter.
* @public */ Max?: number | undefined; } /** *Specify an instance family to use as the baseline reference for CPU performance. All * instance types that match your specified attributes will be compared against the CPU * performance of the referenced instance family, regardless of CPU manufacturer or * architecture.
*Currently, only one instance family can be specified in the list.
*The instance family to use as a baseline reference.
*Ensure that you specify the correct value for the instance family. The instance
* family is everything before the period (.) in the instance type name. For
* example, in the instance type c6i.large, the instance family is
* c6i, not c6. For more information, see Amazon EC2
* instance type naming conventions in Amazon EC2 Instance
* Types.
The following instance families are not supported for performance * protection:
*
* c1
*
* g3 | g3s
*
* hpc7g
*
* m1 | m2
*
* mac1 | mac2 | mac2-m1ultra |
* mac2-m2 | mac2-m2pro
*
* p3dn | p4d | p5
*
* t1
*
* u-12tb1 | u-18tb1 | u-24tb1 |
* u-3tb1 | u-6tb1 | u-9tb1 |
* u7i-12tb | u7in-16tb | u7in-24tb |
* u7in-32tb
*
If you enable performance protection by specifying a supported instance family, the * returned instance types will exclude the above unsupported instance families.
*If you specify an unsupported instance family as a value for baseline performance, the * API returns an empty response for GetInstanceTypesFromInstanceRequirements and an exception for CreateFleet, RequestSpotFleet, ModifyFleet, and ModifySpotFleetRequest.
* @public */ InstanceFamily?: string | undefined; } /** *The CPU performance to consider, using an instance family as the baseline reference.
* @public */ export interface CpuPerformanceFactorRequest { /** *Specify an instance family to use as the baseline reference for CPU performance. All * instance types that match your specified attributes will be compared against the CPU * performance of the referenced instance family, regardless of CPU manufacturer or * architecture differences.
*Currently, only one instance family can be specified in the list.
*The baseline performance to consider, using an instance family as a baseline reference. * The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this * baseline to guide instance type selection, but there is no guarantee that the selected * instance types will always exceed the baseline for every application.
*Currently, this parameter only supports CPU performance as a baseline performance
* factor. For example, specifying c6i would use the CPU performance of the
* c6i family as the baseline reference.
The CPU performance to consider, using an instance family as the baseline reference.
* @public */ Cpu?: CpuPerformanceFactorRequest | undefined; } /** *The minimum and maximum amount of memory per vCPU, in GiB.
* @public */ export interface MemoryGiBPerVCpuRequest { /** *The minimum amount of memory per vCPU, in GiB. To specify no minimum limit, omit this * parameter.
* @public */ Min?: number | undefined; /** *The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this * parameter.
* @public */ Max?: number | undefined; } /** *The minimum and maximum amount of memory, in MiB.
* @public */ export interface MemoryMiBRequest { /** *The minimum amount of memory, in MiB. To specify no minimum limit, specify
* 0.
The maximum amount of memory, in MiB. To specify no maximum limit, omit this * parameter.
* @public */ Max?: number | undefined; } /** *The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).
*Setting the minimum bandwidth does not guarantee that your instance will achieve the * minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum * bandwidth, but the actual bandwidth of your instance might go below the specified minimum * at times. For more information, see Available instance bandwidth in the * Amazon EC2 User Guide.
*The minimum amount of network bandwidth, in Gbps. To specify no minimum limit, omit this * parameter.
* @public */ Min?: number | undefined; /** *The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this * parameter.
* @public */ Max?: number | undefined; } /** *The minimum and maximum number of network interfaces.
* @public */ export interface NetworkInterfaceCountRequest { /** *The minimum number of network interfaces. To specify no minimum limit, omit this * parameter.
* @public */ Min?: number | undefined; /** *The maximum number of network interfaces. To specify no maximum limit, omit this * parameter.
* @public */ Max?: number | undefined; } /** *The minimum and maximum amount of total local storage, in GB.
* @public */ export interface TotalLocalStorageGBRequest { /** *The minimum amount of total local storage, in GB. To specify no minimum limit, omit this * parameter.
* @public */ Min?: number | undefined; /** *The maximum amount of total local storage, in GB. To specify no maximum limit, omit this * parameter.
* @public */ Max?: number | undefined; } /** *The minimum and maximum number of vCPUs.
* @public */ export interface VCpuCountRangeRequest { /** *The minimum number of vCPUs. To specify no minimum limit, specify 0.
The maximum number of vCPUs. To specify no maximum limit, omit this parameter.
* @public */ Max?: number | undefined; } /** *The attributes for the instance types. When you specify instance attributes, Amazon EC2 will * identify instance types with these attributes.
*You must specify VCpuCount and MemoryMiB. All other attributes
* are optional. Any unspecified optional attribute is set to its default.
When you specify multiple attributes, you get instance types that satisfy all of the * specified attributes. If you specify multiple values for an attribute, you get instance * types that satisfy any of the specified values.
*To limit the list of instance types from which Amazon EC2 can identify matching instance types, * you can use one of the following parameters, but not both in the same request:
*
* AllowedInstanceTypes - The instance types to include in the list. All
* other instance types are ignored, even if they match your specified attributes.
* ExcludedInstanceTypes - The instance types to exclude from the list,
* even if they match your specified attributes.
If you specify InstanceRequirements, you can't specify
* InstanceType.
Attribute-based instance type selection is only supported when using Auto Scaling
* groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in
* the launch instance
* wizard, or with the RunInstances API or
* AWS::EC2::Instance Amazon Web Services CloudFormation resource, you can't specify
* InstanceRequirements.
For more information, see Specify attributes for instance type selection for EC2 Fleet or Spot Fleet and Spot * placement score in the Amazon EC2 User Guide.
* @public */ export interface InstanceRequirementsRequest { /** *The minimum and maximum number of vCPUs.
* @public */ VCpuCount: VCpuCountRangeRequest | undefined; /** *The minimum and maximum amount of memory, in MiB.
* @public */ MemoryMiB: MemoryMiBRequest | undefined; /** *The CPU manufacturers to include.
*For instance types with Intel CPUs, specify intel.
For instance types with AMD CPUs, specify amd.
For instance types with Amazon Web Services CPUs, specify amazon-web-services.
For instance types with Apple CPUs, specify apple.
Don't confuse the CPU manufacturer with the CPU architecture. Instances will * be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you * specify in your launch template.
*Default: Any manufacturer
* @public */ CpuManufacturers?: CpuManufacturer[] | undefined; /** *The minimum and maximum amount of memory per vCPU, in GiB.
*Default: No minimum or maximum limits
* @public */ MemoryGiBPerVCpu?: MemoryGiBPerVCpuRequest | undefined; /** *The instance types to exclude.
*You can use strings with one or more wild cards, represented by
* an asterisk (*), to exclude an instance family, type, size, or generation. The
* following are examples: m5.8xlarge, c5*.*, m5a.*,
* r*, *3*.
For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance
* family, which includes all C5a and C5n instance types. If you specify
* m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n
* instance types.
If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.
Default: No excluded instance types
* @public */ ExcludedInstanceTypes?: string[] | undefined; /** *Indicates whether current or previous generation instance types are included. The * current generation instance types are recommended for use. Current generation instance types are * typically the latest two to three generations in each instance family. For more * information, see Instance types in the * Amazon EC2 User Guide.
*For current generation instance types, specify current.
For previous generation instance types, specify previous.
Default: Current and previous generation instance types
* @public */ InstanceGenerations?: InstanceGeneration[] | undefined; /** *[Price protection] The price protection threshold for Spot Instances, as a percentage higher than * an identified Spot price. The identified Spot price is the Spot price of the lowest priced * current generation C, M, or R instance type with your specified attributes. If no current * generation C, M, or R instance type matches your attributes, then the identified Spot price * is from the lowest priced current generation instance types, and failing that, from the * lowest priced previous generation instance types that match your attributes. When Amazon EC2 * selects instance types with your attributes, it will exclude instance types whose Spot * price exceeds your specified threshold.
*The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
*If you set TargetCapacityUnitType to vcpu or
* memory-mib, the price protection threshold is applied based on the
* per-vCPU or per-memory price instead of the per-instance price.
This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.
*Only one of SpotMaxPricePercentageOverLowestPrice or
* MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you
* don't specify either, Amazon EC2 will automatically apply optimal price protection to
* consistently select from a wide range of instance types. To indicate no price protection
* threshold for Spot Instances, meaning you want to consider all instance types that match your
* attributes, include one of these parameters and specify a high value, such as
* 999999.
Default: 100
*
[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than * an identified On-Demand price. The identified On-Demand price is the price of the lowest * priced current generation C, M, or R instance type with your specified attributes. When * Amazon EC2 selects instance types with your attributes, it will exclude instance types whose * price exceeds your specified threshold.
*The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
*To indicate no price protection threshold, specify a high value, such as
* 999999.
This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.
*If you set TargetCapacityUnitType to vcpu or
* memory-mib, the price protection threshold is applied based on the
* per-vCPU or per-memory price instead of the per-instance price.
Default: 20
*
Indicates whether bare metal instance types must be included, excluded, or required.
*To include bare metal instance types, specify included.
To require only bare metal instance types, specify required.
To exclude bare metal instance types, specify excluded.
Default: excluded
*
Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see * Burstable performance instances.
*To include burstable performance instance types, specify included.
To require only burstable performance instance types, specify required.
To exclude burstable performance instance types, specify excluded.
Default: excluded
*
Indicates whether instance types must support hibernation for On-Demand Instances.
*This parameter is not supported for GetSpotPlacementScores.
*Default: false
*
The minimum and maximum number of network interfaces.
*Default: No minimum or maximum limits
* @public */ NetworkInterfaceCount?: NetworkInterfaceCountRequest | undefined; /** *Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, * Amazon * EC2 instance store in the Amazon EC2 User Guide.
*To include instance types with instance store volumes, specify
* included.
To require only instance types with instance store volumes, specify
* required.
To exclude instance types with instance store volumes, specify
* excluded.
Default: included
*
The type of local storage that is required.
*For instance types with hard disk drive (HDD) storage, specify hdd.
For instance types with solid state drive (SSD) storage, specify
* ssd.
Default: hdd and ssd
*
The minimum and maximum amount of total local storage, in GB.
*Default: No minimum or maximum limits
* @public */ TotalLocalStorageGB?: TotalLocalStorageGBRequest | undefined; /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see * Amazon * EBS–optimized instances in the Amazon EC2 User Guide.
*Default: No minimum or maximum limits
* @public */ BaselineEbsBandwidthMbps?: BaselineEbsBandwidthMbpsRequest | undefined; /** *The accelerator types that must be on the instance type.
*For instance types with FPGA accelerators, specify fpga.
For instance types with GPU accelerators, specify gpu.
For instance types with Inference accelerators, specify inference.
For instance types with Media accelerators, specify media.
Default: Any accelerator type
* @public */ AcceleratorTypes?: AcceleratorType[] | undefined; /** *The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on * an instance.
*To exclude accelerator-enabled instance types, set Max to 0.
Default: No minimum or maximum limits
* @public */ AcceleratorCount?: AcceleratorCountRequest | undefined; /** *Indicates whether instance types must have accelerators by specific manufacturers.
*For instance types with Amazon Web Services devices, specify amazon-web-services.
For instance types with AMD devices, specify amd.
For instance types with Habana devices, specify habana.
For instance types with NVIDIA devices, specify nvidia.
For instance types with Xilinx devices, specify xilinx.
Default: Any manufacturer
* @public */ AcceleratorManufacturers?: AcceleratorManufacturer[] | undefined; /** *The accelerators that must be on the instance type.
*For instance types with NVIDIA A10G GPUs, specify a10g.
For instance types with NVIDIA A100 GPUs, specify a100.
For instance types with NVIDIA H100 GPUs, specify h100.
For instance types with Amazon Web Services Inferentia chips, specify inferentia.
For instance types with Amazon Web Services Inferentia2 chips, specify inferentia2.
For instance types with Habana Gaudi HL-205 GPUs, specify gaudi-hl-205.
For instance types with NVIDIA GRID K520 GPUs, specify k520.
For instance types with NVIDIA K80 GPUs, specify k80.
For instance types with NVIDIA L4 GPUs, specify l4.
For instance types with NVIDIA L40S GPUs, specify l40s.
For instance types with NVIDIA M60 GPUs, specify m60.
For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.
For instance types with Amazon Web Services Trainium chips, specify trainium.
For instance types with Amazon Web Services Trainium2 chips, specify trainium2.
For instance types with NVIDIA T4 GPUs, specify t4.
For instance types with NVIDIA T4G GPUs, specify t4g.
For instance types with Xilinx U30 cards, specify u30.
For instance types with Xilinx VU9P FPGAs, specify vu9p.
For instance types with NVIDIA V100 GPUs, specify v100.
Default: Any accelerator
* @public */ AcceleratorNames?: AcceleratorName[] | undefined; /** *The minimum and maximum amount of total accelerator memory, in MiB.
*Default: No minimum or maximum limits
* @public */ AcceleratorTotalMemoryMiB?: AcceleratorTotalMemoryMiBRequest | undefined; /** *The minimum and maximum amount of baseline network bandwidth, in gigabits per second * (Gbps). For more information, see Amazon EC2 instance network bandwidth in the Amazon EC2 User Guide.
*Default: No minimum or maximum limits
* @public */ NetworkBandwidthGbps?: NetworkBandwidthGbpsRequest | undefined; /** *The instance types to apply your specified attributes against. All other instance types * are ignored, even if they match your specified attributes.
*You can use strings with one or more wild cards, represented by
* an asterisk (*), to allow an instance type, size, or generation. The
* following are examples: m5.8xlarge, c5*.*, m5a.*,
* r*, *3*.
For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance
* family, which includes all C5a and C5n instance types. If you specify
* m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n
* instance types.
If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.
Default: All instance types
* @public */ AllowedInstanceTypes?: string[] | undefined; /** *[Price protection] The price protection threshold for Spot Instances, as a percentage of an * identified On-Demand price. The identified On-Demand price is the price of the lowest * priced current generation C, M, or R instance type with your specified attributes. If no * current generation C, M, or R instance type matches your attributes, then the identified * price is from the lowest priced current generation instance types, and failing that, from * the lowest priced previous generation instance types that match your attributes. When Amazon EC2 * selects instance types with your attributes, it will exclude instance types whose price * exceeds your specified threshold.
*The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
*If you set TargetCapacityUnitType to vcpu or
* memory-mib, the price protection threshold is based on the per vCPU or per
* memory price instead of the per instance price.
Only one of SpotMaxPricePercentageOverLowestPrice or
* MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you
* don't specify either, Amazon EC2 will automatically apply optimal price protection to
* consistently select from a wide range of instance types. To indicate no price protection
* threshold for Spot Instances, meaning you want to consider all instance types that match your
* attributes, include one of these parameters and specify a high value, such as
* 999999.
The baseline performance to consider, using an instance family as a baseline reference. * The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this * baseline to guide instance type selection, but there is no guarantee that the selected * instance types will always exceed the baseline for every application. Currently, this * parameter only supports CPU performance as a baseline performance factor. For more * information, see Performance protection in the Amazon EC2 User Guide.
* @public */ BaselinePerformanceFactors?: BaselinePerformanceFactorsRequest | undefined; /** *Specifies whether instance types must support encrypting in-transit traffic between * instances. For more information, including the supported instance types, see Encryption in * transit in the Amazon EC2 User Guide.
*Default: false
*
Describes the placement of an instance.
* @public */ export interface Placement { /** *The ID of the Availability Zone of the instance.
*On input, you can specify AvailabilityZone or AvailabilityZoneId,
* but not both. If you specify neither one, Amazon EC2 automatically selects an Availability Zone
* for you.
This parameter is not supported for CreateFleet.
* @public */ AvailabilityZoneId?: string | undefined; /** *The affinity setting for the instance on the Dedicated Host.
*This parameter is not supported for CreateFleet or ImportInstance.
* @public */ Affinity?: string | undefined; /** *The name of the placement group that the instance is in.
*On input, you can specify GroupId or GroupName,
* but not both.
The number of the partition that the instance is in. Valid only if the placement group
* strategy is set to partition.
This parameter is not supported for CreateFleet.
* @public */ PartitionNumber?: number | undefined; /** *The ID of the Dedicated Host on which the instance resides.
*This parameter is not supported for CreateFleet or ImportInstance.
* @public */ HostId?: string | undefined; /** *The tenancy of the instance. An instance with a
* tenancy of dedicated runs on single-tenant hardware.
This parameter is not supported for CreateFleet. The
* host tenancy is not supported for ImportInstance or
* for T3 instances that are configured for the unlimited CPU credit
* option.
Reserved for future use.
* @public */ SpreadDomain?: string | undefined; /** *The ARN of the host resource group in which to launch the instances.
*On input, if you specify this parameter, either omit the Tenancy parameter or set it to host.
This parameter is not supported for CreateFleet.
* @public */ HostResourceGroupArn?: string | undefined; /** *The ID of the placement group that the instance is in.
*On input, you can specify GroupId or GroupName,
* but not both.
The Availability Zone of the instance.
*On input, you can specify AvailabilityZone or AvailabilityZoneId,
* but not both. If you specify neither one, Amazon EC2 automatically selects an Availability Zone
* for you.
This parameter is not supported for CreateFleet.
* @public */ AvailabilityZone?: string | undefined; } /** *Describes overrides for a launch template.
* @public */ export interface FleetLaunchTemplateOverridesRequest { /** *The instance type.
*
* mac1.metal is not supported as a launch template override.
If you specify InstanceType, you can't specify
* InstanceRequirements.
The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not * recommend using this parameter because it can lead to increased interruptions. If you * do not specify this parameter, you will pay the current Spot price. *
*If you specify a maximum price, your instances will be interrupted more * frequently than if you do not specify this parameter.
*If you specify a maximum price, it must be more than USD $0.001. Specifying a value
* below USD $0.001 will result in an InvalidParameterValue error
* message.
The IDs of the subnets in which to launch the instances. Separate multiple subnet IDs using commas (for example, subnet-1234abcdeexample1, subnet-0987cdef6example2). A request of type instant can have only one subnet ID.
The Availability Zone in which to launch the instances. For example,
* us-east-2a.
Either AvailabilityZone or AvailabilityZoneId must be
* specified in the request, but not both.
The number of units provided by the specified instance type. These are the same units * that you chose to set the target capacity in terms of instances, or a performance * characteristic such as vCPUs, memory, or I/O.
*If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the * number of instances to the next whole number. If this value is not specified, the default * is 1.
*When specifying weights, the price used in the lowest-price and
* price-capacity-optimized allocation strategies is per
* unit hour (where the instance price is divided by the specified
* weight). However, if all the specified weights are above the requested
* TargetCapacity, resulting in only 1 instance being launched, the price
* used is per instance hour.
The priority for the launch template override. The highest priority is launched * first.
*If the On-Demand AllocationStrategy is set to prioritized,
* EC2 Fleet uses priority to determine which launch template override to use first in fulfilling
* On-Demand capacity.
If the Spot AllocationStrategy is set to
* capacity-optimized-prioritized, EC2 Fleet uses priority on a best-effort basis
* to determine which launch template override to use in fulfilling Spot capacity, but
* optimizes for capacity first.
Valid values are whole numbers starting at 0. The lower the number, the
* higher the priority. If no number is set, the launch template override has the lowest
* priority. You can set the same priority for different launch template overrides.
The location where the instance launched, if applicable.
* @public */ Placement?: Placement | undefined; /** *The block device mappings, which define the EBS volumes and instance store volumes to * attach to the instance at launch.
*Supported only for fleets of type instant.
For more information, see Block device mappings * for volumes on Amazon EC2 instances in the Amazon EC2 User * Guide.
* @public */ BlockDeviceMappings?: FleetBlockDeviceMappingRequest[] | undefined; /** *The attributes for the instance types. When you specify instance attributes, Amazon EC2 will * identify instance types with those attributes.
*If you specify InstanceRequirements, you can't specify
* InstanceType.
The ID of the AMI in the format ami-17characters00000.
Alternatively, you can specify a Systems Manager parameter, using one of the following * formats. The Systems Manager parameter will resolve to an AMI ID on launch.
*To reference a public parameter:
*
* resolve:ssm:public-parameter
*
*
To reference a parameter stored in the same account:
*
* resolve:ssm:parameter-name
*
*
* resolve:ssm:parameter-name:version-number
*
*
* resolve:ssm:parameter-name:label
*
*
To reference a parameter shared from another Amazon Web Services account:
*
* resolve:ssm:parameter-ARN
*
*
* resolve:ssm:parameter-ARN:version-number
*
*
* resolve:ssm:parameter-ARN:label
*
*
For more information, see Use a Systems Manager parameter instead of an AMI ID in the * Amazon EC2 User Guide.
*This parameter is only available for fleets of type instant. For fleets
* of type maintain and request, you must specify the AMI ID in
* the launch template.
The ID of the Availability Zone in which to launch the instances. For example,
* use2-az1.
Either AvailabilityZone or AvailabilityZoneId must be
* specified in the request, but not both.
Describes a launch template and overrides.
* @public */ export interface FleetLaunchTemplateConfigRequest { /** *The launch template to use. You must specify either the launch template ID or launch * template name in the request.
* @public */ LaunchTemplateSpecification?: FleetLaunchTemplateSpecificationRequest | undefined; /** *Any parameters that you specify override the same parameters in the launch * template.
*For fleets of type request and maintain, a maximum of 300
* items is allowed across all launch templates.
Describes the strategy for using unused Capacity Reservations for fulfilling On-Demand * capacity.
*This strategy can only be used if the EC2 Fleet is of type instant.
For more information about Capacity Reservations, see On-Demand Capacity * Reservations in the Amazon EC2 User Guide. For examples of using * Capacity Reservations in an EC2 Fleet, see EC2 Fleet example * configurations in the Amazon EC2 User Guide.
* @public */ export interface CapacityReservationOptionsRequest { /** *Indicates whether to use unused Capacity Reservations for fulfilling On-Demand capacity.
*If you specify use-capacity-reservations-first, the fleet uses unused
* Capacity Reservations to fulfill On-Demand capacity up to the target On-Demand capacity. If
* multiple instance pools have unused Capacity Reservations, the On-Demand allocation
* strategy (lowest-price or prioritized) is applied. If the number
* of unused Capacity Reservations is less than the On-Demand target capacity, the remaining
* On-Demand target capacity is launched according to the On-Demand allocation strategy
* (lowest-price or prioritized).
If you do not specify a value, the fleet fulfils the On-Demand capacity according to the * chosen On-Demand allocation strategy.
* @public */ UsageStrategy?: FleetCapacityReservationUsageStrategy | undefined; } /** *Describes the configuration of On-Demand Instances in an EC2 Fleet.
* @public */ export interface OnDemandOptionsRequest { /** *The strategy that determines the order of the launch template overrides to use in * fulfilling On-Demand capacity.
*
* lowest-price - EC2 Fleet uses price to determine the order, launching the lowest
* price first.
* prioritized - EC2 Fleet uses the priority that you assigned to each launch
* template override, launching the highest priority first.
Default: lowest-price
*
The strategy for using unused Capacity Reservations for fulfilling On-Demand * capacity.
*Supported only for fleets of type instant.
Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the * fleet.
*Supported only for fleets of type instant.
Indicates that the fleet launches all On-Demand Instances into a single Availability Zone.
*Supported only for fleets of type instant.
The minimum target capacity for On-Demand Instances in the fleet. If this minimum capacity isn't * reached, no instances are launched.
*Constraints: Maximum value of 1000. Supported only for fleets of type
* instant.
At least one of the following must be specified: SingleAvailabilityZone |
* SingleInstanceType
*
The maximum amount per hour for On-Demand Instances that you're willing to pay.
*If your fleet includes T instances that are configured as unlimited,
* and if their average CPU usage exceeds the baseline utilization, you will incur a charge
* for surplus credits. The MaxTotalPrice does not account for surplus
* credits, and, if you use surplus credits, your final cost might be higher than what you
* specified for MaxTotalPrice. For more information, see Surplus credits can incur charges in the Amazon EC2 User Guide.
Defines EC2 Fleet preferences for utilizing reserved capacity when DefaultTargetCapacityType is set to reserved-capacity.
This configuration can only be used if the EC2 Fleet is of type
* instant.
When you specify ReservedCapacityOptions, you must also set
* DefaultTargetCapacityType to reserved-capacity in the
* TargetCapacitySpecification.
For more information about Interruptible Capacity Reservations, see Launch * instances into an Interruptible Capacity Reservation in the Amazon EC2 User Guide.
* @public */ export interface ReservedCapacityOptionsRequest { /** *The types of Capacity Reservations to use for fulfilling the EC2 Fleet request.
* @public */ ReservationTypes?: FleetReservationType[] | undefined; } /** *The Spot Instance replacement strategy to use when Amazon EC2 emits a rebalance * notification signal that your Spot Instance is at an elevated risk of being interrupted. * For more information, see Capacity rebalancing in the Amazon EC2 User Guide.
* @public */ export interface FleetSpotCapacityRebalanceRequest { /** *The replacement strategy to use. Only available for fleets of type
* maintain.
* launch - EC2 Fleet launches a replacement Spot Instance when a rebalance
* notification is emitted for an existing Spot Instance in the fleet. EC2 Fleet does not
* terminate the instances that receive a rebalance notification. You can terminate the old
* instances, or you can leave them running. You are charged for all instances while they are
* running.
* launch-before-terminate - EC2 Fleet launches a replacement Spot Instance
* when a rebalance notification is emitted for an existing Spot Instance in the fleet, and
* then, after a delay that you specify (in TerminationDelay), terminates the
* instances that received a rebalance notification.
The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot * Instance after launching a new replacement Spot Instance.
*Required when ReplacementStrategy is set to launch-before-terminate.
Not valid when ReplacementStrategy is set to launch.
Valid values: Minimum value of 120 seconds. Maximum value of 7200 seconds.
The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.
* @public */ export interface FleetSpotMaintenanceStrategiesRequest { /** *The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an * elevated risk of being interrupted.
* @public */ CapacityRebalance?: FleetSpotCapacityRebalanceRequest | undefined; } /** *Describes the configuration of Spot Instances in an EC2 Fleet request.
* @public */ export interface SpotOptionsRequest { /** *The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance * pools specified by the EC2 Fleet launch configuration. For more information, see Allocation strategies for Spot Instances in the * Amazon EC2 User Guide.
*EC2 Fleet identifies the pools with * the highest capacity availability for the number of instances that are launching. This means * that we will request Spot Instances from the pools that we believe have the lowest chance of interruption * in the near term. EC2 Fleet then requests Spot Instances from the lowest priced of these pools.
*EC2 Fleet identifies the pools with
* the highest capacity availability for the number of instances that are launching. This means
* that we will request Spot Instances from the pools that we believe have the lowest chance of interruption
* in the near term. To give certain
* instance types a higher chance of launching first, use
* capacity-optimized-prioritized. Set a priority for each instance type by
* using the Priority parameter for LaunchTemplateOverrides. You can
* assign the same priority to different LaunchTemplateOverrides. EC2 implements
* the priorities on a best-effort basis, but optimizes for capacity first.
* capacity-optimized-prioritized is supported only if your EC2 Fleet uses a
* launch template. Note that if the On-Demand AllocationStrategy is set to
* prioritized, the same priority is applied when fulfilling On-Demand
* capacity.
EC2 Fleet requests instances from all of the Spot Instance pools that you * specify.
*We don't recommend the lowest-price allocation strategy because
* it has the highest risk of interruption for your Spot Instances.
EC2 Fleet requests instances from the lowest priced Spot Instance pool that * has available capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances * come from the next lowest priced pool that has available capacity. If a pool runs out of * capacity before fulfilling your desired capacity, EC2 Fleet will continue to fulfill your * request by drawing from the next lowest priced pool. To ensure that your desired capacity is * met, you might receive Spot Instances from several pools. Because this strategy only considers instance * price and not capacity availability, it might lead to high interruption rates.
*Default: lowest-price
*
The strategies for managing your Spot Instances that are at an elevated risk of being * interrupted.
* @public */ MaintenanceStrategies?: FleetSpotMaintenanceStrategiesRequest | undefined; /** *The behavior when a Spot Instance is interrupted.
*Default: terminate
*
The number of Spot pools across which to allocate your target Spot capacity. Supported
* only when Spot AllocationStrategy is set to lowest-price. EC2 Fleet
* selects the cheapest Spot pools and evenly allocates your target Spot capacity across the
* number of Spot pools that you specify.
Note that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a * best effort basis. If a pool runs out of Spot capacity before fulfilling your target * capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest * pool. To ensure that your target capacity is met, you might receive Spot Instances from more than * the number of pools that you specified. Similarly, if most of the pools have no Spot * capacity, you might receive your full target capacity from fewer than the number of pools * that you specified.
* @public */ InstancePoolsToUseCount?: number | undefined; /** *Indicates that the fleet uses a single instance type to launch all Spot Instances in the * fleet.
*Supported only for fleets of type instant.
Indicates that the fleet launches all Spot Instances into a single Availability Zone.
*Supported only for fleets of type instant.
The minimum target capacity for Spot Instances in the fleet. If this minimum capacity isn't * reached, no instances are launched.
*Constraints: Maximum value of 1000. Supported only for fleets of type
* instant.
At least one of the following must be specified: SingleAvailabilityZone |
* SingleInstanceType
*
The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend * using this parameter because it can lead to increased interruptions. If you do not specify * this parameter, you will pay the current Spot price.
*If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.
*If your fleet includes T instances that are configured as unlimited, and
* if their average CPU usage exceeds the baseline utilization, you will incur a charge for
* surplus credits. The MaxTotalPrice does not account for surplus credits,
* and, if you use surplus credits, your final cost might be higher than what you specified
* for MaxTotalPrice. For more information, see Surplus credits can incur charges in the
* Amazon EC2 User Guide.
The number of units to request. You can choose to set the target capacity as the number of
* instances. Or you can set the target capacity to a performance characteristic that is important to your application workload,
* such as vCPUs, memory, or I/O. If the request type is maintain, you can
* specify a target capacity of 0 and add capacity later.
You can use the On-Demand Instance MaxTotalPrice parameter, the Spot Instance
* MaxTotalPrice parameter, or both parameters to ensure that your fleet cost
* does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances
* in your request, EC2 Fleet will launch instances until it reaches the maximum amount that you're
* willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops
* launching instances even if it hasn't met the target capacity. The
* MaxTotalPrice parameters are located in OnDemandOptionsRequest
* and SpotOptionsRequest.
The number of units to request, filled using the default target capacity type.
* @public */ TotalTargetCapacity: number | undefined; /** *The number of On-Demand units to request.
* @public */ OnDemandTargetCapacity?: number | undefined; /** *The number of Spot units to request.
* @public */ SpotTargetCapacity?: number | undefined; /** *The default target capacity type.
* @public */ DefaultTargetCapacityType?: DefaultTargetCapacityType | undefined; /** *The unit for the target capacity. You can specify this parameter only when using * attributed-based instance type selection.
*Default: units (the number of instances)
Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Unique, case-sensitive identifier that you provide to ensure the idempotency of the * request. If you do not specify a client token, a randomly generated token is used for * the request to ensure idempotency.
*For more information, see Ensuring * idempotency.
* @public */ ClientToken?: string | undefined; /** *Describes the configuration of Spot Instances in an EC2 Fleet.
* @public */ SpotOptions?: SpotOptionsRequest | undefined; /** *Describes the configuration of On-Demand Instances in an EC2 Fleet.
* @public */ OnDemandOptions?: OnDemandOptionsRequest | undefined; /** *Defines EC2 Fleet preferences for utilizing reserved capacity when DefaultTargetCapacityType is set to reserved-capacity.
Supported only for fleets of type instant.
Indicates whether running instances should be terminated if the total target capacity of * the EC2 Fleet is decreased below the current size of the EC2 Fleet.
*Supported only for fleets of type maintain.
The configuration for the EC2 Fleet.
* @public */ LaunchTemplateConfigs: FleetLaunchTemplateConfigRequest[] | undefined; /** *The number of units to request.
* @public */ TargetCapacitySpecification: TargetCapacitySpecificationRequest | undefined; /** *Indicates whether running instances should be terminated when the EC2 Fleet expires.
* @public */ TerminateInstancesWithExpiration?: boolean | undefined; /** *The fleet type. The default value is maintain.
* maintain - The EC2 Fleet places an asynchronous request for your desired
* capacity, and continues to maintain your desired Spot capacity by replenishing
* interrupted Spot Instances.
* request - The EC2 Fleet places an asynchronous one-time request for your
* desired capacity, but does submit Spot requests in alternative capacity pools if Spot
* capacity is unavailable, and does not maintain Spot capacity if Spot Instances are
* interrupted.
* instant - The EC2 Fleet places a synchronous one-time request for your
* desired capacity, and returns errors for any instances that could not be
* launched.
For more information, see EC2 Fleet * request types in the Amazon EC2 User Guide.
* @public */ Type?: FleetType | undefined; /** *The start date and time of the request, in UTC format (for example, * YYYY-MM-DDTHH:MM:SSZ). * The default is to start fulfilling the request immediately.
* @public */ ValidFrom?: Date | undefined; /** *The end date and time of the request, in UTC format (for example, * YYYY-MM-DDTHH:MM:SSZ). * At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.
* @public */ ValidUntil?: Date | undefined; /** *Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for
* fleets of type maintain. For more information, see EC2 Fleet
* health checks in the Amazon EC2 User Guide.
The key-value pair for tagging the EC2 Fleet request on creation. For more information, see * Tag your resources.
*If the fleet type is instant, specify a resource type of fleet
* to tag the fleet or instance to tag the instances at launch.
If the fleet type is maintain or request, specify a resource
* type of fleet to tag the fleet. You cannot specify a resource type of
* instance. To tag instances at launch, specify the tags in a launch template.
Reserved.
* @public */ Context?: string | undefined; } /** *The Amazon EC2 launch template that can be used by * a Spot Fleet to configure Amazon EC2 instances. You must specify either the ID or name of the launch template in the request, but not both.
*For information about launch templates, * see Launch an instance from a launch template in the * Amazon EC2 User Guide.
* @public */ export interface FleetLaunchTemplateSpecification { /** *The ID of the launch template.
*You must specify the LaunchTemplateId or the LaunchTemplateName, but not both.
The name of the launch template.
*You must specify the LaunchTemplateName or the LaunchTemplateId, but not both.
The launch template version number, $Latest, or $Default.
* You must specify a value, otherwise the request fails.
If the value is $Latest, Amazon EC2 uses the latest version of the launch
* template.
If the value is $Default, Amazon EC2 uses the default version of the launch
* template.
Describes a block device for an EBS volume.
* @public */ export interface EbsBlockDeviceResponse { /** *Indicates whether the volume is encrypted.
* @public */ Encrypted?: boolean | undefined; /** *Indicates whether the volume is deleted on instance termination.
* @public */ DeleteOnTermination?: boolean | undefined; /** *The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes,
* this represents the number of IOPS that are provisioned for the volume. For gp2
* volumes, this represents the baseline performance of the volume and the rate at which
* the volume accumulates I/O credits for bursting.
The throughput that the volume supports, in MiB/s.
* @public */ Throughput?: number | undefined; /** *Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key * to use for EBS encryption.
* @public */ KmsKeyId?: string | undefined; /** *The ID of the snapshot.
* @public */ SnapshotId?: string | undefined; /** *The size of the volume, in GiBs.
* @public */ VolumeSize?: number | undefined; /** *The volume type. For more information, see Amazon EBS volume types in the * Amazon EBS User Guide.
* @public */ VolumeType?: VolumeType | undefined; } /** *Describes a block device mapping, which defines the EBS volumes and instance store * volumes to attach to an instance at launch.
* @public */ export interface BlockDeviceMappingResponse { /** *The device name (for example, /dev/sdh or xvdh).
The virtual device name.
* @public */ VirtualName?: string | undefined; /** *Parameters used to automatically set up EBS volumes when the instance is * launched.
* @public */ Ebs?: EbsBlockDeviceResponse | undefined; /** *Suppresses the specified device included in the block device mapping.
* @public */ NoDevice?: string | undefined; } /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see * Amazon * EBS–optimized instances in the Amazon EC2 User Guide.
* @public */ export interface BaselineEbsBandwidthMbps { /** *The minimum baseline bandwidth, in Mbps. If this parameter is not specified, there is no * minimum limit.
* @public */ Min?: number | undefined; /** *The maximum baseline bandwidth, in Mbps. If this parameter is not specified, there is no * maximum limit.
* @public */ Max?: number | undefined; } /** *Specify an instance family to use as the baseline reference for CPU performance. All * instance types that match your specified attributes will be compared against the CPU * performance of the referenced instance family, regardless of CPU manufacturer or * architecture.
*Currently, only one instance family can be specified in the list.
*The instance family to use as a baseline reference.
*Ensure that you specify the correct value for the instance family. The instance
* family is everything before the period (.) in the instance type name. For
* example, in the instance type c6i.large, the instance family is
* c6i, not c6. For more information, see Amazon EC2
* instance type naming conventions in Amazon EC2 Instance
* Types.
The following instance families are not supported for performance * protection:
*
* c1
*
* g3 | g3s
*
* hpc7g
*
* m1 | m2
*
* mac1 | mac2 | mac2-m1ultra |
* mac2-m2 | mac2-m2pro
*
* p3dn | p4d | p5
*
* t1
*
* u-12tb1 | u-18tb1 | u-24tb1 |
* u-3tb1 | u-6tb1 | u-9tb1 |
* u7i-12tb | u7in-16tb | u7in-24tb |
* u7in-32tb
*
If you enable performance protection by specifying a supported instance family, the * returned instance types will exclude the above unsupported instance families.
*If you specify an unsupported instance family as a value for baseline performance, the * API returns an empty response for GetInstanceTypesFromInstanceRequirements and an exception for CreateFleet, RequestSpotFleet, ModifyFleet, and ModifySpotFleetRequest.
* @public */ InstanceFamily?: string | undefined; } /** *The CPU performance to consider, using an instance family as the baseline reference.
* @public */ export interface CpuPerformanceFactor { /** *Specify an instance family to use as the baseline reference for CPU performance. All * instance types that match your specified attributes will be compared against the CPU * performance of the referenced instance family, regardless of CPU manufacturer or * architecture differences.
*Currently, only one instance family can be specified in the list.
*The baseline performance to consider, using an instance family as a baseline reference. * The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this * baseline to guide instance type selection, but there is no guarantee that the selected * instance types will always exceed the baseline for every application.
*Currently, this parameter only supports CPU performance as a baseline performance
* factor. For example, specifying c6i would use the CPU performance of the
* c6i family as the baseline reference.
The CPU performance to consider, using an instance family as the baseline reference.
* @public */ Cpu?: CpuPerformanceFactor | undefined; } /** *The minimum and maximum amount of memory per vCPU, in GiB.
* * @public */ export interface MemoryGiBPerVCpu { /** *The minimum amount of memory per vCPU, in GiB. If this parameter is not specified, there is * no minimum limit.
* @public */ Min?: number | undefined; /** *The maximum amount of memory per vCPU, in GiB. If this parameter is not specified, there is * no maximum limit.
* @public */ Max?: number | undefined; } /** *The minimum and maximum amount of memory, in MiB.
* @public */ export interface MemoryMiB { /** *The minimum amount of memory, in MiB. If this parameter is not specified, there is no minimum * limit.
* @public */ Min?: number | undefined; /** *The maximum amount of memory, in MiB. If this parameter is not specified, there is no * maximum limit.
* @public */ Max?: number | undefined; } /** *The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).
*Setting the minimum bandwidth does not guarantee that your instance will achieve the * minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum * bandwidth, but the actual bandwidth of your instance might go below the specified minimum * at times. For more information, see Available instance bandwidth in the * Amazon EC2 User Guide.
*The minimum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no minimum * limit.
* @public */ Min?: number | undefined; /** *The maximum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no * maximum limit.
* @public */ Max?: number | undefined; } /** *The minimum and maximum number of network interfaces.
* @public */ export interface NetworkInterfaceCount { /** *The minimum number of network interfaces. If this parameter is not specified, there is no * minimum limit.
* @public */ Min?: number | undefined; /** *The maximum number of network interfaces. If this parameter is not specified, there is no * maximum limit.
* @public */ Max?: number | undefined; } /** *The minimum and maximum amount of total local storage, in GB.
* @public */ export interface TotalLocalStorageGB { /** *The minimum amount of total local storage, in GB. If this parameter is not specified, there is * no minimum limit.
* @public */ Min?: number | undefined; /** *The maximum amount of total local storage, in GB. If this parameter is not specified, there is * no maximum limit.
* @public */ Max?: number | undefined; } /** *The minimum and maximum number of vCPUs.
* @public */ export interface VCpuCountRange { /** *The minimum number of vCPUs. If the value is 0, there is no minimum
* limit.
The maximum number of vCPUs. If this parameter is not specified, there is no maximum * limit.
* @public */ Max?: number | undefined; } /** *The attributes for the instance types. When you specify instance attributes, Amazon EC2 will * identify instance types with these attributes.
*You must specify VCpuCount and MemoryMiB. All other attributes
* are optional. Any unspecified optional attribute is set to its default.
When you specify multiple attributes, you get instance types that satisfy all of the * specified attributes. If you specify multiple values for an attribute, you get instance * types that satisfy any of the specified values.
*To limit the list of instance types from which Amazon EC2 can identify matching instance types, * you can use one of the following parameters, but not both in the same request:
*
* AllowedInstanceTypes - The instance types to include in the list. All
* other instance types are ignored, even if they match your specified attributes.
* ExcludedInstanceTypes - The instance types to exclude from the list,
* even if they match your specified attributes.
If you specify InstanceRequirements, you can't specify
* InstanceType.
Attribute-based instance type selection is only supported when using Auto Scaling
* groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in
* the launch instance
* wizard or with the RunInstances API, you
* can't specify InstanceRequirements.
For more information, see Create mixed instances group using attribute-based instance type selection in * the Amazon EC2 Auto Scaling User Guide, and also Specify attributes for instance type selection for EC2 Fleet or Spot Fleet and Spot * placement score in the Amazon EC2 User Guide.
* @public */ export interface InstanceRequirements { /** *The minimum and maximum number of vCPUs.
* @public */ VCpuCount?: VCpuCountRange | undefined; /** *The minimum and maximum amount of memory, in MiB.
* @public */ MemoryMiB?: MemoryMiB | undefined; /** *The CPU manufacturers to include.
*For instance types with Intel CPUs, specify intel.
For instance types with AMD CPUs, specify amd.
For instance types with Amazon Web Services CPUs, specify amazon-web-services.
For instance types with Apple CPUs, specify apple.
Don't confuse the CPU manufacturer with the CPU architecture. Instances will * be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you * specify in your launch template.
*Default: Any manufacturer
* @public */ CpuManufacturers?: CpuManufacturer[] | undefined; /** *The minimum and maximum amount of memory per vCPU, in GiB.
*Default: No minimum or maximum limits
* @public */ MemoryGiBPerVCpu?: MemoryGiBPerVCpu | undefined; /** *The instance types to exclude.
*You can use strings with one or more wild cards, represented by
* an asterisk (*), to exclude an instance type, size, or generation. The
* following are examples: m5.8xlarge, c5*.*, m5a.*,
* r*, *3*.
For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance
* family, which includes all C5a and C5n instance types. If you specify
* m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n
* instance types.
If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.
Default: No excluded instance types
* @public */ ExcludedInstanceTypes?: string[] | undefined; /** *Indicates whether current or previous generation instance types are included. The * current generation instance types are recommended for use. Current generation instance types are * typically the latest two to three generations in each instance family. For more * information, see Instance types in the * Amazon EC2 User Guide.
*For current generation instance types, specify current.
For previous generation instance types, specify previous.
Default: Current and previous generation instance types
* @public */ InstanceGenerations?: InstanceGeneration[] | undefined; /** *[Price protection] The price protection threshold for Spot Instances, as a percentage higher than * an identified Spot price. The identified Spot price is the Spot price of the lowest priced * current generation C, M, or R instance type with your specified attributes. If no current * generation C, M, or R instance type matches your attributes, then the identified Spot price * is from the lowest priced current generation instance types, and failing that, from the * lowest priced previous generation instance types that match your attributes. When Amazon EC2 * selects instance types with your attributes, it will exclude instance types whose Spot * price exceeds your specified threshold.
*The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
*If you set TargetCapacityUnitType to vcpu or
* memory-mib, the price protection threshold is applied based on the per-vCPU
* or per-memory price instead of the per-instance price.
This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.
*Only one of SpotMaxPricePercentageOverLowestPrice or
* MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you
* don't specify either, Amazon EC2 will automatically apply optimal price protection to
* consistently select from a wide range of instance types. To indicate no price protection
* threshold for Spot Instances, meaning you want to consider all instance types that match your
* attributes, include one of these parameters and specify a high value, such as
* 999999.
Default: 100
*
[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher * than an identified On-Demand price. The identified On-Demand price is the price of the * lowest priced current generation C, M, or R instance type with your specified attributes. * When Amazon EC2 selects instance types with your attributes, it will exclude instance types * whose price exceeds your specified threshold.
*The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
*To turn off price protection, specify a high value, such as 999999.
This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.
*If you set TargetCapacityUnitType to vcpu or
* memory-mib, the price protection threshold is applied based on the
* per-vCPU or per-memory price instead of the per-instance price.
Default: 20
*
Indicates whether bare metal instance types must be included, excluded, or required.
*To include bare metal instance types, specify included.
To require only bare metal instance types, specify required.
To exclude bare metal instance types, specify excluded.
Default: excluded
*
Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see * Burstable performance instances.
*To include burstable performance instance types, specify included.
To require only burstable performance instance types, specify required.
To exclude burstable performance instance types, specify excluded.
Default: excluded
*
Indicates whether instance types must support hibernation for On-Demand * Instances.
*This parameter is not supported for GetSpotPlacementScores.
*Default: false
*
The minimum and maximum number of network interfaces.
*Default: No minimum or maximum limits
* @public */ NetworkInterfaceCount?: NetworkInterfaceCount | undefined; /** *Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, * Amazon * EC2 instance store in the Amazon EC2 User Guide.
*To include instance types with instance store volumes, specify
* included.
To require only instance types with instance store volumes, specify
* required.
To exclude instance types with instance store volumes, specify
* excluded.
Default: included
*
The type of local storage that is required.
*For instance types with hard disk drive (HDD) storage, specify hdd.
For instance types with solid state drive (SSD) storage, specify
* ssd.
Default: hdd and ssd
*
The minimum and maximum amount of total local storage, in GB.
*Default: No minimum or maximum limits
* @public */ TotalLocalStorageGB?: TotalLocalStorageGB | undefined; /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see * Amazon * EBS–optimized instances in the Amazon EC2 User Guide.
*Default: No minimum or maximum limits
* @public */ BaselineEbsBandwidthMbps?: BaselineEbsBandwidthMbps | undefined; /** *The accelerator types that must be on the instance type.
*For instance types with FPGA accelerators, specify fpga.
For instance types with GPU accelerators, specify gpu.
For instance types with Inference accelerators, specify inference.
For instance types with Media accelerators, specify media.
Default: Any accelerator type
* @public */ AcceleratorTypes?: AcceleratorType[] | undefined; /** *The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) on * an instance.
*To exclude accelerator-enabled instance types, set Max to 0.
Default: No minimum or maximum limits
* @public */ AcceleratorCount?: AcceleratorCount | undefined; /** *Indicates whether instance types must have accelerators by specific manufacturers.
*For instance types with Amazon Web Services devices, specify amazon-web-services.
For instance types with AMD devices, specify amd.
For instance types with Habana devices, specify habana.
For instance types with NVIDIA devices, specify nvidia.
For instance types with Xilinx devices, specify xilinx.
Default: Any manufacturer
* @public */ AcceleratorManufacturers?: AcceleratorManufacturer[] | undefined; /** *The accelerators that must be on the instance type.
*For instance types with NVIDIA A10G GPUs, specify a10g.
For instance types with NVIDIA A100 GPUs, specify a100.
For instance types with NVIDIA H100 GPUs, specify h100.
For instance types with Amazon Web Services Inferentia chips, specify inferentia.
For instance types with Amazon Web Services Inferentia2 chips, specify inferentia2.
For instance types with Habana Gaudi HL-205 GPUs, specify gaudi-hl-205.
For instance types with NVIDIA GRID K520 GPUs, specify k520.
For instance types with NVIDIA K80 GPUs, specify k80.
For instance types with NVIDIA L4 GPUs, specify l4.
For instance types with NVIDIA L40S GPUs, specify l40s.
For instance types with NVIDIA M60 GPUs, specify m60.
For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.
For instance types with Amazon Web Services Trainium chips, specify trainium.
For instance types with Amazon Web Services Trainium2 chips, specify trainium2.
For instance types with NVIDIA T4 GPUs, specify t4.
For instance types with NVIDIA T4G GPUs, specify t4g.
For instance types with Xilinx U30 cards, specify u30.
For instance types with Xilinx VU9P FPGAs, specify vu9p.
For instance types with NVIDIA V100 GPUs, specify v100.
Default: Any accelerator
* @public */ AcceleratorNames?: AcceleratorName[] | undefined; /** *The minimum and maximum amount of total accelerator memory, in MiB.
*Default: No minimum or maximum limits
* @public */ AcceleratorTotalMemoryMiB?: AcceleratorTotalMemoryMiB | undefined; /** *The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).
*Default: No minimum or maximum limits
* @public */ NetworkBandwidthGbps?: NetworkBandwidthGbps | undefined; /** *The instance types to apply your specified attributes against. All other instance types * are ignored, even if they match your specified attributes.
*You can use strings with one or more wild cards, represented by
* an asterisk (*), to allow an instance type, size, or generation. The
* following are examples: m5.8xlarge, c5*.*, m5a.*,
* r*, *3*.
For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance
* family, which includes all C5a and C5n instance types. If you specify
* m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n
* instance types.
If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.
Default: All instance types
* @public */ AllowedInstanceTypes?: string[] | undefined; /** *[Price protection] The price protection threshold for Spot Instances, as a percentage of an * identified On-Demand price. The identified On-Demand price is the price of the lowest * priced current generation C, M, or R instance type with your specified attributes. If no * current generation C, M, or R instance type matches your attributes, then the identified * price is from the lowest priced current generation instance types, and failing that, from * the lowest priced previous generation instance types that match your attributes. When Amazon EC2 * selects instance types with your attributes, it will exclude instance types whose price * exceeds your specified threshold.
*The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
*If you set TargetCapacityUnitType to vcpu or
* memory-mib, the price protection threshold is based on the per vCPU or per
* memory price instead of the per instance price.
Only one of SpotMaxPricePercentageOverLowestPrice or
* MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you
* don't specify either, Amazon EC2 will automatically apply optimal price protection to
* consistently select from a wide range of instance types. To indicate no price protection
* threshold for Spot Instances, meaning you want to consider all instance types that match your
* attributes, include one of these parameters and specify a high value, such as
* 999999.
The baseline performance to consider, using an instance family as a baseline reference. * The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this * baseline to guide instance type selection, but there is no guarantee that the selected * instance types will always exceed the baseline for every application. Currently, this * parameter only supports CPU performance as a baseline performance factor. For more * information, see Performance protection in the Amazon EC2 User Guide.
* @public */ BaselinePerformanceFactors?: BaselinePerformanceFactors | undefined; /** *Specifies whether instance types must support encrypting in-transit traffic between * instances. For more information, including the supported instance types, see Encryption in * transit in the Amazon EC2 User Guide.
*Default: false
*
Describes the placement of an instance.
* @public */ export interface PlacementResponse { /** *The name of the placement group that the instance is in.
* @public */ GroupName?: string | undefined; } /** *Describes overrides for a launch template.
* @public */ export interface FleetLaunchTemplateOverrides { /** *The instance type.
*
* mac1.metal is not supported as a launch template override.
If you specify InstanceType, you can't specify
* InstanceRequirements.
The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not * recommend using this parameter because it can lead to increased interruptions. If you * do not specify this parameter, you will pay the current Spot price. *
*If you specify a maximum price, your instances will be interrupted more frequently * than if you do not specify this parameter.
*If you specify a maximum price, it must be more than USD $0.001. Specifying a value
* below USD $0.001 will result in an InvalidParameterValue error
* message.
The ID of the subnet in which to launch the instances.
* @public */ SubnetId?: string | undefined; /** *The Availability Zone in which to launch the instances. For example,
* us-east-2a.
Either AvailabilityZone or AvailabilityZoneId must be specified in the request, but not both.
The number of units provided by the specified instance type. These are the same units * that you chose to set the target capacity in terms of instances, or a performance * characteristic such as vCPUs, memory, or I/O.
*If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the * number of instances to the next whole number. If this value is not specified, the default * is 1.
*When specifying weights, the price used in the lowest-price and
* price-capacity-optimized allocation strategies is per
* unit hour (where the instance price is divided by the specified
* weight). However, if all the specified weights are above the requested
* TargetCapacity, resulting in only 1 instance being launched, the price
* used is per instance hour.
The priority for the launch template override. The highest priority is launched * first.
*If the On-Demand AllocationStrategy is set to prioritized,
* EC2 Fleet uses priority to determine which launch template override to use first in fulfilling
* On-Demand capacity.
If the Spot AllocationStrategy is set to
* capacity-optimized-prioritized, EC2 Fleet uses priority on a best-effort basis
* to determine which launch template override to use in fulfilling Spot capacity, but
* optimizes for capacity first.
Valid values are whole numbers starting at 0. The lower the number, the
* higher the priority. If no number is set, the override has the lowest priority. You can set
* the same priority for different launch template overrides.
The location where the instance launched, if applicable.
* @public */ Placement?: PlacementResponse | undefined; /** *The attributes for the instance types. When you specify instance attributes, Amazon EC2 will * identify instance types with those attributes.
*If you specify InstanceRequirements, you can't specify
* InstanceType.
The ID of the AMI in the format ami-17characters00000.
Alternatively, you can specify a Systems Manager parameter, using one of the following * formats. The Systems Manager parameter will resolve to an AMI ID on launch.
*To reference a public parameter:
*
* resolve:ssm:public-parameter
*
*
To reference a parameter stored in the same account:
*
* resolve:ssm:parameter-name
*
*
* resolve:ssm:parameter-name:version-number
*
*
* resolve:ssm:parameter-name:label
*
*
To reference a parameter shared from another Amazon Web Services account:
*
* resolve:ssm:parameter-ARN
*
*
* resolve:ssm:parameter-ARN:version-number
*
*
* resolve:ssm:parameter-ARN:label
*
*
For more information, see Use a Systems Manager parameter instead of an AMI ID in the * Amazon EC2 User Guide.
*This parameter is only available for fleets of type instant. For fleets
* of type maintain and request, you must specify the AMI ID in
* the launch template.
The block device mappings, which define the EBS volumes and instance store volumes to * attach to the instance at launch.
*Supported only for fleets of type instant.
For more information, see Block device mappings * for volumes on Amazon EC2 instances in the Amazon EC2 User * Guide.
* @public */ BlockDeviceMappings?: BlockDeviceMappingResponse[] | undefined; /** *The ID of the Availability Zone in which to launch the instances. For example,
* use2-az1.
Either AvailabilityZone or AvailabilityZoneId must be
* specified in the request, but not both.
Describes a launch template and overrides.
* @public */ export interface LaunchTemplateAndOverridesResponse { /** *The launch template.
* @public */ LaunchTemplateSpecification?: FleetLaunchTemplateSpecification | undefined; /** *Any parameters that you specify override the same parameters in the launch * template.
* @public */ Overrides?: FleetLaunchTemplateOverrides | undefined; } /** *Describes the instances that could not be launched by the fleet.
* @public */ export interface CreateFleetError { /** *The launch templates and overrides that were used for launching the instances. The * values that you specify in the Overrides replace the values in the launch template.
* @public */ LaunchTemplateAndOverrides?: LaunchTemplateAndOverridesResponse | undefined; /** *Indicates if the instance that could not be launched was a Spot, On-Demand, Capacity Block, * or Interruptible Capacity Reservation instance.
* @public */ Lifecycle?: InstanceLifecycle | undefined; /** *The error code that indicates why the instance could not be launched. For more * information about error codes, see Error codes.
* @public */ ErrorCode?: string | undefined; /** *The error message that describes why the instance could not be launched. For more * information about error messages, see Error codes.
* @public */ ErrorMessage?: string | undefined; } /** *Describes the instances that were launched by the fleet.
* @public */ export interface CreateFleetInstance { /** *The launch templates and overrides that were used for launching the instances. The * values that you specify in the Overrides replace the values in the launch template.
* @public */ LaunchTemplateAndOverrides?: LaunchTemplateAndOverridesResponse | undefined; /** *Indicates if the instance that was launched is a Spot, On-Demand, Capacity Block, * or Interruptible Capacity Reservation instance.
* @public */ Lifecycle?: InstanceLifecycle | undefined; /** *The IDs of the instances.
* @public */ InstanceIds?: string[] | undefined; /** *The instance type.
* @public */ InstanceType?: _InstanceType | undefined; /** *The value is windows for Windows instances in an EC2 Fleet. Otherwise, the value is
* blank.
The ID of the EC2 Fleet.
* @public */ FleetId?: string | undefined; /** *Information about the instances that could not be launched by the fleet. Supported only for
* fleets of type instant.
Information about the instances that were launched by the fleet. Supported only for
* fleets of type instant.
Describes the destination options for a flow log.
* @public */ export interface DestinationOptionsRequest { /** *The format for the flow log. The default is plain-text.
Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3.
* The default is false.
Indicates whether to partition the flow log per hour. This reduces the cost and response
* time for queries. The default is false.
Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Unique, case-sensitive identifier that you provide to ensure the idempotency of the * request. For more information, see How to ensure * idempotency.
* @public */ ClientToken?: string | undefined; /** *The ARN of the IAM role that allows Amazon EC2 to publish flow logs to the log destination.
*This parameter is required if the destination type is cloud-watch-logs,
* or if the destination type is kinesis-data-firehose and the delivery stream
* and the resources to monitor are in different accounts.
The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.
* @public */ DeliverCrossAccountRole?: string | undefined; /** *The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs.
*This parameter is valid only if the destination type is cloud-watch-logs.
The IDs of the resources to monitor. For example, if the resource type is
* VPC, specify the IDs of the VPCs.
Constraints: Maximum of 25 for transit gateway resource types. Maximum of 1000 for the * other resource types.
* @public */ ResourceIds: string[] | undefined; /** *The type of resource to monitor.
* @public */ ResourceType: FlowLogsResourceType | undefined; /** *The type of traffic to monitor (accepted traffic, rejected traffic, or all traffic). * This parameter is not supported for transit gateway resource types. It is required for * the other resource types.
* @public */ TrafficType?: TrafficType | undefined; /** *The type of destination for the flow log data.
*Default: cloud-watch-logs
*
The destination for the flow log data. The meaning of this parameter depends on the destination type.
*If the destination type is cloud-watch-logs, specify the ARN of a CloudWatch Logs log group. For example:
arn:aws:logs:region:account_id:log-group:my_group *
*Alternatively, use the LogGroupName parameter.
If the destination type is s3, specify the ARN of an S3 bucket. For example:
arn:aws:s3:::my_bucket/my_subfolder/
*The subfolder is optional. Note that you can't use AWSLogs as a subfolder name.
If the destination type is kinesis-data-firehose, specify the ARN of a Kinesis Data Firehose delivery stream. For example:
arn:aws:firehose:region:account_id:deliverystream:my_stream *
*The fields to include in the flow log record. List the fields in the order in which * they should appear. If you omit this parameter, the flow log is created using the * default format. If you specify this parameter, you must include at least one * field. For more information about the available fields, see Flow log records * in the Amazon VPC User Guide or Transit Gateway Flow Log * records in the Amazon Web Services Transit Gateway Guide.
*Specify the fields using the $\{field-id\} format, separated by spaces.
The tags to apply to the flow logs.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. * The possible values are 60 seconds (1 minute) or 600 seconds (10 minutes). * This parameter must be 60 seconds for transit gateway resource types.
*When a network interface is attached to a Nitro-based * instance, the aggregation interval is always 60 seconds or less, regardless * of the value that you specify.
*Default: 600
* @public */ MaxAggregationInterval?: number | undefined; /** *The destination options.
* @public */ DestinationOptions?: DestinationOptionsRequest | undefined; } /** * @public */ export interface CreateFlowLogsResult { /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the * request.
* @public */ ClientToken?: string | undefined; /** *The IDs of the flow logs.
* @public */ FlowLogIds?: string[] | undefined; /** *Information about the flow logs that could not be created successfully.
* @public */ Unsuccessful?: UnsuccessfulItem[] | undefined; } /** *Describes a storage location in Amazon S3.
* @public */ export interface StorageLocation { /** *The name of the S3 bucket.
* @public */ Bucket?: string | undefined; /** *The key.
* @public */ Key?: string | undefined; } /** * @public */ export interface CreateFpgaImageRequest { /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The location of the encrypted design checkpoint in Amazon S3. The input must be a tarball.
* @public */ InputStorageLocation: StorageLocation | undefined; /** *The location in Amazon S3 for the output logs.
* @public */ LogsStorageLocation?: StorageLocation | undefined; /** *A description for the AFI.
* @public */ Description?: string | undefined; /** *A name for the AFI.
* @public */ Name?: string | undefined; /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. * For more information, see Ensuring Idempotency.
* @public */ ClientToken?: string | undefined; /** *The tags to apply to the FPGA image during creation.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** * @public */ export interface CreateFpgaImageResult { /** *The FPGA image identifier (AFI ID).
* @public */ FpgaImageId?: string | undefined; /** *The global FPGA image identifier (AGFI ID).
* @public */ FpgaImageGlobalId?: string | undefined; } /** *Describes a block device for an EBS volume.
* @public */ export interface EbsBlockDevice { /** *Indicates whether the EBS volume is deleted on instance termination. For more * information, see Preserving Amazon EBS volumes on instance termination in the * Amazon EC2 User Guide.
* @public */ DeleteOnTermination?: boolean | undefined; /** *The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes,
* this represents the number of IOPS that are provisioned for the volume. For gp2
* volumes, this represents the baseline performance of the volume and the rate at which
* the volume accumulates I/O credits for bursting.
The following are the supported values for each volume type:
*
* gp3: 3,000 - 80,000 IOPS
* io1: 100 - 64,000 IOPS
* io2: 100 - 256,000 IOPS
For io2 volumes, you can achieve up to 256,000 IOPS on
* instances
* built on the Nitro System. On other instances, you can achieve performance up to 32,000 IOPS.
This parameter is required for io1 and io2 volumes. The default for gp3 volumes
* is 3,000 IOPS.
The ID of the snapshot.
* @public */ SnapshotId?: string | undefined; /** *The size of the volume, in GiBs. You must specify either a snapshot ID or a volume * size. If you specify a snapshot, the default is the snapshot size. You can specify a * volume size that is equal to or larger than the snapshot size.
*The following are the supported sizes for each volume type:
*
* gp2: 1 - 16,384 GiB
* gp3: 1 - 65,536 GiB
* io1: 4 - 16,384 GiB
* io2: 4 - 65,536 GiB
* st1 and sc1: 125 - 16,384 GiB
* standard: 1 - 1024 GiB
The volume type. For more information, see Amazon EBS volume types in the * Amazon EBS User Guide.
* @public */ VolumeType?: VolumeType | undefined; /** *Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key * to use for EBS encryption.
*This parameter is only supported on BlockDeviceMapping objects called by
* RunInstances, RequestSpotFleet,
* and RequestSpotInstances.
The throughput that the volume supports, in MiB/s.
*This parameter is valid only for gp3 volumes.
Valid Range: Minimum value of 125. Maximum value of 2,000.
* @public */ Throughput?: number | undefined; /** *The ARN of the Outpost on which the snapshot is stored.
*This parameter is not supported when using CreateImage.
* @public */ OutpostArn?: string | undefined; /** *The Availability Zone where the EBS volume will be created (for example,
* us-east-1a).
Either AvailabilityZone or AvailabilityZoneId can be specified,
* but not both. If neither is specified, Amazon EC2 automatically selects an Availability Zone within
* the Region.
This parameter is not supported when using * CreateFleet, * CreateImage, * DescribeImages, * RequestSpotFleet, * RequestSpotInstances, and * RunInstances.
* @public */ AvailabilityZone?: string | undefined; /** *Indicates whether the encryption state of an EBS volume is changed while being
* restored from a backing snapshot. The effect of setting the encryption state to true depends on
* the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS encryption in the Amazon EBS User Guide.
In no case can you remove encryption from an encrypted volume.
*Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For * more information, see Supported instance types.
*This parameter is not returned by DescribeImageAttribute.
*For CreateImage and RegisterImage, whether you can * include this parameter, and the allowed values differ depending on the type of block * device mapping you are creating.
*If you are creating a block device mapping for a new (empty)
* volume, you can include this parameter, and specify either true
* for an encrypted volume, or false for an unencrypted volume. If you omit
* this parameter, it defaults to false (unencrypted).
If you are creating a block device mapping from an existing * encrypted or unencrypted snapshot, you must omit this parameter. If you * include this parameter, the request will fail, regardless of the value that you * specify.
*If you are creating a block device mapping from an existing
* unencrypted volume, you can include this parameter, but you must specify
* false. If you specify true, the request will fail. In this
* case, we recommend that you omit the parameter.
If you are creating a block device mapping from an existing
* encrypted volume, you can include this parameter, and specify either
* true or false. However, if you specify false,
* the parameter is ignored and the block device mapping is always encrypted. In this
* case, we recommend that you omit the parameter.
Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot * blocks from Amazon S3 to the volume. This is also known as volume * initialization. Specifying a volume initialization rate ensures that the volume is initialized * at a predictable and consistent rate after creation. For more information, see * Initialize * Amazon EBS volumes in the Amazon EC2 User Guide.
*This parameter is supported only for volumes created from snapshots. Omit this parameter * if:
*You want to create the volume using fast snapshot restore. You must specify a snapshot * that is enabled for fast snapshot restore. In this case, the volume is fully initialized at * creation.
*If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, * the volume will be initialized at the specified rate instead of fast snapshot restore.
*You want to create a volume that is initialized at the default rate.
*This parameter is not supported when using CreateImage * and DescribeImages.
*Valid range: 100 - 300 MiB/s
* @public */ VolumeInitializationRate?: number | undefined; /** *The ID of the Availability Zone where the EBS volume will be created (for example,
* use1-az1).
Either AvailabilityZone or AvailabilityZoneId can be specified,
* but not both. If neither is specified, Amazon EC2 automatically selects an Availability Zone within
* the Region.
This parameter is not supported when using * CreateFleet, * CreateImage, * DescribeImages, * RequestSpotFleet, * RequestSpotInstances, and * RunInstances.
* @public */ AvailabilityZoneId?: string | undefined; /** *The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.
* @public */ EbsCardIndex?: number | undefined; } /** *Describes a block device mapping, which defines the EBS volumes and instance store * volumes to attach to an instance at launch.
* @public */ export interface BlockDeviceMapping { /** *Parameters used to automatically set up EBS volumes when the instance is * launched.
* @public */ Ebs?: EbsBlockDevice | undefined; /** *To omit the device from the block device mapping, specify an empty string. When this * property is specified, the device is removed from the block device mapping regardless of * the assigned value.
* @public */ NoDevice?: string | undefined; /** *The device name. For available device names, see Device names for volumes.
* @public */ DeviceName?: string | undefined; /** *The virtual device name (ephemeralN). Instance store volumes are numbered
* starting from 0. An instance type with 2 available instance store volumes can specify
* mappings for ephemeral0 and ephemeral1. The number of
* available instance store volumes depends on the instance type. After you connect to the
* instance, you must mount the volume.
NVMe instance store volumes are automatically enumerated and assigned a device name. * Including them in your block device mapping has no effect.
*Constraints: For M3 instances, you must specify instance store volumes in the block * device mapping for the instance. When you launch an M3 instance, we ignore any instance * store volumes specified in the block device mapping for the AMI.
* @public */ VirtualName?: string | undefined; } /** * @public */ export interface CreateImageRequest { /** *The tags to apply to the AMI and snapshots on creation. You can tag the AMI, the * snapshots, or both.
*To tag the AMI, the value for ResourceType must be
* image.
To tag the snapshots that are created of the root volume and of other Amazon EBS volumes
* that are attached to the instance, the value for ResourceType must be
* snapshot. The same tag is applied to all of the snapshots that are
* created.
If you specify other values for ResourceType, the request fails.
To tag an AMI or snapshot after it has been created, see CreateTags.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Only supported for instances in Local Zones. If the source instance is not in a Local * Zone, omit this parameter.
*The Amazon S3 location where the snapshots will be stored.
*To create local snapshots in the same Local Zone as the source instance, specify
* local.
To create regional snapshots in the parent Region of the Local Zone, specify
* regional or omit this parameter.
Default: regional
*
Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is
* DryRunOperation. Otherwise, it is UnauthorizedOperation.
The ID of the instance.
* @public */ InstanceId: string | undefined; /** *A name for the new image.
*Constraints: 3-128 alphanumeric characters, parentheses (()), square brackets ([]), spaces * ( ), periods (.), slashes (/), dashes (-), single quotes ('), at-signs (@), or * underscores(_)
* @public */ Name: string | undefined; /** *A description for the new image.
* @public */ Description?: string | undefined; /** *Indicates whether or not the instance should be automatically rebooted before creating the * image. Specify one of the following values:
*
* true - The instance is not rebooted before creating the image. This
* creates crash-consistent snapshots that include only the data that has been written to the
* volumes at the time the snapshots are created. Buffered data and data in memory that has
* not yet been written to the volumes is not included in the snapshots.
* false - The instance is rebooted before creating the image. This ensures
* that all buffered data and data in memory is written to the volumes before the snapshots
* are created.
Default: false
*
The block device mappings.
*When using the CreateImage action:
*You can't change the volume size using the VolumeSize parameter. If you want a * different volume size, you must first change the volume size of the source * instance.
*You can't modify the encryption status of existing volumes or snapshots. To create an * AMI with volumes or snapshots that have a different encryption status (for example, where * the source volume and snapshots are unencrypted, and you want to create an AMI with * encrypted volumes or snapshots), copy the image instead.
*The only option that can be changed for existing mappings or snapshots is
* DeleteOnTermination.
The ID of the new AMI.
* @public */ ImageId?: string | undefined; } /** *The options that affect the scope of the report.
* @public */ export interface ImageUsageResourceTypeOptionRequest { /** *The name of the option.
*Valid value: version-depth - The number of launch template versions to
* check.
A value for the specified option.
*Valid values: Integers between 1 and 10000
*
Default: 20
*
A resource type to include in the report. Associated options can also be specified if the * resource type is a launch template.
* @public */ export interface ImageUsageResourceTypeRequest { /** *The resource type.
*Valid values: ec2:Instance | ec2:LaunchTemplate
*
The options that affect the scope of the report. Valid only when ResourceType
* is ec2:LaunchTemplate.
The ID of the image to report on.
* @public */ ImageId: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is
* DryRunOperation. Otherwise, it is UnauthorizedOperation.
The resource types to include in the report.
* @public */ ResourceTypes: ImageUsageResourceTypeRequest[] | undefined; /** *The Amazon Web Services account IDs to include in the report. To include all accounts, omit this * parameter.
* @public */ AccountIds?: string[] | undefined; /** *A unique, case-sensitive identifier that you provide to ensure idempotency of the request.
* @public */ ClientToken?: string | undefined; /** *The tags to apply to the report on creation. The ResourceType must be set to
* image-usage-report; any other value will cause the report creation to
* fail.
To tag a report after it has been created, see CreateTags.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** * @public */ export interface CreateImageUsageReportResult { /** *The ID of the report.
* @public */ ReportId?: string | undefined; } /** * @public */ export interface CreateInstanceConnectEndpointRequest { /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the subnet in which to create the EC2 Instance Connect Endpoint.
* @public */ SubnetId: string | undefined; /** *One or more security groups to associate with the endpoint. If you don't specify a security group, * the default security group for your VPC will be associated with the endpoint.
* @public */ SecurityGroupIds?: string[] | undefined; /** *Indicates whether the client IP address is preserved as the source. The following are the possible values.
*
* true - Use the client IP address as the source.
* false - Use the network interface IP address as the source.
* PreserveClientIp is only supported on IPv4 EC2 Instance Connect
* Endpoints. To use PreserveClientIp, the value for
* IpAddressType must be ipv4.
Default: false
*
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
* @public */ ClientToken?: string | undefined; /** *The tags to apply to the EC2 Instance Connect Endpoint during creation.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *The IP address type of the endpoint.
*If no value is specified, the default value is determined by the IP address type of * the subnet:
*
* dualstack - If the subnet has both IPv4 and IPv6 CIDRs
* ipv4 - If the subnet has only IPv4 CIDRs
* ipv6 - If the subnet has only IPv6 CIDRs
* PreserveClientIp is only supported on IPv4 EC2 Instance Connect
* Endpoints. To use PreserveClientIp, the value for
* IpAddressType must be ipv4.
The DNS names of the endpoint.
* @public */ export interface InstanceConnectEndpointDnsNames { /** *The DNS name of the EC2 Instance Connect Endpoint.
* @public */ DnsName?: string | undefined; /** *The Federal Information Processing Standards (FIPS) compliant DNS name of the EC2 Instance Connect Endpoint.
* @public */ FipsDnsName?: string | undefined; } /** *The public DNS names of the endpoint, including IPv4-only and dualstack DNS * names.
* @public */ export interface InstanceConnectEndpointPublicDnsNames { /** *The IPv4-only DNS name of the EC2 Instance Connect Endpoint.
* @public */ Ipv4?: InstanceConnectEndpointDnsNames | undefined; /** *The dualstack DNS name of the EC2 Instance Connect Endpoint. A dualstack DNS name supports connections from both IPv4 and IPv6 clients.
* @public */ Dualstack?: InstanceConnectEndpointDnsNames | undefined; } /** *Describes an EC2 Instance Connect Endpoint.
* @public */ export interface Ec2InstanceConnectEndpoint { /** *The ID of the Amazon Web Services account that created the EC2 Instance Connect Endpoint.
* @public */ OwnerId?: string | undefined; /** *The ID of the EC2 Instance Connect Endpoint.
* @public */ InstanceConnectEndpointId?: string | undefined; /** *The Amazon Resource Name (ARN) of the EC2 Instance Connect Endpoint.
* @public */ InstanceConnectEndpointArn?: string | undefined; /** *The current state of the EC2 Instance Connect Endpoint.
* @public */ State?: Ec2InstanceConnectEndpointState | undefined; /** *The message for the current state of the EC2 Instance Connect Endpoint. * Can include a failure message.
* @public */ StateMessage?: string | undefined; /** *The DNS name of the EC2 Instance Connect Endpoint.
* @public */ DnsName?: string | undefined; /** *The Federal Information Processing Standards (FIPS) compliant DNS name of the EC2 * Instance Connect Endpoint.
* @public */ FipsDnsName?: string | undefined; /** *The ID of the elastic network interface that Amazon EC2 automatically created when creating the EC2 * Instance Connect Endpoint.
* @public */ NetworkInterfaceIds?: string[] | undefined; /** *The ID of the VPC in which the EC2 Instance Connect Endpoint was created.
* @public */ VpcId?: string | undefined; /** *The Availability Zone of the EC2 Instance Connect Endpoint.
* @public */ AvailabilityZone?: string | undefined; /** *The date and time that the EC2 Instance Connect Endpoint was created.
* @public */ CreatedAt?: Date | undefined; /** *The ID of the subnet in which the EC2 Instance Connect Endpoint was created.
* @public */ SubnetId?: string | undefined; /** *Indicates whether your client's IP address is preserved as the source when you connect to a resource. * The following are the possible values.
*
* true - Use the IP address of the client. Your instance must have an IPv4 address.
* false - Use the IP address of the network interface.
Default: false
*
The security groups associated with the endpoint. If you didn't specify a security group, * the default security group for your VPC is associated with the endpoint.
* @public */ SecurityGroupIds?: string[] | undefined; /** *The tags assigned to the EC2 Instance Connect Endpoint.
* @public */ Tags?: Tag[] | undefined; /** *The IP address type of the endpoint.
* @public */ IpAddressType?: IpAddressType | undefined; /** *The public DNS names of the endpoint.
* @public */ PublicDnsNames?: InstanceConnectEndpointPublicDnsNames | undefined; /** *The ID of the Availability Zone of the EC2 Instance Connect Endpoint.
* @public */ AvailabilityZoneId?: string | undefined; } /** * @public */ export interface CreateInstanceConnectEndpointResult { /** *Information about the EC2 Instance Connect Endpoint.
* @public */ InstanceConnectEndpoint?: Ec2InstanceConnectEndpoint | undefined; /** *Unique, case-sensitive idempotency token provided by the client in the the request.
* @public */ ClientToken?: string | undefined; } /** *The start day and time and the end day and time of the time range, in UTC.
* @public */ export interface InstanceEventWindowTimeRangeRequest { /** *The day on which the time range begins.
* @public */ StartWeekDay?: WeekDay | undefined; /** *The hour when the time range begins.
* @public */ StartHour?: number | undefined; /** *The day on which the time range ends.
* @public */ EndWeekDay?: WeekDay | undefined; /** *The hour when the time range ends.
* @public */ EndHour?: number | undefined; } /** * @public */ export interface CreateInstanceEventWindowRequest { /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The name of the event window.
* @public */ Name?: string | undefined; /** *The time range for the event window. If you specify a time range, you can't specify a * cron expression.
* @public */ TimeRanges?: InstanceEventWindowTimeRangeRequest[] | undefined; /** *The cron expression for the event window, for example, * 0-4,20-23 * * 1,5.
* If you specify a cron expression, you can't specify a time range.
Constraints:
*Only hour and day of the week values are supported.
*For day of the week values, you can specify either integers 0 through
* 6, or alternative single values SUN through
* SAT.
The minute, month, and year must be specified by *.
The hour value must be one or a multiple range, for example, 0-4 or
* 0-4,20-23.
Each hour range must be >= 2 hours, for example, 0-2 or
* 20-23.
The event window must be >= 4 hours. The combined total time ranges in the event * window must be >= 4 hours.
*For more information about cron expressions, see cron on the Wikipedia * website.
* @public */ CronExpression?: string | undefined; /** *The tags to apply to the event window.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** * @public */ export interface CreateInstanceEventWindowResult { /** *Information about the event window.
* @public */ InstanceEventWindow?: InstanceEventWindow | undefined; } /** *Describes an export instance task.
* @public */ export interface ExportToS3TaskSpecification { /** *The format for the exported image.
* @public */ DiskImageFormat?: DiskImageFormat | undefined; /** *The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is * exported.
* @public */ ContainerFormat?: ContainerFormat | undefined; /** *The Amazon S3 bucket for the destination image. The destination bucket must exist and have
* an access control list (ACL) attached that specifies the Region-specific canonical account ID for
* the Grantee. For more information about the ACL to your S3 bucket, see Prerequisites in the VM Import/Export User Guide.
The image is written to a single object in the Amazon S3 bucket at the S3 key s3prefix + * exportTaskId + '.' + diskImageFormat.
* @public */ S3Prefix?: string | undefined; } /** * @public */ export interface CreateInstanceExportTaskRequest { /** *The tags to apply to the export instance task during creation.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *A description for the conversion task or the resource being exported. The maximum length is 255 characters.
* @public */ Description?: string | undefined; /** *The ID of the instance.
* @public */ InstanceId: string | undefined; /** *The target virtualization environment.
* @public */ TargetEnvironment: ExportEnvironment | undefined; /** *The format and location for an export instance task.
* @public */ ExportToS3Task: ExportToS3TaskSpecification | undefined; } /** *Describes the format and location for the export task.
* @public */ export interface ExportToS3Task { /** *The container format used to combine disk images with metadata (such as OVF). If absent, only the disk image is * exported.
* @public */ ContainerFormat?: ContainerFormat | undefined; /** *The format for the exported image.
* @public */ DiskImageFormat?: DiskImageFormat | undefined; /** *The Amazon S3 bucket for the destination image. The destination bucket must exist and have
* an access control list (ACL) attached that specifies the Region-specific canonical account ID for
* the Grantee. For more information about the ACL to your S3 bucket, see Prerequisites in the VM Import/Export User Guide.
The encryption key for your S3 bucket.
* @public */ S3Key?: string | undefined; } /** *Describes an instance to export.
* @public */ export interface InstanceExportDetails { /** *The ID of the resource being exported.
* @public */ InstanceId?: string | undefined; /** *The target virtualization environment.
* @public */ TargetEnvironment?: ExportEnvironment | undefined; } /** *Describes an export instance task.
* @public */ export interface ExportTask { /** *A description of the resource being exported.
* @public */ Description?: string | undefined; /** *The ID of the export task.
* @public */ ExportTaskId?: string | undefined; /** *Information about the export task.
* @public */ ExportToS3Task?: ExportToS3Task | undefined; /** *Information about the instance to export.
* @public */ InstanceExportDetails?: InstanceExportDetails | undefined; /** *The state of the export task.
* @public */ State?: ExportTaskState | undefined; /** *The status message related to the export task.
* @public */ StatusMessage?: string | undefined; /** *The tags for the export task.
* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface CreateInstanceExportTaskResult { /** *Information about the export instance task.
* @public */ ExportTask?: ExportTask | undefined; } /** * @public */ export interface CreateInternetGatewayRequest { /** *The tags to assign to the internet gateway.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Describes an internet gateway.
* @public */ export interface InternetGateway { /** *Any VPCs attached to the internet gateway.
* @public */ Attachments?: InternetGatewayAttachment[] | undefined; /** *The ID of the internet gateway.
* @public */ InternetGatewayId?: string | undefined; /** *The ID of the Amazon Web Services account that owns the internet gateway.
* @public */ OwnerId?: string | undefined; /** *Any tags assigned to the internet gateway.
* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface CreateInternetGatewayResult { /** *Information about the internet gateway.
* @public */ InternetGateway?: InternetGateway | undefined; } /** * @public */ export interface CreateInterruptibleCapacityReservationAllocationRequest { /** ** The ID of the source Capacity Reservation from which to create the interruptible Capacity Reservation. Your Capacity Reservation must be in active state with no end date set and have available capacity for allocation. *
* @public */ CapacityReservationId: string | undefined; /** ** The number of instances to allocate from your source reservation. You can only allocate available instances (also called unused capacity). *
* @public */ InstanceCount: number | undefined; /** ** Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. *
* @public */ ClientToken?: string | undefined; /** ** Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. *
* @public */ DryRun?: boolean | undefined; /** ** The tags to apply to the interruptible Capacity Reservation during creation. *
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** * @public */ export interface CreateInterruptibleCapacityReservationAllocationResult { /** ** The ID of the source Capacity Reservation from which the interruptible Capacity Reservation was created. *
* @public */ SourceCapacityReservationId?: string | undefined; /** ** The number of instances allocated to the interruptible reservation. *
* @public */ TargetInstanceCount?: number | undefined; /** ** The current status of the allocation request (creating, active, updating). *
* @public */ Status?: InterruptibleCapacityReservationAllocationStatus | undefined; /** ** The type of interruption applied to the interruptible reservation. *
* @public */ InterruptionType?: InterruptionType | undefined; } /** * @public */ export interface CreateIpamRequest { /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
A description for the IPAM.
* @public */ Description?: string | undefined; /** *The operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.
*For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide. *
* @public */ OperatingRegions?: AddIpamOperatingRegion[] | undefined; /** *The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
* For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; /** *IPAM is offered in a Free Tier and an Advanced Tier. For more information about the features available in each tier and the costs associated with the tiers, see Amazon VPC pricing > IPAM tab.
* @public */ Tier?: IpamTier | undefined; /** *Enable this option to use your own GUA ranges as private IPv6 addresses. This option is disabled by default.
* @public */ EnablePrivateGua?: boolean | undefined; /** *A metered account is an Amazon Web Services account that is charged for active IP addresses managed in IPAM. For more information, see Enable cost distribution in the Amazon VPC IPAM User Guide.
*Possible values:
*
* ipam-owner (default): The Amazon Web Services account which owns the IPAM is charged for all active IP addresses managed in IPAM.
* resource-owner: The Amazon Web Services account that owns the IP address is charged for the active IP address.
The operating Regions for an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.
*For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.
* @public */ export interface IpamOperatingRegion { /** *The name of the operating Region.
* @public */ RegionName?: string | undefined; } /** *IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.
* @public */ export interface Ipam { /** *The Amazon Web Services account ID of the owner of the IPAM.
* @public */ OwnerId?: string | undefined; /** *The ID of the IPAM.
* @public */ IpamId?: string | undefined; /** *The Amazon Resource Name (ARN) of the IPAM.
* @public */ IpamArn?: string | undefined; /** *The Amazon Web Services Region of the IPAM.
* @public */ IpamRegion?: string | undefined; /** *The ID of the IPAM's default public scope.
* @public */ PublicDefaultScopeId?: string | undefined; /** *The ID of the IPAM's default private scope.
* @public */ PrivateDefaultScopeId?: string | undefined; /** *The number of scopes in the IPAM. The scope quota is 5. For more information on quotas, see Quotas in IPAM in the Amazon VPC IPAM User Guide. *
* @public */ ScopeCount?: number | undefined; /** *The description for the IPAM.
* @public */ Description?: string | undefined; /** *The operating Regions for an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.
*For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.
* @public */ OperatingRegions?: IpamOperatingRegion[] | undefined; /** *The state of the IPAM.
* @public */ State?: IpamState | undefined; /** *The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
* For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.
The IPAM's default resource discovery ID.
* @public */ DefaultResourceDiscoveryId?: string | undefined; /** *The IPAM's default resource discovery association ID.
* @public */ DefaultResourceDiscoveryAssociationId?: string | undefined; /** *The IPAM's resource discovery association count.
* @public */ ResourceDiscoveryAssociationCount?: number | undefined; /** *The state message.
* @public */ StateMessage?: string | undefined; /** *IPAM is offered in a Free Tier and an Advanced Tier. For more information about the features available in each tier and the costs associated with the tiers, see Amazon VPC pricing > IPAM tab.
* @public */ Tier?: IpamTier | undefined; /** *Enable this option to use your own GUA ranges as private IPv6 addresses. This option is disabled by default.
* @public */ EnablePrivateGua?: boolean | undefined; /** *A metered account is an Amazon Web Services account that is charged for active IP addresses managed in IPAM. For more information, see Enable cost distribution in the Amazon VPC IPAM User Guide.
*Possible values:
*
* ipam-owner (default): The Amazon Web Services account which owns the IPAM is charged for all active IP addresses managed in IPAM.
* resource-owner: The Amazon Web Services account that owns the IP address is charged for the active IP address.
Information about the IPAM created.
* @public */ Ipam?: Ipam | undefined; } /** * @public */ export interface CreateIpamExternalResourceVerificationTokenRequest { /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the IPAM that will create the token.
* @public */ IpamId: string | undefined; /** *Token tags.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; } /** *A verification token is an Amazon Web Services-generated random value that you can use to prove ownership of an external resource. For example, you can use a verification token to validate that you control a public IP address range when you bring an IP address range to Amazon Web Services (BYOIP). *
* @public */ export interface IpamExternalResourceVerificationToken { /** *The ID of the token.
* @public */ IpamExternalResourceVerificationTokenId?: string | undefined; /** *Token ARN.
* @public */ IpamExternalResourceVerificationTokenArn?: string | undefined; /** *The ID of the IPAM that created the token.
* @public */ IpamId?: string | undefined; /** *ARN of the IPAM that created the token.
* @public */ IpamArn?: string | undefined; /** *Region of the IPAM that created the token.
* @public */ IpamRegion?: string | undefined; /** *Token value.
* @public */ TokenValue?: string | undefined; /** *Token name.
* @public */ TokenName?: string | undefined; /** *Token expiration.
* @public */ NotAfter?: Date | undefined; /** *Token status.
* @public */ Status?: TokenState | undefined; /** *Token tags.
* @public */ Tags?: Tag[] | undefined; /** *Token state.
* @public */ State?: IpamExternalResourceVerificationTokenState | undefined; } /** * @public */ export interface CreateIpamExternalResourceVerificationTokenResult { /** *The verification token.
* @public */ IpamExternalResourceVerificationToken?: IpamExternalResourceVerificationToken | undefined; } /** * @public */ export interface CreateIpamPolicyRequest { /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The tags to assign to the IPAM policy.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *A unique, case-sensitive identifier to ensure the idempotency of the request.
* @public */ ClientToken?: string | undefined; /** *The ID of the IPAM for which you're creating the policy.
* @public */ IpamId: string | undefined; } /** *Information about an IPAM policy.
*An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.
* @public */ export interface IpamPolicy { /** *The account ID that owns the IPAM policy.
* @public */ OwnerId?: string | undefined; /** *The ID of the IPAM policy.
* @public */ IpamPolicyId?: string | undefined; /** *The Amazon Resource Name (ARN) of the IPAM policy.
* @public */ IpamPolicyArn?: string | undefined; /** *The Region of the IPAM policy.
* @public */ IpamPolicyRegion?: string | undefined; /** *The state of the IPAM policy.
* @public */ State?: IpamPolicyState | undefined; /** *A message about the state of the IPAM policy.
* @public */ StateMessage?: string | undefined; /** *The tags assigned to the IPAM policy.
* @public */ Tags?: Tag[] | undefined; /** *The ID of the IPAM this policy belongs to.
* @public */ IpamId?: string | undefined; } /** * @public */ export interface CreateIpamPolicyResult { /** *Information about the created IPAM policy.
*An IPAM policy is a set of rules that define how public IPv4 addresses from IPAM pools are allocated to Amazon Web Services resources. Each rule maps an Amazon Web Services service to IPAM pools that the service will use to get IP addresses. A single policy can have multiple rules and be applied to multiple Amazon Web Services Regions. If the IPAM pool run out of addresses then the services fallback to Amazon-provided IP addresses. A policy can be applied to an individual Amazon Web Services account or an entity within Amazon Web Services Organizations.
* @public */ IpamPolicy?: IpamPolicy | undefined; } /** *A tag on an IPAM resource.
* @public */ export interface RequestIpamResourceTag { /** *The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.
* @public */ Key?: string | undefined; /** *The value for the tag.
* @public */ Value?: string | undefined; } /** *The resource used to provision CIDRs to a resource planning pool.
* @public */ export interface IpamPoolSourceResourceRequest { /** *The source resource ID.
* @public */ ResourceId?: string | undefined; /** *The source resource type.
* @public */ ResourceType?: IpamPoolSourceResourceType | undefined; /** *The source resource Region.
* @public */ ResourceRegion?: string | undefined; /** *The source resource owner.
* @public */ ResourceOwner?: string | undefined; } /** * @public */ export interface CreateIpamPoolRequest { /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the scope in which you would like to create the IPAM pool.
* @public */ IpamScopeId: string | undefined; /** *The locale for the pool should be one of the following:
*An Amazon Web Services Region where you want this IPAM pool to be available for allocations.
*The network border group for an Amazon Web Services Local Zone where you want this IPAM pool to be available for allocations (supported Local Zones). This option is only available for IPAM IPv4 pools in the public scope.
*Possible values: Any Amazon Web Services Region or supported Amazon Web Services Local Zone. Default is none and means any locale.
The ID of the source IPAM pool. Use this option to create a pool within an existing pool. Note that the CIDR you provision for the pool within the source pool must be available in the source pool's CIDR range.
* @public */ SourceIpamPoolId?: string | undefined; /** *A description for the IPAM pool.
* @public */ Description?: string | undefined; /** *The IP protocol assigned to this IPAM pool. You must choose either IPv4 or IPv6 protocol for a pool.
* @public */ AddressFamily: AddressFamily | undefined; /** *If selected, IPAM will continuously look for resources within the CIDR range of this pool * and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for * these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import * a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently * marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM * discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only. *
*A locale must be set on the pool for this feature to work.
* @public */ AutoImport?: boolean | undefined; /** *Determines if the pool is publicly advertisable. The request can only contain PubliclyAdvertisable if AddressFamily is ipv6 and PublicIpSource is byoip.
The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. The minimum netmask length must be * less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
* @public */ AllocationMinNetmaskLength?: number | undefined; /** *The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. The maximum netmask length must be * greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
* @public */ AllocationMaxNetmaskLength?: number | undefined; /** *The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, * new allocations will default to 10.0.0.0/16.
* @public */ AllocationDefaultNetmaskLength?: number | undefined; /** *Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant.
* @public */ AllocationResourceTags?: RequestIpamResourceTag[] | undefined; /** *The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
* For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; /** *Limits which service in Amazon Web Services that the pool can be used in. "ec2", for example, allows users to use space for Elastic IP addresses and VPCs.
* @public */ AwsService?: IpamPoolAwsService | undefined; /** *The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Default is byoip. For more information, see Create IPv6 pools in the Amazon VPC IPAM User Guide.
* By default, you can add only one Amazon-provided IPv6 CIDR block to a top-level IPv6 pool if PublicIpSource is amazon. For information on increasing the default limit, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.
The resource used to provision CIDRs to a resource planning pool.
* @public */ SourceResource?: IpamPoolSourceResourceRequest | undefined; } /** *The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
* For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.
The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.
* @public */ Key?: string | undefined; /** *The value of the tag.
* @public */ Value?: string | undefined; } /** *The resource used to provision CIDRs to a resource planning pool.
* @public */ export interface IpamPoolSourceResource { /** *The source resource ID.
* @public */ ResourceId?: string | undefined; /** *The source resource type.
* @public */ ResourceType?: IpamPoolSourceResourceType | undefined; /** *The source resource Region.
* @public */ ResourceRegion?: string | undefined; /** *The source resource owner.
* @public */ ResourceOwner?: string | undefined; } /** *In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to organize your IP addresses according to your routing and security needs. For example, if you have separate routing and security needs for development and production applications, you can create a pool for each.
* @public */ export interface IpamPool { /** *The Amazon Web Services account ID of the owner of the IPAM pool.
* @public */ OwnerId?: string | undefined; /** *The ID of the IPAM pool.
* @public */ IpamPoolId?: string | undefined; /** *The ID of the source IPAM pool. You can use this option to create an IPAM pool within an existing source pool.
* @public */ SourceIpamPoolId?: string | undefined; /** *The Amazon Resource Name (ARN) of the IPAM pool.
* @public */ IpamPoolArn?: string | undefined; /** *The ARN of the scope of the IPAM pool.
* @public */ IpamScopeArn?: string | undefined; /** *In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.
* @public */ IpamScopeType?: IpamScopeType | undefined; /** *The ARN of the IPAM.
* @public */ IpamArn?: string | undefined; /** *The Amazon Web Services Region of the IPAM pool.
* @public */ IpamRegion?: string | undefined; /** *The locale of the IPAM pool.
*The locale for the pool should be one of the following:
*An Amazon Web Services Region where you want this IPAM pool to be available for allocations.
*The network border group for an Amazon Web Services Local Zone where you want this IPAM pool to be available for allocations (supported Local Zones). This option is only available for IPAM IPv4 pools in the public scope.
*If you choose an Amazon Web Services Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error.
* @public */ Locale?: string | undefined; /** *The depth of pools in your IPAM pool. The pool depth quota is 10. For more information, see Quotas in IPAM in the Amazon VPC IPAM User Guide. *
* @public */ PoolDepth?: number | undefined; /** *The state of the IPAM pool.
* @public */ State?: IpamPoolState | undefined; /** *The state message.
* @public */ StateMessage?: string | undefined; /** *The description of the IPAM pool.
* @public */ Description?: string | undefined; /** *If selected, IPAM will continuously look for resources within the CIDR range of this pool * and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for * these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import * a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently * marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM * discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only. *
*A locale must be set on the pool for this feature to work.
* @public */ AutoImport?: boolean | undefined; /** *Determines if a pool is publicly advertisable. This option is not available for pools with AddressFamily set to ipv4.
The address family of the pool.
* @public */ AddressFamily?: AddressFamily | undefined; /** *The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. The minimum netmask length must be less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
* @public */ AllocationMinNetmaskLength?: number | undefined; /** *The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. The maximum netmask length must be greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
* @public */ AllocationMaxNetmaskLength?: number | undefined; /** *The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and * you enter 16 here, new allocations will default to 10.0.0.0/16.
* @public */ AllocationDefaultNetmaskLength?: number | undefined; /** *Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant.
* @public */ AllocationResourceTags?: IpamResourceTag[] | undefined; /** *The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
* For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.
Limits which service in Amazon Web Services that the pool can be used in. "ec2", for example, allows users to use space for Elastic IP addresses and VPCs.
* @public */ AwsService?: IpamPoolAwsService | undefined; /** *The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Default is BYOIP. For more information, see Create IPv6 pools in the Amazon VPC IPAM User Guide.
* By default, you can add only one Amazon-provided IPv6 CIDR block to a top-level IPv6 pool. For information on increasing the default limit, see Quotas for your IPAM in the Amazon VPC IPAM User Guide.
The resource used to provision CIDRs to a resource planning pool.
* @public */ SourceResource?: IpamPoolSourceResource | undefined; } /** * @public */ export interface CreateIpamPoolResult { /** *Information about the IPAM pool created.
* @public */ IpamPool?: IpamPool | undefined; } /** *Describes a condition used when creating or modifying resolver rules.
*CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules.
*There are three rule types. Only 2 of the 3 rule types support conditions - IPAM pool CIDR and Scope resource CIDR. Static CIDR rules cannot have conditions.
** Static CIDR: A fixed list of CIDRs that do not change (like a manual list replicated across Regions)
** IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool)
*If you choose this option, choose the following:
** IPAM scope: Select the IPAM scope to search for resources
** Conditions: *
** Property *
** IPAM pool ID: Select an IPAM pool that contains the resources
** CIDR (like 10.24.34.0/23)
** Operation: Equals/Not equals
** Value: The value on which to match the condition
** Scope resource CIDR: CIDRs from Amazon Web Services resources like VPCs, subnets, EIPs within an IPAM scope
*If you choose this option, choose the following:
** IPAM scope: Select the IPAM scope to search for resources
** Resource type: Select a resource, like a VPC or subnet.
** Conditions:
** Property:
*Resource ID: The unique ID of a resource (like vpc-1234567890abcdef0)
*Resource owner (like 111122223333)
*Resource region (like us-east-1)
*Resource tag (like key: name, value: dev-vpc-1)
*CIDR (like 10.24.34.0/23)
** Operation: Equals/Not equals
** Value: The value on which to match the condition
*The operation to perform when evaluating this condition.
* @public */ Operation: IpamPrefixListResolverRuleConditionOperation | undefined; /** *The ID of the IPAM pool to match against. This condition selects CIDRs that belong to the specified IPAM pool.
* @public */ IpamPoolId?: string | undefined; /** *The ID of the Amazon Web Services resource to match against. This condition selects CIDRs associated with the specified resource.
* @public */ ResourceId?: string | undefined; /** *The Amazon Web Services account ID that owns the resources to match against. This condition selects CIDRs from resources owned by the specified account.
* @public */ ResourceOwner?: string | undefined; /** *The Amazon Web Services Region where the resources are located. This condition selects CIDRs from resources in the specified Region.
* @public */ ResourceRegion?: string | undefined; /** *A tag key-value pair to match against. This condition selects CIDRs from resources that have the specified tag.
* @public */ ResourceTag?: RequestIpamResourceTag | undefined; /** *A CIDR block to match against. This condition selects CIDRs that fall within or match the specified CIDR range.
* @public */ Cidr?: string | undefined; } /** *Describes a CIDR selection rule to include in a request. This is used when creating or modifying resolver rules.
*CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules.
*There are three rule types. Only 2 of the 3 rule types support conditions - IPAM pool CIDR and Scope resource CIDR. Static CIDR rules cannot have conditions.
** Static CIDR: A fixed list of CIDRs that do not change (like a manual list replicated across Regions)
** IPAM pool CIDR: CIDRs from specific IPAM pools (like all CIDRs from your IPAM production pool)
*If you choose this option, choose the following:
** IPAM scope: Select the IPAM scope to search for resources
** Conditions: *
** Property *
** IPAM pool ID: Select an IPAM pool that contains the resources
** CIDR (like 10.24.34.0/23)
** Operation: Equals/Not equals
** Value: The value on which to match the condition
** Scope resource CIDR: CIDRs from Amazon Web Services resources like VPCs, subnets, EIPs within an IPAM scope
*If you choose this option, choose the following:
** IPAM scope: Select the IPAM scope to search for resources
** Resource type: Select a resource, like a VPC or subnet.
** Conditions:
** Property:
*Resource ID: The unique ID of a resource (like vpc-1234567890abcdef0)
*Resource owner (like 111122223333)
*Resource region (like us-east-1)
*Resource tag (like key: name, value: dev-vpc-1)
*CIDR (like 10.24.34.0/23)
** Operation: Equals/Not equals
** Value: The value on which to match the condition
*The type of CIDR selection rule. Valid values include include for selecting CIDRs that match the conditions, and exclude for excluding CIDRs that match the conditions.
A fixed list of CIDRs that do not change (like a manual list replicated across Regions).
* @public */ StaticCidr?: string | undefined; /** *The ID of the IPAM scope from which to select CIDRs. This determines whether to select from public or private IP address space.
* @public */ IpamScopeId?: string | undefined; /** *For rules of type ipam-resource-cidr, this is the resource type.
The conditions that determine which CIDRs are selected by this rule. Conditions specify criteria such as resource type, tags, account IDs, and Regions.
* @public */ Conditions?: IpamPrefixListResolverRuleConditionRequest[] | undefined; } /** * @public */ export interface CreateIpamPrefixListResolverRequest { /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the IPAM that will serve as the source of the IP address database for CIDR selection. The IPAM must be in the Advanced tier to use this feature.
* @public */ IpamId: string | undefined; /** *A description for the IPAM prefix list resolver to help you identify its purpose and configuration.
* @public */ Description?: string | undefined; /** *The address family for the IPAM prefix list resolver. Valid values are ipv4 and ipv6. You must create separate resolvers for IPv4 and IPv6 CIDRs as they cannot be mixed in the same resolver.
The CIDR selection rules for the resolver.
*CIDR selection rules define the business logic for selecting CIDRs from IPAM. If a CIDR matches any of the rules, it will be included. If a rule has multiple conditions, the CIDR has to match every condition of that rule. You can create a prefix list resolver without any CIDR selection rules, but it will generate empty versions (containing no CIDRs) until you add rules.
* @public */ Rules?: IpamPrefixListResolverRuleRequest[] | undefined; /** *The tags to apply to the IPAM prefix list resolver during creation. Tags help you organize and manage your Amazon Web Services resources.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; } /** *Describes an IPAM prefix list resolver.
*An IPAM prefix list resolver is a component that manages the synchronization between IPAM's CIDR selection rules and customer-managed prefix lists. It automates connectivity configurations by selecting CIDRs from IPAM's database based on your business logic and synchronizing them with prefix lists used in resources such as VPC route tables and security groups.
* @public */ export interface IpamPrefixListResolver { /** *The ID of the Amazon Web Services account that owns the IPAM prefix list resolver.
* @public */ OwnerId?: string | undefined; /** *The ID of the IPAM prefix list resolver.
* @public */ IpamPrefixListResolverId?: string | undefined; /** *The Amazon Resource Name (ARN) of the IPAM prefix list resolver.
* @public */ IpamPrefixListResolverArn?: string | undefined; /** *The Amazon Resource Name (ARN) of the IPAM associated with this resolver.
* @public */ IpamArn?: string | undefined; /** *The Amazon Web Services Region where the associated IPAM is located.
* @public */ IpamRegion?: string | undefined; /** *The description of the IPAM prefix list resolver.
* @public */ Description?: string | undefined; /** *The address family (IPv4 or IPv6) for the IPAM prefix list resolver.
* @public */ AddressFamily?: AddressFamily | undefined; /** *The current state of the IPAM prefix list resolver. Valid values include create-in-progress, create-complete, create-failed, modify-in-progress, modify-complete, modify-failed, delete-in-progress, delete-complete, and delete-failed.
The tags assigned to the IPAM prefix list resolver.
* @public */ Tags?: Tag[] | undefined; /** *The status for the last time a version was created.
*Each version is a snapshot of what CIDRs matched your rules at that moment in time. The version number increments every time the CIDR list * changes due to infrastructure changes.
* @public */ LastVersionCreationStatus?: IpamPrefixListResolverVersionCreationStatus | undefined; /** *The status message for the last time a version was created.
*Each version is a snapshot of what CIDRs matched your rules at that moment in time. The version number increments every time the CIDR list * changes due to infrastructure changes.
* @public */ LastVersionCreationStatusMessage?: string | undefined; } /** * @public */ export interface CreateIpamPrefixListResolverResult { /** *Information about the IPAM prefix list resolver that was created.
* @public */ IpamPrefixListResolver?: IpamPrefixListResolver | undefined; } /** * @public */ export interface CreateIpamPrefixListResolverTargetRequest { /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the IPAM prefix list resolver that will manage the synchronization of CIDRs to the target prefix list.
* @public */ IpamPrefixListResolverId: string | undefined; /** *The ID of the managed prefix list that will be synchronized with CIDRs selected by the IPAM prefix list resolver. This prefix list becomes an IPAM managed prefix list.
*An IPAM-managed prefix list is a customer-managed prefix list that has been associated with an IPAM prefix list resolver target. When a prefix list becomes IPAM managed, its CIDRs are automatically synchronized based on the IPAM prefix list resolver's CIDR selection rules, and direct CIDR modifications are restricted.
* @public */ PrefixListId: string | undefined; /** *The Amazon Web Services Region where the prefix list is located. This is required when referencing a prefix list in a different Region.
* @public */ PrefixListRegion: string | undefined; /** *The specific version of the prefix list to target. If not specified, the resolver will target the latest version.
* @public */ DesiredVersion?: number | undefined; /** *Indicates whether the resolver target should automatically track the latest version of the prefix list. When enabled, the target will always synchronize with the most current version of the prefix list.
*Choose this for automatic updates when you want your prefix lists to stay current with infrastructure changes without manual intervention.
* @public */ TrackLatestVersion: boolean | undefined; /** *The tags to apply to the IPAM prefix list resolver target during creation. Tags help you organize and manage your Amazon Web Services resources.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; } /** *Describes an IPAM prefix list resolver target.
*An IPAM prefix list resolver target is an association between a specific customer-managed prefix list and an IPAM prefix list resolver. The target enables the resolver to synchronize CIDRs selected by its rules into the specified prefix list, which can then be referenced in Amazon Web Services resources.
* @public */ export interface IpamPrefixListResolverTarget { /** *The ID of the IPAM prefix list resolver target.
* @public */ IpamPrefixListResolverTargetId?: string | undefined; /** *The Amazon Resource Name (ARN) of the IPAM prefix list resolver target.
* @public */ IpamPrefixListResolverTargetArn?: string | undefined; /** *The ID of the IPAM prefix list resolver associated with this target.
* @public */ IpamPrefixListResolverId?: string | undefined; /** *The ID of the Amazon Web Services account that owns the IPAM prefix list resolver target.
* @public */ OwnerId?: string | undefined; /** *The ID of the managed prefix list associated with this target.
* @public */ PrefixListId?: string | undefined; /** *The Amazon Web Services Region where the prefix list associated with this target is located.
* @public */ PrefixListRegion?: string | undefined; /** *The desired version of the prefix list that this target should synchronize with.
* @public */ DesiredVersion?: number | undefined; /** *The version of the prefix list that was last successfully synchronized by this target.
* @public */ LastSyncedVersion?: number | undefined; /** *Indicates whether this target automatically tracks the latest version of the prefix list.
* @public */ TrackLatestVersion?: boolean | undefined; /** *A message describing the current state of the IPAM prefix list resolver target, including any error information.
* @public */ StateMessage?: string | undefined; /** *The current state of the IPAM prefix list resolver target. Valid values include create-in-progress, create-complete, create-failed, modify-in-progress, modify-complete, modify-failed, delete-in-progress, delete-complete, and delete-failed.
The tags assigned to the IPAM prefix list resolver target.
* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface CreateIpamPrefixListResolverTargetResult { /** *Information about the IPAM prefix list resolver target that was created.
* @public */ IpamPrefixListResolverTarget?: IpamPrefixListResolverTarget | undefined; } /** * @public */ export interface CreateIpamResourceDiscoveryRequest { /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
A description for the IPAM resource discovery.
* @public */ Description?: string | undefined; /** *Operating Regions for the IPAM resource discovery. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.
* @public */ OperatingRegions?: AddIpamOperatingRegion[] | undefined; /** *Tag specifications for the IPAM resource discovery.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *A client token for the IPAM resource discovery.
* @public */ ClientToken?: string | undefined; } /** *If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion.
* @public */ export interface IpamOrganizationalUnitExclusion { /** *An Amazon Web Services Organizations entity path. For more information on the entity path, see Understand the Amazon Web Services Organizations entity path in the Amazon Web Services Identity and Access Management User Guide.
* @public */ OrganizationsEntityPath?: string | undefined; } /** *A resource discovery is an IPAM component that enables IPAM to manage and monitor resources that belong to the owning account.
* @public */ export interface IpamResourceDiscovery { /** *The ID of the owner.
* @public */ OwnerId?: string | undefined; /** *The resource discovery ID.
* @public */ IpamResourceDiscoveryId?: string | undefined; /** *The resource discovery Amazon Resource Name (ARN).
* @public */ IpamResourceDiscoveryArn?: string | undefined; /** *The resource discovery Region.
* @public */ IpamResourceDiscoveryRegion?: string | undefined; /** *The resource discovery description.
* @public */ Description?: string | undefined; /** *The operating Regions for the resource discovery. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.
* @public */ OperatingRegions?: IpamOperatingRegion[] | undefined; /** *Defines if the resource discovery is the default. The default resource discovery is the resource discovery automatically created when you create an IPAM.
* @public */ IsDefault?: boolean | undefined; /** *The lifecycle state of the resource discovery.
*
* create-in-progress - Resource discovery is being created.
* create-complete - Resource discovery creation is complete.
* create-failed - Resource discovery creation has failed.
* modify-in-progress - Resource discovery is being modified.
* modify-complete - Resource discovery modification is complete.
* modify-failed - Resource discovery modification has failed.
* delete-in-progress - Resource discovery is being deleted.
* delete-complete - Resource discovery deletion is complete.
* delete-failed - Resource discovery deletion has failed.
* isolate-in-progress - Amazon Web Services account that created the resource discovery has been removed and the resource discovery is being isolated.
* isolate-complete - Resource discovery isolation is complete.
* restore-in-progress - Amazon Web Services account that created the resource discovery and was isolated has been restored.
A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your Amazon Web Services costs.
* @public */ Tags?: Tag[] | undefined; /** *If your IPAM is integrated with Amazon Web Services Organizations and you add an organizational unit (OU) exclusion, IPAM will not manage the IP addresses in accounts in that OU exclusion.
* @public */ OrganizationalUnitExclusions?: IpamOrganizationalUnitExclusion[] | undefined; } /** * @public */ export interface CreateIpamResourceDiscoveryResult { /** *An IPAM resource discovery.
* @public */ IpamResourceDiscovery?: IpamResourceDiscovery | undefined; } /** *The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.
*For more information, see Integrate VPC IPAM with Infoblox infrastructure in the Amazon VPC IPAM User Guide.
* @public */ export interface ExternalAuthorityConfiguration { /** *The type of external authority.
* @public */ Type?: IpamScopeExternalAuthorityType | undefined; /** *The identifier for the external resource managing this scope. For Infoblox integrations, this is the Infoblox resource identifier in the format .
A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the IPAM for which you're creating this scope.
* @public */ IpamId: string | undefined; /** *A description for the scope you're creating.
* @public */ Description?: string | undefined; /** *The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
* For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; /** *The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.
*In IPAM, an external authority is a third-party IP address management system that provides CIDR blocks when you provision address space for top-level IPAM pools. This allows you to use your existing IP management system to control which address ranges are allocated to Amazon Web Services while using Amazon VPC IPAM to manage subnets within those ranges.
* @public */ ExternalAuthorityConfiguration?: ExternalAuthorityConfiguration | undefined; } /** *The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.
*In IPAM, an external authority is a third-party IP address management system that provides CIDR blocks when you provision address space for top-level IPAM pools. This allows you to use your existing IP management system to control which address ranges are allocated to Amazon Web Services while using Amazon VPC IPAM to manage subnets within those ranges.
* @public */ export interface IpamScopeExternalAuthorityConfiguration { /** *The type of external authority managing this scope. Currently supports Infoblox for integration with Infoblox Universal DDI.
The identifier for the external resource managing this scope. For Infoblox integrations, this is the Infoblox resource identifier in the format .
In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.
*For more information, see How IPAM works in the Amazon VPC IPAM User Guide.
* @public */ export interface IpamScope { /** *The Amazon Web Services account ID of the owner of the scope.
* @public */ OwnerId?: string | undefined; /** *The ID of the scope.
* @public */ IpamScopeId?: string | undefined; /** *The Amazon Resource Name (ARN) of the scope.
* @public */ IpamScopeArn?: string | undefined; /** *The ARN of the IPAM.
* @public */ IpamArn?: string | undefined; /** *The Amazon Web Services Region of the IPAM scope.
* @public */ IpamRegion?: string | undefined; /** *The type of the scope.
* @public */ IpamScopeType?: IpamScopeType | undefined; /** *Defines if the scope is the default scope or not.
* @public */ IsDefault?: boolean | undefined; /** *The description of the scope.
* @public */ Description?: string | undefined; /** *The number of pools in the scope.
* @public */ PoolCount?: number | undefined; /** *The state of the IPAM scope.
* @public */ State?: IpamScopeState | undefined; /** *The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
* For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.
The external authority configuration for this IPAM scope, if configured.
*The configuration that links an Amazon VPC IPAM scope to an external authority system. It specifies the type of external system and the external resource identifier that identifies your account or instance in that system.
*In IPAM, an external authority is a third-party IP address management system that provides CIDR blocks when you provision address space for top-level IPAM pools. This allows you to use your existing IP management system to control which address ranges are allocated to Amazon Web Services while using Amazon VPC IPAM to manage subnets within those ranges.
* @public */ ExternalAuthorityConfiguration?: IpamScopeExternalAuthorityConfiguration | undefined; } /** * @public */ export interface CreateIpamScopeResult { /** *Information about the created scope.
* @public */ IpamScope?: IpamScope | undefined; } /** * @public */ export interface CreateKeyPairRequest { /** *A unique name for the key pair.
*Constraints: Up to 255 ASCII characters
* @public */ KeyName: string | undefined; /** *The type of key pair. Note that ED25519 keys are not supported for Windows instances.
*Default: rsa
*
The tags to apply to the new key pair.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *The format of the key pair.
*Default: pem
*
Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Describes a key pair.
* @public */ export interface KeyPair { /** *The ID of the key pair.
* @public */ KeyPairId?: string | undefined; /** *Any tags applied to the key pair.
* @public */ Tags?: Tag[] | undefined; /** *The name of the key pair.
* @public */ KeyName?: string | undefined; /** *For RSA key pairs, the key fingerprint is the SHA-1 digest of the DER encoded private key.
*For ED25519 key pairs, the key fingerprint is the base64-encoded SHA-256 digest, which is the default for OpenSSH, starting with OpenSSH 6.8.
*An unencrypted PEM encoded RSA or ED25519 private key.
* @public */ KeyMaterial?: string | undefined; } /** *The parameters for a block device for an EBS volume.
* @public */ export interface LaunchTemplateEbsBlockDeviceRequest { /** *Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached * to instances that support Amazon EBS encryption. If you are creating a volume from a * snapshot, you can't specify an encryption value.
* @public */ Encrypted?: boolean | undefined; /** *Indicates whether the EBS volume is deleted on instance termination.
* @public */ DeleteOnTermination?: boolean | undefined; /** *The number of I/O operations per second (IOPS). For gp3,
* io1, and io2 volumes, this represents the number of IOPS that
* are provisioned for the volume. For gp2 volumes, this represents the
* baseline performance of the volume and the rate at which the volume accumulates I/O
* credits for bursting.
The following are the supported values for each volume type:
*
* gp3: 3,000 - 80,000 IOPS
* io1: 100 - 64,000 IOPS
* io2: 100 - 256,000 IOPS
For io2 volumes, you can achieve up to 256,000 IOPS on
* instances
* built on the Nitro System. On other instances, you can achieve performance up to 32,000 IOPS.
This parameter is supported for io1, io2, and gp3 volumes only.
Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.
* @public */ KmsKeyId?: string | undefined; /** *The ID of the snapshot.
* @public */ SnapshotId?: string | undefined; /** *The size of the volume, in GiBs. You must specify either a snapshot ID or a volume * size. The following are the supported volumes sizes for each volume type:
*
* gp2: 1 - 16,384 GiB
* gp3: 1 - 65,536 GiB
* io1: 4 - 16,384 GiB
* io2: 4 - 65,536 GiB
* st1 and sc1: 125 - 16,384 GiB
* standard: 1 - 1024 GiB
The volume type. For more information, see Amazon EBS volume types in the * Amazon EBS User Guide.
* @public */ VolumeType?: VolumeType | undefined; /** *The throughput to provision for a gp3 volume, with a maximum of 2,000
* MiB/s.
Valid Range: Minimum value of 125. Maximum value of 2,000.
* @public */ Throughput?: number | undefined; /** *Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download * the snapshot blocks from Amazon S3 to the volume. This is also known as volume * initialization. Specifying a volume initialization rate ensures that the volume is * initialized at a predictable and consistent rate after creation.
*This parameter is supported only for volumes created from snapshots. Omit this parameter * if:
*You want to create the volume using fast snapshot restore. You must specify a snapshot * that is enabled for fast snapshot restore. In this case, the volume is fully initialized * at creation.
*If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, * the volume will be initialized at the specified rate instead of fast snapshot restore.
*You want to create a volume that is initialized at the default rate.
*For more information, see * Initialize Amazon EBS volumes in the Amazon EC2 User Guide.
*Valid range: 100 - 300 MiB/s
* @public */ VolumeInitializationRate?: number | undefined; /** *The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.
* @public */ EbsCardIndex?: number | undefined; } /** *Describes a block device mapping.
* @public */ export interface LaunchTemplateBlockDeviceMappingRequest { /** *The device name (for example, /dev/sdh or xvdh).
* @public */ DeviceName?: string | undefined; /** *The virtual device name (ephemeralN). Instance store volumes are numbered starting * from 0. An instance type with 2 available instance store volumes can specify mappings * for ephemeral0 and ephemeral1. The number of available instance store volumes depends on * the instance type. After you connect to the instance, you must mount the volume.
* @public */ VirtualName?: string | undefined; /** *Parameters used to automatically set up EBS volumes when the instance is * launched.
* @public */ Ebs?: LaunchTemplateEbsBlockDeviceRequest | undefined; /** *To omit the device from the block device mapping, specify an empty string.
* @public */ NoDevice?: string | undefined; } /** *Describes a target Capacity Reservation or Capacity Reservation group.
* @public */ export interface CapacityReservationTarget { /** *The ID of the Capacity Reservation in which to run the instance.
* @public */ CapacityReservationId?: string | undefined; /** *The ARN of the Capacity Reservation resource group in which to run the * instance.
* @public */ CapacityReservationResourceGroupArn?: string | undefined; } /** *Describes an instance's Capacity Reservation targeting option. You can specify only
* one option at a time. Use the CapacityReservationPreference parameter to
* configure the instance to run in On-Demand capacity or to run in any open
* Capacity Reservation that has matching attributes (instance type, platform, Availability
* Zone). Use the CapacityReservationTarget parameter to explicitly target a
* specific Capacity Reservation or a Capacity Reservation group.
Indicates the instance's Capacity Reservation preferences. Possible preferences * include:
*
* capacity-reservations-only - The instance will only run in a
* Capacity Reservation or Capacity Reservation group. If capacity isn't available,
* the instance will fail to launch.
* open - The instance can run in any open Capacity
* Reservation that has matching attributes (instance type, platform, Availability
* Zone, tenancy).
* none - The instance avoids running in a Capacity Reservation even
* if one is available. The instance runs in On-Demand capacity.
Information about the target Capacity Reservation or Capacity Reservation * group.
* @public */ CapacityReservationTarget?: CapacityReservationTarget | undefined; } /** *The CPU options for the instance. Both the core count and threads per core must be * specified in the request.
* @public */ export interface LaunchTemplateCpuOptionsRequest { /** *The number of CPU cores for the instance.
* @public */ CoreCount?: number | undefined; /** *The number of threads per CPU core. To disable multithreading for the instance,
* specify a value of 1. Otherwise, specify the default value of
* 2.
Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported * with M6a, R6a, and C6a instance types only. For more information, see AMD SEV-SNP for * Amazon EC2 instances.
* @public */ AmdSevSnp?: AmdSevSnpSpecification | undefined; /** *Indicates whether to enable the instance for nested virtualization. * Nested virtualization is supported only on 8th generation Intel-based instance types (c8i, m8i, r8i, and their flex variants). * When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance.
* @public */ NestedVirtualization?: NestedVirtualizationSpecification | undefined; } /** *The credit option for CPU usage of a T instance.
* @public */ export interface CreditSpecificationRequest { /** *The credit option for CPU usage of a T instance.
*Valid values: standard | unlimited
*
Amazon Elastic Graphics reached end of life on January 8, 2024.
*A specification for an Elastic Graphics accelerator.
* @public */ export interface ElasticGpuSpecification { /** *The type of Elastic Graphics accelerator.
* @public */ Type: string | undefined; } /** *Amazon Elastic Inference is no longer available.
*Describes an elastic inference accelerator.
* @public */ export interface LaunchTemplateElasticInferenceAccelerator { /** *The type of elastic inference accelerator. The possible values are eia1.medium, * eia1.large, and eia1.xlarge.
* @public */ Type: string | undefined; /** *The number of elastic inference accelerators to attach to the instance.
* @public */ Count?: number | undefined; } /** *Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For more * information, see What is Nitro Enclaves? in the * Amazon Web Services Nitro Enclaves User Guide.
* @public */ export interface LaunchTemplateEnclaveOptionsRequest { /** *To enable the instance for Amazon Web Services Nitro Enclaves, set this parameter to
* true.
Indicates whether the instance is configured for hibernation. This parameter is valid * only if the instance meets the hibernation * prerequisites.
* @public */ export interface LaunchTemplateHibernationOptionsRequest { /** *If you set this parameter to true, the instance is enabled for
* hibernation.
Default: false
*
An IAM instance profile.
* @public */ export interface LaunchTemplateIamInstanceProfileSpecificationRequest { /** *The Amazon Resource Name (ARN) of the instance profile.
* @public */ Arn?: string | undefined; /** *The name of the instance profile.
* @public */ Name?: string | undefined; } /** *The options for Spot Instances.
* @public */ export interface LaunchTemplateSpotMarketOptionsRequest { /** *The maximum hourly price you're willing to pay for a Spot Instance. We do not
* recommend using this parameter because it can lead to increased interruptions. If you do
* not specify this parameter, you will pay the current Spot price. If you do specify this
* parameter, it must be more than USD $0.001. Specifying a value below USD $0.001 will
* result in an InvalidParameterValue error message when the launch template
* is used to launch an instance.
If you specify a maximum price, your Spot Instances will be interrupted more * frequently than if you do not specify this parameter.
*The Spot Instance request type.
* @public */ SpotInstanceType?: SpotInstanceType | undefined; /** *Deprecated.
* @public */ BlockDurationMinutes?: number | undefined; /** *The end date of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). Supported only for * persistent requests.
*For a persistent request, the request remains active until the
* ValidUntil date and time is reached. Otherwise, the request
* remains active until you cancel it.
For a one-time request, ValidUntil is not supported. The request
* remains active until all instances launch or you cancel the request.
Default: 7 days from the current date
* @public */ ValidUntil?: Date | undefined; /** *The behavior when a Spot Instance is interrupted. The default is
* terminate.
The market (purchasing) option for the instances.
* @public */ export interface LaunchTemplateInstanceMarketOptionsRequest { /** *The market type.
* @public */ MarketType?: MarketType | undefined; /** *The options for Spot Instances.
* @public */ SpotOptions?: LaunchTemplateSpotMarketOptionsRequest | undefined; } /** *Describes a license configuration.
* @public */ export interface LaunchTemplateLicenseConfigurationRequest { /** *The Amazon Resource Name (ARN) of the license configuration.
* @public */ LicenseConfigurationArn?: string | undefined; } /** *The maintenance options of your instance.
* @public */ export interface LaunchTemplateInstanceMaintenanceOptionsRequest { /** *Disables the automatic recovery behavior of your instance or sets it to default. For * more information, see Simplified automatic recovery.
* @public */ AutoRecovery?: LaunchTemplateAutoRecoveryState | undefined; } /** *The metadata options for the instance. For more information, see Use * instance metadata to manage your EC2 instance in the * Amazon EC2 User Guide.
* @public */ export interface LaunchTemplateInstanceMetadataOptionsRequest { /** *Indicates whether IMDSv2 is required.
*
* optional - IMDSv2 is optional. You can choose whether to send a
* session token in your instance metadata retrieval requests. If you retrieve IAM
* role credentials without a session token, you receive the IMDSv1 role
* credentials. If you retrieve IAM role credentials using a valid session token,
* you receive the IMDSv2 role credentials.
* required - IMDSv2 is required. You must send a session token in
* your instance metadata retrieval requests. With this option, retrieving the IAM
* role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not
* available.
Default: If the value of ImdsSupport for the Amazon Machine Image (AMI)
* for your instance is v2.0, the default is required.
The desired HTTP PUT response hop limit for instance metadata requests. The larger the * number, the further instance metadata requests can travel.
*Default: 1
*
Possible values: Integers from 1 to 64
* @public */ HttpPutResponseHopLimit?: number | undefined; /** *Enables or disables the HTTP metadata endpoint on your instances. If the parameter is
* not specified, the default state is enabled.
If you specify a value of disabled, you will not be able to access
* your instance metadata.
Enables or disables the IPv6 endpoint for the instance metadata service.
*Default: disabled
*
Set to enabled to allow access to instance tags from the instance
* metadata. Set to disabled to turn off access to instance tags from the
* instance metadata. For more information, see View tags for your EC2
* instances using instance metadata.
Default: disabled
*
Describes the monitoring for the instance.
* @public */ export interface LaunchTemplatesMonitoringRequest { /** *Specify true to enable detailed monitoring. Otherwise, basic monitoring
* is enabled.
A security group connection tracking specification request that enables you to set the * idle timeout for connection tracking on an Elastic network interface. For more * information, see Connection tracking timeouts in the * Amazon EC2 User Guide.
* @public */ export interface ConnectionTrackingSpecificationRequest { /** *Timeout (in seconds) for idle TCP * connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 * days). Default: 432000 seconds. Recommended: Less than 432000 seconds.
* @public */ TcpEstablishedTimeout?: number | undefined; /** *Timeout (in seconds) for idle UDP * flows classified as streams which have seen more than one request-response * transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 * seconds.
* @public */ UdpStreamTimeout?: number | undefined; /** *Timeout (in seconds) for idle UDP flows that * have seen traffic only in a single direction or a single request-response * transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds.
* @public */ UdpTimeout?: number | undefined; } /** *Configures ENA Express for UDP network traffic from your launch template.
* @public */ export interface EnaSrdUdpSpecificationRequest { /** *Indicates whether UDP traffic uses ENA Express for your instance. To ensure that UDP
* traffic can use ENA Express when you launch an instance, you must also set EnaSrdEnabled in the EnaSrdSpecificationRequest to true.
Launch instances with ENA Express settings configured from your launch * template.
* @public */ export interface EnaSrdSpecificationRequest { /** *Specifies whether ENA Express is enabled for the network interface when you launch an * instance.
* @public */ EnaSrdEnabled?: boolean | undefined; /** *Contains ENA Express settings for UDP network traffic for the network interface * attached to the instance.
* @public */ EnaSrdUdpSpecification?: EnaSrdUdpSpecificationRequest | undefined; } /** *Describes the IPv4 prefix option for a network interface.
* @public */ export interface Ipv4PrefixSpecificationRequest { /** *The IPv4 prefix. For information, see * Assigning prefixes to network interfaces in the * Amazon EC2 User Guide.
* @public */ Ipv4Prefix?: string | undefined; } /** *Describes an IPv6 address.
* @public */ export interface InstanceIpv6AddressRequest { /** *The IPv6 address.
* @public */ Ipv6Address?: string | undefined; } /** *Describes the IPv6 prefix option for a network interface.
* @public */ export interface Ipv6PrefixSpecificationRequest { /** *The IPv6 prefix.
* @public */ Ipv6Prefix?: string | undefined; } /** *Describes a secondary private IPv4 address for a network interface.
* @public */ export interface PrivateIpAddressSpecification { /** *Indicates whether the private IPv4 address is the primary private IPv4 address. Only * one IPv4 address can be designated as primary.
* @public */ Primary?: boolean | undefined; /** *The private IPv4 address.
* @public */ PrivateIpAddress?: string | undefined; } /** *The parameters for a network interface.
* @public */ export interface LaunchTemplateInstanceNetworkInterfaceSpecificationRequest { /** *Associates a Carrier IP address with eth0 for a new network interface.
*Use this option when you launch an instance in a Wavelength Zone and want to associate * a Carrier IP address with the network interface. For more information about Carrier IP * addresses, see Carrier IP addresses in the Wavelength Developer * Guide.
* @public */ AssociateCarrierIpAddress?: boolean | undefined; /** *Associates a public IPv4 address with eth0 for a new network interface.
*Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses * associated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.
* @public */ AssociatePublicIpAddress?: boolean | undefined; /** *Indicates whether the network interface is deleted when the instance is * terminated.
* @public */ DeleteOnTermination?: boolean | undefined; /** *A description for the network interface.
* @public */ Description?: string | undefined; /** *The device index for the network interface attachment. The primary network interface
* has a device index of 0. Each network interface is of type interface, you
* must specify a device index. If you create a launch template that includes secondary
* network interfaces but not a primary network interface, then you must add a primary
* network interface as a launch parameter when you launch an instance from the
* template.
The IDs of one or more security groups.
* @public */ Groups?: string[] | undefined; /** *The type of network interface. To create an Elastic Fabric Adapter (EFA), specify
* efa or efa. For more information, see Elastic Fabric Adapter for AI/ML
* and HPC workloads on Amazon EC2 in the
* Amazon EC2 User Guide.
If you are not creating an EFA, specify interface or omit this
* parameter.
If you specify efa-only, do not assign any IP addresses to the network
* interface. EFA-only network interfaces do not support IP addresses.
Valid values: interface | efa | efa-only
*
The number of IPv6 addresses to assign to a network interface. Amazon EC2 * automatically selects the IPv6 addresses from the subnet range. You can't use this * option if specifying specific IPv6 addresses.
* @public */ Ipv6AddressCount?: number | undefined; /** *One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You * can't use this option if you're specifying a number of IPv6 addresses.
* @public */ Ipv6Addresses?: InstanceIpv6AddressRequest[] | undefined; /** *The ID of the network interface.
* @public */ NetworkInterfaceId?: string | undefined; /** *The primary private IPv4 address of the network interface.
* @public */ PrivateIpAddress?: string | undefined; /** *One or more private IPv4 addresses.
* @public */ PrivateIpAddresses?: PrivateIpAddressSpecification[] | undefined; /** *The number of secondary private IPv4 addresses to assign to a network * interface.
* @public */ SecondaryPrivateIpAddressCount?: number | undefined; /** *The ID of the subnet for the network interface.
* @public */ SubnetId?: string | undefined; /** *The index of the network card. Some instance types support multiple network cards. The * primary network interface must be assigned to network card index 0. The default is * network card index 0.
* @public */ NetworkCardIndex?: number | undefined; /** *One or more IPv4 prefixes to be assigned to the network interface. You cannot use this
* option if you use the Ipv4PrefixCount option.
The number of IPv4 prefixes to be automatically assigned to the network interface. You
* cannot use this option if you use the Ipv4Prefix option.
One or more IPv6 prefixes to be assigned to the network interface. You cannot use this
* option if you use the Ipv6PrefixCount option.
The number of IPv6 prefixes to be automatically assigned to the network interface. You
* cannot use this option if you use the Ipv6Prefix option.
The primary IPv6 address of the network interface. When you enable an IPv6 GUA address * to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the * instance is terminated or the network interface is detached. For more information about * primary IPv6 addresses, see RunInstances.
* @public */ PrimaryIpv6?: boolean | undefined; /** *Configure ENA Express settings for your launch template.
* @public */ EnaSrdSpecification?: EnaSrdSpecificationRequest | undefined; /** *A security group connection tracking specification that enables you to set the timeout * for connection tracking on an Elastic network interface. For more information, see * Idle connection tracking timeout in the * Amazon EC2 User Guide.
* @public */ ConnectionTrackingSpecification?: ConnectionTrackingSpecificationRequest | undefined; /** *The number of ENA queues to be created with the instance.
* @public */ EnaQueueCount?: number | undefined; } /** *When you configure network performance options in your launch template, your instance * is geared for performance improvements based on the workload that it runs as soon as * it's available.
* @public */ export interface LaunchTemplateNetworkPerformanceOptionsRequest { /** *Specify the bandwidth weighting option to boost the associated type of baseline * bandwidth, as follows:
*This option uses the standard bandwidth configuration for your instance * type.
*This option boosts your networking baseline bandwidth and reduces your EBS * baseline bandwidth.
*This option boosts your EBS baseline bandwidth and reduces your networking * baseline bandwidth.
*The service provider that manages the resource.
* @public */ export interface OperatorRequest { /** *The service provider that manages the resource.
* @public */ Principal?: string | undefined; } /** *Describes the placement of an instance.
* @public */ export interface LaunchTemplatePlacementRequest { /** *The Availability Zone for the instance.
*Either AvailabilityZone or AvailabilityZoneId can be specified, but not both
The ID of the Availability Zone for the instance.
*Either AvailabilityZone or AvailabilityZoneId can be specified, but not both
The affinity setting for an instance on a Dedicated Host.
* @public */ Affinity?: string | undefined; /** *The name of the placement group for the instance.
* @public */ GroupName?: string | undefined; /** *The ID of the Dedicated Host for the instance.
* @public */ HostId?: string | undefined; /** *The tenancy of the instance. An instance with a tenancy of dedicated runs on * single-tenant hardware.
* @public */ Tenancy?: Tenancy | undefined; /** *Reserved for future use.
* @public */ SpreadDomain?: string | undefined; /** *The ARN of the host resource group in which to launch the instances. If you specify a
* host resource group ARN, omit the Tenancy parameter or
* set it to host.
The number of the partition the instance should launch in. Valid only if the placement
* group strategy is set to partition.
The Group Id of a placement group. You must specify the Placement Group Group Id to launch an instance in a shared placement * group.
* @public */ GroupId?: string | undefined; } /** *Describes the options for instance hostnames.
* @public */ export interface LaunchTemplatePrivateDnsNameOptionsRequest { /** *The type of hostname for Amazon EC2 instances. For IPv4 only subnets, an instance DNS name * must be based on the instance IPv4 address. For IPv6 native subnets, an instance DNS * name must be based on the instance ID. For dual-stack subnets, you can specify whether * DNS names use the instance IPv4 address or the instance ID.
* @public */ HostnameType?: HostnameType | undefined; /** *Indicates whether to respond to DNS queries for instance hostnames with DNS A * records.
* @public */ EnableResourceNameDnsARecord?: boolean | undefined; /** *Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA * records.
* @public */ EnableResourceNameDnsAAAARecord?: boolean | undefined; } /** *Describes a private IPv4 address specification for a secondary interface request.
* @public */ export interface SecondaryInterfacePrivateIpAddressSpecificationRequest { /** *The private IPv4 address.
* @public */ PrivateIpAddress?: string | undefined; } /** *Describes a secondary interface specification for a launch template request.
* @public */ export interface LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest { /** *Indicates whether the secondary interface is deleted when the instance is terminated.
*The only supported value for this field is true.
The device index for the secondary interface attachment.
* @public */ DeviceIndex?: number | undefined; /** *The private IPv4 addresses to assign to the secondary interface.
* @public */ PrivateIpAddresses?: SecondaryInterfacePrivateIpAddressSpecificationRequest[] | undefined; /** *The number of private IPv4 addresses to assign to the secondary interface.
* @public */ PrivateIpAddressCount?: number | undefined; /** *The ID of the secondary subnet.
* @public */ SecondarySubnetId?: string | undefined; /** *The type of secondary interface.
* @public */ InterfaceType?: SecondaryInterfaceType | undefined; /** *The index of the network card.
* @public */ NetworkCardIndex?: number | undefined; } /** *The tags specification for the resources that are created during instance * launch.
* @public */ export interface LaunchTemplateTagSpecificationRequest { /** *The type of resource to tag.
*Valid Values lists all resource types for Amazon EC2 that can be tagged. When you
* create a launch template, you can specify tags for the following resource types only:
* instance | volume |
* network-interface | spot-instances-request. If the instance
* does not include the resource type that you specify, the instance launch fails. For
* example, not all instance types include a volume.
To tag a resource after it has been created, see CreateTags.
* @public */ ResourceType?: ResourceType | undefined; /** *The tags to apply to the resource.
* @public */ Tags?: Tag[] | undefined; } /** *The information to include in the launch template.
*You must specify at least one parameter for the launch template data.
*The ID of the kernel.
*We recommend that you use PV-GRUB instead of kernels and RAM disks. For more * information, see User provided kernels in the * Amazon Linux 2 User Guide.
*Indicates whether the instance is optimized for Amazon EBS I/O. This optimization * provides dedicated throughput to Amazon EBS and an optimized configuration stack to * provide optimal Amazon EBS I/O performance. This optimization isn't available with all * instance types. Additional usage charges apply when using an EBS-optimized * instance.
* @public */ EbsOptimized?: boolean | undefined; /** *The name or Amazon Resource Name (ARN) of an IAM instance profile.
* @public */ IamInstanceProfile?: LaunchTemplateIamInstanceProfileSpecificationRequest | undefined; /** *The block device mapping.
* @public */ BlockDeviceMappings?: LaunchTemplateBlockDeviceMappingRequest[] | undefined; /** *The network interfaces for the instance.
* @public */ NetworkInterfaces?: LaunchTemplateInstanceNetworkInterfaceSpecificationRequest[] | undefined; /** *The ID of the AMI in the format ami-0ac394d6a3example.
Alternatively, you can specify a Systems Manager parameter, using one of the following * formats. The Systems Manager parameter will resolve to an AMI ID on launch.
*To reference a public parameter:
*
* resolve:ssm:public-parameter
*
*
To reference a parameter stored in the same account:
*
* resolve:ssm:parameter-name
*
*
* resolve:ssm:parameter-name:version-number
*
*
* resolve:ssm:parameter-name:label
*
*
To reference a parameter shared from another Amazon Web Services account:
*
* resolve:ssm:parameter-ARN
*
*
* resolve:ssm:parameter-ARN:version-number
*
*
* resolve:ssm:parameter-ARN:label
*
*
For more information, see Use a Systems Manager parameter instead of an AMI ID in the * Amazon EC2 User Guide.
*If the launch template will be used for an EC2 Fleet or Spot Fleet, note the * following:
*Only EC2 Fleets of type instant support specifying a Systems
* Manager parameter.
For EC2 Fleets of type maintain or request, or
* for Spot Fleets, you must specify the AMI ID.
The instance type. For more information, see Amazon EC2 instance types in * the Amazon EC2 User Guide.
*If you specify InstanceType, you can't specify
* InstanceRequirements.
The name of the key pair. You can create a key pair using CreateKeyPair or * ImportKeyPair.
*If you do not specify a key pair, you can't connect to the instance unless you * choose an AMI that is configured to allow users another way to log in.
*The monitoring for the instance.
* @public */ Monitoring?: LaunchTemplatesMonitoringRequest | undefined; /** *The placement for the instance.
* @public */ Placement?: LaunchTemplatePlacementRequest | undefined; /** *The ID of the RAM disk.
*We recommend that you use PV-GRUB instead of kernels and RAM disks. For more * information, see User provided * kernels in the Amazon EC2 User Guide.
*Indicates whether termination protection is enabled for the instance. The default is
* false, which means that you can terminate the instance using the Amazon EC2
* console, command line tools, or API. You can enable termination protection when you
* launch an instance, while the instance is running, or while the instance is
* stopped.
Indicates whether an instance stops or terminates when you initiate shutdown from the * instance (using the operating system command for system shutdown).
*Default: stop
*
The user data to make available to the instance. You must provide base64-encoded text. * User data is limited to 16 KB. For more information, see Run commands when you launch an EC2 * instance with user data input in the * Amazon EC2 User Guide.
*If you are creating the launch template for use with Batch, the user * data must be provided in the MIME multi-part archive format. For more information, see Amazon EC2 user data in launch templates in the * Batch User Guide.
* @public */ UserData?: string | undefined; /** *The tags to apply to the resources that are created during instance launch. These tags * are not applied to the launch template.
* @public */ TagSpecifications?: LaunchTemplateTagSpecificationRequest[] | undefined; /** *Deprecated.
*Amazon Elastic Graphics reached end of life on January 8, 2024.
*Amazon Elastic Inference is no longer available.
*An elastic inference accelerator to associate with the instance. Elastic inference * accelerators are a resource you can attach to your Amazon EC2 instances to accelerate * your Deep Learning (DL) inference workloads.
*You cannot specify accelerators from different generations in the same request.
* * @deprecated (since 2024-01-08) Specifying Elastic Inference accelerators is no longer supported on the RunInstances API. * @public */ ElasticInferenceAccelerators?: LaunchTemplateElasticInferenceAccelerator[] | undefined; /** *The IDs of the security groups.
*If you specify a network interface, you must specify any security groups as part of * the network interface instead of using this parameter.
* @public */ SecurityGroupIds?: string[] | undefined; /** *The names of the security groups. For a nondefault VPC, you must use security group * IDs instead.
*If you specify a network interface, you must specify any security groups as part of * the network interface instead of using this parameter.
* @public */ SecurityGroups?: string[] | undefined; /** *The market (purchasing) option for the instances.
* @public */ InstanceMarketOptions?: LaunchTemplateInstanceMarketOptionsRequest | undefined; /** *The credit option for CPU usage of the instance. Valid only for T instances.
* @public */ CreditSpecification?: CreditSpecificationRequest | undefined; /** *The CPU options for the instance. For more information, see CPU * options for Amazon EC2 instances in the * Amazon EC2 User Guide.
* @public */ CpuOptions?: LaunchTemplateCpuOptionsRequest | undefined; /** *The Capacity Reservation targeting option. If you do not specify this parameter, the
* instance's Capacity Reservation preference defaults to open, which enables
* it to run in any open Capacity Reservation that has matching attributes (instance type,
* platform, Availability Zone).
The license configurations.
* @public */ LicenseSpecifications?: LaunchTemplateLicenseConfigurationRequest[] | undefined; /** *Indicates whether an instance is enabled for hibernation. This parameter is valid only * if the instance meets the hibernation * prerequisites. For more information, see Hibernate your Amazon EC2 instance * in the Amazon EC2 User Guide.
* @public */ HibernationOptions?: LaunchTemplateHibernationOptionsRequest | undefined; /** *The metadata options for the instance. For more information, see Configure * the Instance Metadata Service options in the * Amazon EC2 User Guide.
* @public */ MetadataOptions?: LaunchTemplateInstanceMetadataOptionsRequest | undefined; /** *Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For more * information, see What is Nitro Enclaves? in the * Amazon Web Services Nitro Enclaves User Guide.
*You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same instance.
* @public */ EnclaveOptions?: LaunchTemplateEnclaveOptionsRequest | undefined; /** *The attributes for the instance types. When you specify instance attributes, Amazon EC2 will * identify instance types with these attributes.
*You must specify VCpuCount and MemoryMiB. All other attributes
* are optional. Any unspecified optional attribute is set to its default.
When you specify multiple attributes, you get instance types that satisfy all of the * specified attributes. If you specify multiple values for an attribute, you get instance * types that satisfy any of the specified values.
*To limit the list of instance types from which Amazon EC2 can identify matching instance types, * you can use one of the following parameters, but not both in the same request:
*
* AllowedInstanceTypes - The instance types to include in the list. All
* other instance types are ignored, even if they match your specified attributes.
* ExcludedInstanceTypes - The instance types to exclude from the list,
* even if they match your specified attributes.
If you specify InstanceRequirements, you can't specify
* InstanceType.
Attribute-based instance type selection is only supported when using Auto Scaling
* groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in
* the launch instance
* wizard, or with the RunInstances API or
* AWS::EC2::Instance Amazon Web Services CloudFormation resource, you can't specify InstanceRequirements.
For more information, see Specify attributes for instance type selection for EC2 Fleet or Spot Fleet and Spot * placement score in the Amazon EC2 User Guide.
* @public */ InstanceRequirements?: InstanceRequirementsRequest | undefined; /** *The options for the instance hostname. The default values are inherited from the * subnet.
* @public */ PrivateDnsNameOptions?: LaunchTemplatePrivateDnsNameOptionsRequest | undefined; /** *The maintenance options for the instance.
* @public */ MaintenanceOptions?: LaunchTemplateInstanceMaintenanceOptionsRequest | undefined; /** *Indicates whether to enable the instance for stop protection. For more information, * see Enable stop protection for your EC2 instances in the * Amazon EC2 User Guide.
* @public */ DisableApiStop?: boolean | undefined; /** *The entity that manages the launch template.
* @public */ Operator?: OperatorRequest | undefined; /** *Contains launch template settings to boost network performance for the type of * workload that runs on your instance.
* @public */ NetworkPerformanceOptions?: LaunchTemplateNetworkPerformanceOptionsRequest | undefined; /** *The secondary interfaces to associate with instances launched from the template.
* @public */ SecondaryInterfaces?: LaunchTemplateInstanceSecondaryInterfaceSpecificationRequest[] | undefined; } /** * @public */ export interface CreateLaunchTemplateRequest { /** *Checks whether you have the required permissions for the action, without actually
* making the request, and provides an error response. If you have the required
* permissions, the error response is DryRunOperation. Otherwise, it is
* UnauthorizedOperation.
Unique, case-sensitive identifier you provide to ensure the idempotency of the * request. If a client token isn't specified, a randomly generated token is used in the * request to ensure idempotency.
*For more information, see Ensuring * idempotency.
*Constraint: Maximum 128 ASCII characters.
* @public */ ClientToken?: string | undefined; /** *A name for the launch template.
* @public */ LaunchTemplateName: string | undefined; /** *A description for the first version of the launch template.
* @public */ VersionDescription?: string | undefined; /** *The information for the launch template.
* @public */ LaunchTemplateData: RequestLaunchTemplateData | undefined; /** *Reserved for internal use.
* @public */ Operator?: OperatorRequest | undefined; /** *The tags to apply to the launch template on creation. To tag the launch template, the
* resource type must be launch-template.
To specify the tags for the resources that are created when an instance is launched,
* you must use the TagSpecifications parameter in the launch template
* data structure.
Describes a launch template.
* @public */ export interface LaunchTemplate { /** *The ID of the launch template.
* @public */ LaunchTemplateId?: string | undefined; /** *The name of the launch template.
* @public */ LaunchTemplateName?: string | undefined; /** *The time launch template was created.
* @public */ CreateTime?: Date | undefined; /** *The principal that created the launch template.
* @public */ CreatedBy?: string | undefined; /** *The version number of the default version of the launch template.
* @public */ DefaultVersionNumber?: number | undefined; /** *The version number of the latest version of the launch template.
* @public */ LatestVersionNumber?: number | undefined; /** *The tags for the launch template.
* @public */ Tags?: Tag[] | undefined; /** *The entity that manages the launch template.
* @public */ Operator?: OperatorResponse | undefined; } /** *The error code and error message that is returned for a parameter or parameter * combination that is not valid when a new launch template or new version of a launch * template is created.
* @public */ export interface ValidationError { /** *The error code that indicates why the parameter or parameter combination is not valid. * For more information about error codes, see Error codes.
* @public */ Code?: string | undefined; /** *The error message that describes why the parameter or parameter combination is not * valid. For more information about error messages, see Error codes.
* @public */ Message?: string | undefined; } /** *The error codes and error messages that are returned for the parameters or parameter * combinations that are not valid when a new launch template or new version of a launch * template is created.
* @public */ export interface ValidationWarning { /** *The error codes and error messages.
* @public */ Errors?: ValidationError[] | undefined; } /** * @public */ export interface CreateLaunchTemplateResult { /** *Information about the launch template.
* @public */ LaunchTemplate?: LaunchTemplate | undefined; /** *If the launch template contains parameters or parameter combinations that are not * valid, an error code and an error message are returned for each issue that's * found.
* @public */ Warning?: ValidationWarning | undefined; } /** * @public */ export interface CreateLaunchTemplateVersionRequest { /** *Checks whether you have the required permissions for the action, without actually
* making the request, and provides an error response. If you have the required
* permissions, the error response is DryRunOperation. Otherwise, it is
* UnauthorizedOperation.
Unique, case-sensitive identifier you provide to ensure the idempotency of the * request. If a client token isn't specified, a randomly generated token is used in the * request to ensure idempotency.
*For more information, see Ensuring * idempotency.
*Constraint: Maximum 128 ASCII characters.
* @public */ ClientToken?: string | undefined; /** *The ID of the launch template.
*You must specify either the launch template ID or the launch template name, but not * both.
* @public */ LaunchTemplateId?: string | undefined; /** *The name of the launch template.
*You must specify either the launch template ID or the launch template name, but not * both.
* @public */ LaunchTemplateName?: string | undefined; /** *The version of the launch template on which to base the new version. Snapshots applied * to the block device mapping are ignored when creating a new version unless they are * explicitly included.
*If you specify this parameter, the new version inherits the launch parameters from the * source version. If you specify additional launch parameters for the new version, they * overwrite any corresponding launch parameters inherited from the source version.
*If you omit this parameter, the new version contains only the launch parameters that * you specify for the new version.
* @public */ SourceVersion?: string | undefined; /** *A description for the version of the launch template.
* @public */ VersionDescription?: string | undefined; /** *The information for the launch template.
* @public */ LaunchTemplateData: RequestLaunchTemplateData | undefined; /** *If true, and if a Systems Manager parameter is specified for
* ImageId, the AMI ID is displayed in the response for
* imageID. For more information, see Use a Systems Manager parameter instead of an AMI ID in the
* Amazon EC2 User Guide.
Default: false
*
Describes a block device for an EBS volume.
* @public */ export interface LaunchTemplateEbsBlockDevice { /** *Indicates whether the EBS volume is encrypted.
* @public */ Encrypted?: boolean | undefined; /** *Indicates whether the EBS volume is deleted on instance termination.
* @public */ DeleteOnTermination?: boolean | undefined; /** *The number of I/O operations per second (IOPS) that the volume supports.
* @public */ Iops?: number | undefined; /** *Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.
* @public */ KmsKeyId?: string | undefined; /** *The ID of the snapshot.
* @public */ SnapshotId?: string | undefined; /** *The size of the volume, in GiB.
* @public */ VolumeSize?: number | undefined; /** *The volume type.
* @public */ VolumeType?: VolumeType | undefined; /** *The throughput that the volume supports, in MiB/s.
* @public */ Throughput?: number | undefined; /** *The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume, in MiB/s.
* If no volume initialization rate was specified, the value is null.
The index of the EBS card. Some instance types support multiple EBS cards. The default EBS card index is 0.
* @public */ EbsCardIndex?: number | undefined; } /** *Describes a block device mapping.
* @public */ export interface LaunchTemplateBlockDeviceMapping { /** *The device name.
* @public */ DeviceName?: string | undefined; /** *The virtual device name (ephemeralN).
* @public */ VirtualName?: string | undefined; /** *Information about the block device for an EBS volume.
* @public */ Ebs?: LaunchTemplateEbsBlockDevice | undefined; /** *To omit the device from the block device mapping, specify an empty string.
* @public */ NoDevice?: string | undefined; } /** *Describes a target Capacity Reservation or Capacity Reservation group.
* @public */ export interface CapacityReservationTargetResponse { /** *The ID of the targeted Capacity Reservation.
* @public */ CapacityReservationId?: string | undefined; /** *The ARN of the targeted Capacity Reservation group.
* @public */ CapacityReservationResourceGroupArn?: string | undefined; } /** *Information about the Capacity Reservation targeting option.
* @public */ export interface LaunchTemplateCapacityReservationSpecificationResponse { /** *Indicates the instance's Capacity Reservation preferences. Possible preferences * include:
*
* open - The instance can run in any open Capacity
* Reservation that has matching attributes (instance type, platform, Availability
* Zone).
* none - The instance avoids running in a Capacity Reservation even
* if one is available. The instance runs in On-Demand capacity.
Information about the target Capacity Reservation or Capacity Reservation * group.
* @public */ CapacityReservationTarget?: CapacityReservationTargetResponse | undefined; } /** *The CPU options for the instance.
* @public */ export interface LaunchTemplateCpuOptions { /** *The number of CPU cores for the instance.
* @public */ CoreCount?: number | undefined; /** *The number of threads per CPU core.
* @public */ ThreadsPerCore?: number | undefined; /** *Indicates whether the instance is enabled for AMD SEV-SNP. For more information, see * AMD SEV-SNP * for Amazon EC2 instances.
* @public */ AmdSevSnp?: AmdSevSnpSpecification | undefined; /** *Indicates whether the instance is enabled for nested virtualization.
* @public */ NestedVirtualization?: NestedVirtualizationSpecification | undefined; } /** *Describes the credit option for CPU usage of a T instance.
* @public */ export interface CreditSpecification { /** *The credit option for CPU usage of a T instance.
*Valid values: standard | unlimited
*
Deprecated.
*Amazon Elastic Graphics reached end of life on January 8, 2024.
*Deprecated.
*Amazon Elastic Graphics reached end of life on January 8, 2024.
*Amazon Elastic Inference is no longer available.
*Describes an elastic inference accelerator.
* @public */ export interface LaunchTemplateElasticInferenceAcceleratorResponse { /** *The type of elastic inference accelerator. The possible values are eia1.medium, * eia1.large, and eia1.xlarge.
* @public */ Type?: string | undefined; /** *The number of elastic inference accelerators to attach to the instance.
* @public */ Count?: number | undefined; } /** *Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.
* @public */ export interface LaunchTemplateEnclaveOptions { /** *If this parameter is set to true, the instance is enabled for Amazon Web Services Nitro
* Enclaves; otherwise, it is not enabled for Amazon Web Services Nitro Enclaves.
Indicates whether an instance is configured for hibernation.
* @public */ export interface LaunchTemplateHibernationOptions { /** *If this parameter is set to true, the instance is enabled for
* hibernation; otherwise, it is not enabled for hibernation.
Describes an IAM instance profile.
* @public */ export interface LaunchTemplateIamInstanceProfileSpecification { /** *The Amazon Resource Name (ARN) of the instance profile.
* @public */ Arn?: string | undefined; /** *The name of the instance profile.
* @public */ Name?: string | undefined; } /** *The options for Spot Instances.
* @public */ export interface LaunchTemplateSpotMarketOptions { /** *The maximum hourly price you're willing to pay for a Spot Instance. We do not
* recommend using this parameter because it can lead to increased interruptions. If you do
* not specify this parameter, you will pay the current Spot price. If you do specify this
* parameter, it must be more than USD $0.001. Specifying a value below USD $0.001 will
* result in an InvalidParameterValue error message when the launch template
* is used to launch an instance.
The Spot Instance request type.
* @public */ SpotInstanceType?: SpotInstanceType | undefined; /** *The required duration for the Spot Instances (also known as Spot blocks), in minutes. * This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).
* @public */ BlockDurationMinutes?: number | undefined; /** *The end date of the request. For a one-time request, the request remains active until * all instances launch, the request is canceled, or this date is reached. If the request * is persistent, it remains active until it is canceled or this date and time is * reached.
* @public */ ValidUntil?: Date | undefined; /** *The behavior when a Spot Instance is interrupted.
* @public */ InstanceInterruptionBehavior?: InstanceInterruptionBehavior | undefined; } /** *The market (purchasing) option for the instances.
* @public */ export interface LaunchTemplateInstanceMarketOptions { /** *The market type.
* @public */ MarketType?: MarketType | undefined; /** *The options for Spot Instances.
* @public */ SpotOptions?: LaunchTemplateSpotMarketOptions | undefined; } /** *Describes a license configuration.
* @public */ export interface LaunchTemplateLicenseConfiguration { /** *The Amazon Resource Name (ARN) of the license configuration.
* @public */ LicenseConfigurationArn?: string | undefined; } /** *The maintenance options of your instance.
* @public */ export interface LaunchTemplateInstanceMaintenanceOptions { /** *Disables the automatic recovery behavior of your instance or sets it to * default.
* @public */ AutoRecovery?: LaunchTemplateAutoRecoveryState | undefined; } /** *The metadata options for the instance. For more information, see Use * instance metadata to manage your EC2 instance in the * Amazon EC2 User Guide.
* @public */ export interface LaunchTemplateInstanceMetadataOptions { /** *The state of the metadata option changes.
*
* pending - The metadata options are being updated and the instance is not
* ready to process metadata traffic with the new selection.
* applied - The metadata options have been successfully applied on the
* instance.
Indicates whether IMDSv2 is required.
*
* optional - IMDSv2 is optional. You can choose whether to send a
* session token in your instance metadata retrieval requests. If you retrieve IAM
* role credentials without a session token, you receive the IMDSv1 role
* credentials. If you retrieve IAM role credentials using a valid session token,
* you receive the IMDSv2 role credentials.
* required - IMDSv2 is required. You must send a session token in
* your instance metadata retrieval requests. With this option, retrieving the IAM
* role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not
* available.
The desired HTTP PUT response hop limit for instance metadata requests. The larger the * number, the further instance metadata requests can travel.
*Possible values: Integers from 1 to 64
* @public */ HttpPutResponseHopLimit?: number | undefined; /** *Enables or disables the HTTP metadata endpoint on your instances. If the parameter is
* not specified, the default state is enabled.
If you specify a value of disabled, you will not be able to access
* your instance metadata.
Enables or disables the IPv6 endpoint for the instance metadata service.
*Default: disabled
*
Set to enabled to allow access to instance tags from the instance
* metadata. Set to disabled to turn off access to instance tags from the
* instance metadata. For more information, see View tags for your EC2
* instances using instance metadata.
Default: disabled
*
Describes the monitoring for the instance.
* @public */ export interface LaunchTemplatesMonitoring { /** *Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is * enabled.
* @public */ Enabled?: boolean | undefined; } /** *A security group connection tracking specification that enables you to set the idle * timeout for connection tracking on an Elastic network interface. For more information, * see Connection tracking timeouts in the * Amazon EC2 User Guide.
* @public */ export interface ConnectionTrackingSpecification { /** *Timeout (in seconds) for idle TCP * connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 * days). Default: 432000 seconds. Recommended: Less than 432000 seconds.
* @public */ TcpEstablishedTimeout?: number | undefined; /** *Timeout (in seconds) for idle UDP flows that * have seen traffic only in a single direction or a single request-response * transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds.
* @public */ UdpTimeout?: number | undefined; /** *Timeout (in seconds) for idle UDP * flows classified as streams which have seen more than one request-response * transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 * seconds.
* @public */ UdpStreamTimeout?: number | undefined; } /** *ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic * automatically uses it. However, some UDP-based applications are designed to handle network packets that are * out of order, without a need for retransmission, such as live video broadcasting or other near-real-time * applications. For UDP traffic, you can specify whether to use ENA Express, based on your application * environment needs.
* @public */ export interface LaunchTemplateEnaSrdUdpSpecification { /** *Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, * you must first enable ENA Express.
* @public */ EnaSrdUdpEnabled?: boolean | undefined; } /** *ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the * maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. * With ENA Express, you can communicate between two EC2 instances in the same subnet within the same * account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.
*To improve the reliability of network packet delivery, ENA Express reorders network packets on the * receiving end by default. However, some UDP-based applications are designed to handle network packets * that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express * is enabled, you can specify whether UDP network traffic uses it.
* @public */ export interface LaunchTemplateEnaSrdSpecification { /** *Indicates whether ENA Express is enabled for the network interface.
* @public */ EnaSrdEnabled?: boolean | undefined; /** *Configures ENA Express for UDP network traffic.
* @public */ EnaSrdUdpSpecification?: LaunchTemplateEnaSrdUdpSpecification | undefined; } /** *Information about the IPv4 delegated prefixes assigned to a network interface.
* @public */ export interface Ipv4PrefixSpecificationResponse { /** *The IPv4 delegated prefixes assigned to the network interface.
* @public */ Ipv4Prefix?: string | undefined; } /** *Describes an IPv6 address.
* @public */ export interface InstanceIpv6Address { /** *The IPv6 address.
* @public */ Ipv6Address?: string | undefined; /** *Determines if an IPv6 address associated with a network interface is the primary IPv6 address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. * For more information, see RunInstances.
* @public */ IsPrimaryIpv6?: boolean | undefined; } /** *Information about the IPv6 delegated prefixes assigned to a network interface.
* @public */ export interface Ipv6PrefixSpecificationResponse { /** *The IPv6 delegated prefixes assigned to the network interface.
* @public */ Ipv6Prefix?: string | undefined; } /** *Describes a network interface.
* @public */ export interface LaunchTemplateInstanceNetworkInterfaceSpecification { /** *Indicates whether to associate a Carrier IP address with eth0 for a new network * interface.
*Use this option when you launch an instance in a Wavelength Zone and want to associate * a Carrier IP address with the network interface. For more information about Carrier IP * addresses, see Carrier IP address in the Wavelength Developer * Guide.
* @public */ AssociateCarrierIpAddress?: boolean | undefined; /** *Indicates whether to associate a public IPv4 address with eth0 for a new network * interface.
*Amazon Web Services charges for all public IPv4 addresses, including public IPv4 addresses * associated with running instances and Elastic IP addresses. For more information, see the Public IPv4 Address tab on the Amazon VPC pricing page.
* @public */ AssociatePublicIpAddress?: boolean | undefined; /** *Indicates whether the network interface is deleted when the instance is * terminated.
* @public */ DeleteOnTermination?: boolean | undefined; /** *A description for the network interface.
* @public */ Description?: string | undefined; /** *The device index for the network interface attachment.
* @public */ DeviceIndex?: number | undefined; /** *The IDs of one or more security groups.
* @public */ Groups?: string[] | undefined; /** *The type of network interface.
* @public */ InterfaceType?: string | undefined; /** *The number of IPv6 addresses for the network interface.
* @public */ Ipv6AddressCount?: number | undefined; /** *The IPv6 addresses for the network interface.
* @public */ Ipv6Addresses?: InstanceIpv6Address[] | undefined; /** *The ID of the network interface.
* @public */ NetworkInterfaceId?: string | undefined; /** *The primary private IPv4 address of the network interface.
* @public */ PrivateIpAddress?: string | undefined; /** *One or more private IPv4 addresses.
* @public */ PrivateIpAddresses?: PrivateIpAddressSpecification[] | undefined; /** *The number of secondary private IPv4 addresses for the network interface.
* @public */ SecondaryPrivateIpAddressCount?: number | undefined; /** *The ID of the subnet for the network interface.
* @public */ SubnetId?: string | undefined; /** *The index of the network card.
* @public */ NetworkCardIndex?: number | undefined; /** *One or more IPv4 prefixes assigned to the network interface.
* @public */ Ipv4Prefixes?: Ipv4PrefixSpecificationResponse[] | undefined; /** *The number of IPv4 prefixes that Amazon Web Services automatically assigned to the network * interface.
* @public */ Ipv4PrefixCount?: number | undefined; /** *One or more IPv6 prefixes assigned to the network interface.
* @public */ Ipv6Prefixes?: Ipv6PrefixSpecificationResponse[] | undefined; /** *The number of IPv6 prefixes that Amazon Web Services automatically assigned to the network * interface.
* @public */ Ipv6PrefixCount?: number | undefined; /** *The primary IPv6 address of the network interface. When you enable an IPv6 GUA address * to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the * instance is terminated or the network interface is detached. For more information about * primary IPv6 addresses, see RunInstances.
* @public */ PrimaryIpv6?: boolean | undefined; /** *Contains the ENA Express settings for instances launched from your launch * template.
* @public */ EnaSrdSpecification?: LaunchTemplateEnaSrdSpecification | undefined; /** *A security group connection tracking specification that enables you to set the timeout * for connection tracking on an Elastic network interface. For more information, see * Idle connection tracking timeout in the * Amazon EC2 User Guide.
* @public */ ConnectionTrackingSpecification?: ConnectionTrackingSpecification | undefined; /** *The number of ENA queues created with the instance.
* @public */ EnaQueueCount?: number | undefined; } /** *With network performance options, you can adjust your bandwidth preferences to meet * the needs of the workload that runs on your instance at launch.
* @public */ export interface LaunchTemplateNetworkPerformanceOptions { /** *When you configure network bandwidth weighting, you can boost baseline bandwidth for * either networking or EBS by up to 25%. The total available baseline bandwidth for your * instance remains the same. The default option uses the standard bandwidth configuration * for your instance type.
* @public */ BandwidthWeighting?: InstanceBandwidthWeighting | undefined; } /** *Describes the placement of an instance.
* @public */ export interface LaunchTemplatePlacement { /** *The Availability Zone of the instance.
* @public */ AvailabilityZone?: string | undefined; /** *The ID of the Availability Zone of the instance.
* @public */ AvailabilityZoneId?: string | undefined; /** *The affinity setting for the instance on the Dedicated Host.
* @public */ Affinity?: string | undefined; /** *The name of the placement group for the instance.
* @public */ GroupName?: string | undefined; /** *The ID of the Dedicated Host for the instance.
* @public */ HostId?: string | undefined; /** *The tenancy of the instance. An instance with a tenancy of dedicated runs
* on single-tenant hardware.
Reserved for future use.
* @public */ SpreadDomain?: string | undefined; /** *The ARN of the host resource group in which to launch the instances.
* @public */ HostResourceGroupArn?: string | undefined; /** *The number of the partition the instance should launch in. Valid only if the placement
* group strategy is set to partition.
The Group ID of the placement group. You must specify the Placement Group Group ID to launch an instance in a shared placement * group.
* @public */ GroupId?: string | undefined; } /** *Describes the options for instance hostnames.
* @public */ export interface LaunchTemplatePrivateDnsNameOptions { /** *The type of hostname to assign to an instance.
* @public */ HostnameType?: HostnameType | undefined; /** *Indicates whether to respond to DNS queries for instance hostnames with DNS A * records.
* @public */ EnableResourceNameDnsARecord?: boolean | undefined; /** *Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA * records.
* @public */ EnableResourceNameDnsAAAARecord?: boolean | undefined; } /** *Describes a private IPv4 address specification for a secondary interface.
* @public */ export interface SecondaryInterfacePrivateIpAddressSpecification { /** *The private IPv4 address.
* @public */ PrivateIpAddress?: string | undefined; } /** *Describes a secondary interface specification in a launch template.
* @public */ export interface LaunchTemplateInstanceSecondaryInterfaceSpecification { /** *Indicates whether the secondary interface is deleted when the instance is terminated.
*The only supported value for this field is true.
The device index for the secondary interface attachment.
* @public */ DeviceIndex?: number | undefined; /** *The private IPv4 addresses to assign to the secondary interface.
*If you specify privateIpAddresses you cannot specify privateIpAddressCount
*
The number of private IPv4 addresses to assign to the secondary interface.
*If you specify privateIpAddressCount you cannot specify privateIpAddresses
*
The ID of the secondary subnet.
* @public */ SecondarySubnetId?: string | undefined; /** *The type of secondary interface.
* @public */ InterfaceType?: SecondaryInterfaceType | undefined; /** *The index of the network card.
* @public */ NetworkCardIndex?: number | undefined; } /** *The tags specification for the launch template.
* @public */ export interface LaunchTemplateTagSpecification { /** *The type of resource to tag.
* @public */ ResourceType?: ResourceType | undefined; /** *The tags for the resource.
* @public */ Tags?: Tag[] | undefined; } /** *The information for a launch template.
* @public */ export interface ResponseLaunchTemplateData { /** *The ID of the kernel, if applicable.
* @public */ KernelId?: string | undefined; /** *Indicates whether the instance is optimized for Amazon EBS I/O.
* @public */ EbsOptimized?: boolean | undefined; /** *The IAM instance profile.
* @public */ IamInstanceProfile?: LaunchTemplateIamInstanceProfileSpecification | undefined; /** *The block device mappings.
* @public */ BlockDeviceMappings?: LaunchTemplateBlockDeviceMapping[] | undefined; /** *The network interfaces.
* @public */ NetworkInterfaces?: LaunchTemplateInstanceNetworkInterfaceSpecification[] | undefined; /** *The ID of the AMI or a Systems Manager parameter. The Systems Manager parameter will * resolve to the ID of the AMI at instance launch.
*The value depends on what you specified in the request. The possible values * are:
*If an AMI ID was specified in the request, then this is the AMI ID.
*If a Systems Manager parameter was specified in the request, and
* ResolveAlias was configured as true, then this is
* the AMI ID that the parameter is mapped to in the Parameter Store.
If a Systems Manager parameter was specified in the request, and
* ResolveAlias was configured as false, then this is
* the parameter value.
For more information, see Use a Systems Manager parameter instead of an AMI ID in the * Amazon EC2 User Guide.
* @public */ ImageId?: string | undefined; /** *The instance type.
* @public */ InstanceType?: _InstanceType | undefined; /** *The name of the key pair.
* @public */ KeyName?: string | undefined; /** *The monitoring for the instance.
* @public */ Monitoring?: LaunchTemplatesMonitoring | undefined; /** *The placement of the instance.
* @public */ Placement?: LaunchTemplatePlacement | undefined; /** *The ID of the RAM disk, if applicable.
* @public */ RamDiskId?: string | undefined; /** *If set to true, indicates that the instance cannot be terminated using
* the Amazon EC2 console, command line tool, or API.
Indicates whether an instance stops or terminates when you initiate shutdown from the * instance (using the operating system command for system shutdown).
* @public */ InstanceInitiatedShutdownBehavior?: ShutdownBehavior | undefined; /** *The user data for the instance.
* @public */ UserData?: string | undefined; /** *The tags that are applied to the resources that are created during instance * launch.
* @public */ TagSpecifications?: LaunchTemplateTagSpecification[] | undefined; /** *Deprecated.
*Amazon Elastic Graphics reached end of life on January 8, 2024.
*Amazon Elastic Inference is no longer available.
*An elastic inference accelerator to associate with the instance. Elastic inference * accelerators are a resource you can attach to your Amazon EC2 instances to accelerate * your Deep Learning (DL) inference workloads.
*You cannot specify accelerators from different generations in the same request.
* @public */ ElasticInferenceAccelerators?: LaunchTemplateElasticInferenceAcceleratorResponse[] | undefined; /** *The security group IDs.
* @public */ SecurityGroupIds?: string[] | undefined; /** *The security group names.
* @public */ SecurityGroups?: string[] | undefined; /** *The market (purchasing) option for the instances.
* @public */ InstanceMarketOptions?: LaunchTemplateInstanceMarketOptions | undefined; /** *The credit option for CPU usage of the instance.
* @public */ CreditSpecification?: CreditSpecification | undefined; /** *The CPU options for the instance. For more information, see CPU * options for Amazon EC2 instances in the * Amazon EC2 User Guide.
* @public */ CpuOptions?: LaunchTemplateCpuOptions | undefined; /** *Information about the Capacity Reservation targeting option.
* @public */ CapacityReservationSpecification?: LaunchTemplateCapacityReservationSpecificationResponse | undefined; /** *The license configurations.
* @public */ LicenseSpecifications?: LaunchTemplateLicenseConfiguration[] | undefined; /** *Indicates whether an instance is configured for hibernation. For more information, see * Hibernate * your Amazon EC2 instance in the Amazon EC2 User Guide.
* @public */ HibernationOptions?: LaunchTemplateHibernationOptions | undefined; /** *The metadata options for the instance. For more information, see Configure * the Instance Metadata Service options in the * Amazon EC2 User Guide.
* @public */ MetadataOptions?: LaunchTemplateInstanceMetadataOptions | undefined; /** *Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.
* @public */ EnclaveOptions?: LaunchTemplateEnclaveOptions | undefined; /** *The attributes for the instance types. When you specify instance attributes, Amazon EC2 will * identify instance types with these attributes.
*If you specify InstanceRequirements, you can't specify
* InstanceTypes.
The options for the instance hostname.
* @public */ PrivateDnsNameOptions?: LaunchTemplatePrivateDnsNameOptions | undefined; /** *The maintenance options for your instance.
* @public */ MaintenanceOptions?: LaunchTemplateInstanceMaintenanceOptions | undefined; /** *Indicates whether the instance is enabled for stop protection. For more information, * see Enable stop protection for your EC2 instances in the * Amazon EC2 User Guide.
* @public */ DisableApiStop?: boolean | undefined; /** *The entity that manages the launch template.
* @public */ Operator?: OperatorResponse | undefined; /** *Contains the launch template settings for network performance options for your * instance.
* @public */ NetworkPerformanceOptions?: LaunchTemplateNetworkPerformanceOptions | undefined; /** *The secondary interfaces associated with the launch template.
* @public */ SecondaryInterfaces?: LaunchTemplateInstanceSecondaryInterfaceSpecification[] | undefined; } /** *Describes a launch template version.
* @public */ export interface LaunchTemplateVersion { /** *The ID of the launch template.
* @public */ LaunchTemplateId?: string | undefined; /** *The name of the launch template.
* @public */ LaunchTemplateName?: string | undefined; /** *The version number.
* @public */ VersionNumber?: number | undefined; /** *The description for the version.
* @public */ VersionDescription?: string | undefined; /** *The time the version was created.
* @public */ CreateTime?: Date | undefined; /** *The principal that created the version.
* @public */ CreatedBy?: string | undefined; /** *Indicates whether the version is the default version.
* @public */ DefaultVersion?: boolean | undefined; /** *Information about the launch template.
* @public */ LaunchTemplateData?: ResponseLaunchTemplateData | undefined; /** *The entity that manages the launch template.
* @public */ Operator?: OperatorResponse | undefined; } /** * @public */ export interface CreateLaunchTemplateVersionResult { /** *Information about the launch template version.
* @public */ LaunchTemplateVersion?: LaunchTemplateVersion | undefined; /** *If the new version of the launch template contains parameters or parameter * combinations that are not valid, an error code and an error message are returned for * each issue that's found.
* @public */ Warning?: ValidationWarning | undefined; } /** * @public */ export interface CreateLocalGatewayRouteRequest { /** *The CIDR range used for destination matches. Routing decisions are based on * the most specific match.
* @public */ DestinationCidrBlock?: string | undefined; /** *The ID of the local gateway route table.
* @public */ LocalGatewayRouteTableId: string | undefined; /** *The ID of the virtual interface group.
* @public */ LocalGatewayVirtualInterfaceGroupId?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the network interface.
* @public */ NetworkInterfaceId?: string | undefined; /** *
* The ID of the prefix list. Use a prefix list in place of DestinationCidrBlock. You
* cannot use DestinationPrefixListId and DestinationCidrBlock in the same request.
*
Describes a route for a local gateway route table.
* @public */ export interface LocalGatewayRoute { /** *The CIDR block used for destination matches.
* @public */ DestinationCidrBlock?: string | undefined; /** *The ID of the virtual interface group.
* @public */ LocalGatewayVirtualInterfaceGroupId?: string | undefined; /** *The route type.
* @public */ Type?: LocalGatewayRouteType | undefined; /** *The state of the route.
* @public */ State?: LocalGatewayRouteState | undefined; /** *The ID of the local gateway route table.
* @public */ LocalGatewayRouteTableId?: string | undefined; /** *The Amazon Resource Name (ARN) of the local gateway route table.
* @public */ LocalGatewayRouteTableArn?: string | undefined; /** *The ID of the Amazon Web Services account that owns the local gateway route.
* @public */ OwnerId?: string | undefined; /** *The ID of the subnet.
* @public */ SubnetId?: string | undefined; /** *The ID of the customer-owned address pool.
* @public */ CoipPoolId?: string | undefined; /** *The ID of the network interface.
* @public */ NetworkInterfaceId?: string | undefined; /** ** The ID of the prefix list. *
* @public */ DestinationPrefixListId?: string | undefined; } /** * @public */ export interface CreateLocalGatewayRouteResult { /** *Information about the route.
* @public */ Route?: LocalGatewayRoute | undefined; } /** * @public */ export interface CreateLocalGatewayRouteTableRequest { /** ** The ID of the local gateway. *
* @public */ LocalGatewayId: string | undefined; /** ** The mode of the local gateway route table. *
* @public */ Mode?: LocalGatewayRouteTableMode | undefined; /** ** The tags assigned to the local gateway route table. *
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Describes a state change.
* @public */ export interface StateReason { /** *The reason code for the state change.
* @public */ Code?: string | undefined; /** *The message for the state change.
*
* Server.InsufficientInstanceCapacity: There was insufficient
* capacity available to satisfy the launch request.
* Server.InternalError: An internal error caused the instance to
* terminate during launch.
* Server.ScheduledStop: The instance was stopped due to a scheduled
* retirement.
* Server.SpotInstanceShutdown: The instance was stopped because the
* number of Spot requests with a maximum price equal to or higher than the Spot
* price exceeded available capacity or because of an increase in the Spot
* price.
* Server.SpotInstanceTermination: The instance was terminated
* because the number of Spot requests with a maximum price equal to or higher than
* the Spot price exceeded available capacity or because of an increase in the Spot
* price.
* Client.InstanceInitiatedShutdown: The instance was shut down
* from the operating system of the instance.
* Client.InstanceTerminated: The instance was terminated or
* rebooted during AMI creation.
* Client.InternalError: A client error caused the instance to
* terminate during launch.
* Client.InvalidSnapshot.NotFound: The specified snapshot was not
* found.
* Client.UserInitiatedHibernate: Hibernation was initiated on the
* instance.
* Client.UserInitiatedShutdown: The instance was shut down using
* the Amazon EC2 API.
* Client.VolumeLimitExceeded: The limit on the number of EBS
* volumes or total storage was exceeded. Decrease usage or request an increase in
* your account limits.
Describes a local gateway route table.
* @public */ export interface LocalGatewayRouteTable { /** *The ID of the local gateway route table.
* @public */ LocalGatewayRouteTableId?: string | undefined; /** *The Amazon Resource Name (ARN) of the local gateway route table.
* @public */ LocalGatewayRouteTableArn?: string | undefined; /** *The ID of the local gateway.
* @public */ LocalGatewayId?: string | undefined; /** *The Amazon Resource Name (ARN) of the Outpost.
* @public */ OutpostArn?: string | undefined; /** *The ID of the Amazon Web Services account that owns the local gateway route table.
* @public */ OwnerId?: string | undefined; /** *The state of the local gateway route table.
* @public */ State?: string | undefined; /** *The tags assigned to the local gateway route table.
* @public */ Tags?: Tag[] | undefined; /** *The mode of the local gateway route table.
* @public */ Mode?: LocalGatewayRouteTableMode | undefined; /** *Information about the state change.
* @public */ StateReason?: StateReason | undefined; } /** * @public */ export interface CreateLocalGatewayRouteTableResult { /** *Information about the local gateway route table.
* @public */ LocalGatewayRouteTable?: LocalGatewayRouteTable | undefined; } /** * @public */ export interface CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest { /** ** The ID of the local gateway route table. *
* @public */ LocalGatewayRouteTableId: string | undefined; /** ** The ID of the local gateway route table virtual interface group association. *
* @public */ LocalGatewayVirtualInterfaceGroupId: string | undefined; /** ** The tags assigned to the local gateway route table virtual interface group association. *
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Describes an association between a local gateway route table and a virtual interface group.
* @public */ export interface LocalGatewayRouteTableVirtualInterfaceGroupAssociation { /** *The ID of the association.
* @public */ LocalGatewayRouteTableVirtualInterfaceGroupAssociationId?: string | undefined; /** *The ID of the virtual interface group.
* @public */ LocalGatewayVirtualInterfaceGroupId?: string | undefined; /** *The ID of the local gateway.
* @public */ LocalGatewayId?: string | undefined; /** *The ID of the local gateway route table.
* @public */ LocalGatewayRouteTableId?: string | undefined; /** *The Amazon Resource Name (ARN) of the local gateway route table for the virtual interface group.
* @public */ LocalGatewayRouteTableArn?: string | undefined; /** *The ID of the Amazon Web Services account that owns the local gateway virtual interface group association.
* @public */ OwnerId?: string | undefined; /** *The state of the association.
* @public */ State?: string | undefined; /** *The tags assigned to the association.
* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult { /** *Information about the local gateway route table virtual interface group association.
* @public */ LocalGatewayRouteTableVirtualInterfaceGroupAssociation?: LocalGatewayRouteTableVirtualInterfaceGroupAssociation | undefined; } /** * @public */ export interface CreateLocalGatewayRouteTableVpcAssociationRequest { /** *The ID of the local gateway route table.
* @public */ LocalGatewayRouteTableId: string | undefined; /** *The ID of the VPC.
* @public */ VpcId: string | undefined; /** *The tags to assign to the local gateway route table VPC association.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Describes an association between a local gateway route table and a VPC.
* @public */ export interface LocalGatewayRouteTableVpcAssociation { /** *The ID of the association.
* @public */ LocalGatewayRouteTableVpcAssociationId?: string | undefined; /** *The ID of the local gateway route table.
* @public */ LocalGatewayRouteTableId?: string | undefined; /** *The Amazon Resource Name (ARN) of the local gateway route table for the association.
* @public */ LocalGatewayRouteTableArn?: string | undefined; /** *The ID of the local gateway.
* @public */ LocalGatewayId?: string | undefined; /** *The ID of the VPC.
* @public */ VpcId?: string | undefined; /** *The ID of the Amazon Web Services account that owns the local gateway route table for the association.
* @public */ OwnerId?: string | undefined; /** *The state of the association.
* @public */ State?: string | undefined; /** *The tags assigned to the association.
* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface CreateLocalGatewayRouteTableVpcAssociationResult { /** *Information about the association.
* @public */ LocalGatewayRouteTableVpcAssociation?: LocalGatewayRouteTableVpcAssociation | undefined; } /** * @public */ export interface CreateLocalGatewayVirtualInterfaceRequest { /** *The ID of the local gateway virtual interface group.
* @public */ LocalGatewayVirtualInterfaceGroupId: string | undefined; /** *References the Link Aggregation Group (LAG) that connects the Outpost to on-premises network devices.
* @public */ OutpostLagId: string | undefined; /** *The virtual local area network (VLAN) used for the local gateway virtual interface.
* @public */ Vlan: number | undefined; /** *The IP address assigned to the local gateway virtual interface on the Outpost side. Only IPv4 is supported.
* @public */ LocalAddress: string | undefined; /** *The peer IP address for the local gateway virtual interface. Only IPv4 is * supported.
* @public */ PeerAddress: string | undefined; /** *The Autonomous System Number (ASN) of the Border Gateway Protocol (BGP) peer.
* @public */ PeerBgpAsn?: number | undefined; /** *The tags to apply to a resource when the local gateway virtual interface is being created.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The extended 32-bit ASN of the BGP peer for use with larger ASN values.
* @public */ PeerBgpAsnExtended?: number | undefined; } /** *Describes a local gateway virtual interface.
* @public */ export interface LocalGatewayVirtualInterface { /** *The ID of the virtual interface.
* @public */ LocalGatewayVirtualInterfaceId?: string | undefined; /** *The ID of the local gateway.
* @public */ LocalGatewayId?: string | undefined; /** *The ID of the local gateway virtual interface group.
* @public */ LocalGatewayVirtualInterfaceGroupId?: string | undefined; /** *The Amazon Resource Number (ARN) of the local gateway virtual interface.
* @public */ LocalGatewayVirtualInterfaceArn?: string | undefined; /** *The Outpost LAG ID.
* @public */ OutpostLagId?: string | undefined; /** *The ID of the VLAN.
* @public */ Vlan?: number | undefined; /** *The local address.
* @public */ LocalAddress?: string | undefined; /** *The peer address.
* @public */ PeerAddress?: string | undefined; /** *The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the local gateway.
* @public */ LocalBgpAsn?: number | undefined; /** *The peer BGP ASN.
* @public */ PeerBgpAsn?: number | undefined; /** *The extended 32-bit ASN of the BGP peer for use with larger ASN values.
* @public */ PeerBgpAsnExtended?: number | undefined; /** *The ID of the Amazon Web Services account that owns the local gateway virtual interface.
* @public */ OwnerId?: string | undefined; /** *The tags assigned to the virtual interface.
* @public */ Tags?: Tag[] | undefined; /** *The current state of the local gateway virtual interface.
* @public */ ConfigurationState?: LocalGatewayVirtualInterfaceConfigurationState | undefined; } /** * @public */ export interface CreateLocalGatewayVirtualInterfaceResult { /** *Information about the local gateway virtual interface.
* @public */ LocalGatewayVirtualInterface?: LocalGatewayVirtualInterface | undefined; } /** * @public */ export interface CreateLocalGatewayVirtualInterfaceGroupRequest { /** *The ID of the local gateway.
* @public */ LocalGatewayId: string | undefined; /** *The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).
* @public */ LocalBgpAsn?: number | undefined; /** *The extended 32-bit ASN for the local BGP configuration.
* @public */ LocalBgpAsnExtended?: number | undefined; /** *The tags to apply to the local gateway virtual interface group when the resource is * being created.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Describes a local gateway virtual interface group.
* @public */ export interface LocalGatewayVirtualInterfaceGroup { /** *The ID of the virtual interface group.
* @public */ LocalGatewayVirtualInterfaceGroupId?: string | undefined; /** *The IDs of the virtual interfaces.
* @public */ LocalGatewayVirtualInterfaceIds?: string[] | undefined; /** *The ID of the local gateway.
* @public */ LocalGatewayId?: string | undefined; /** *The ID of the Amazon Web Services account that owns the local gateway virtual interface group.
* @public */ OwnerId?: string | undefined; /** *The Autonomous System Number(ASN) for the local Border Gateway Protocol (BGP).
* @public */ LocalBgpAsn?: number | undefined; /** *The extended 32-bit ASN for the local BGP configuration.
* @public */ LocalBgpAsnExtended?: number | undefined; /** *The Amazon Resource Number (ARN) of the local gateway virtual interface group.
* @public */ LocalGatewayVirtualInterfaceGroupArn?: string | undefined; /** *The tags assigned to the virtual interface group.
* @public */ Tags?: Tag[] | undefined; /** *The current state of the local gateway virtual interface group.
* @public */ ConfigurationState?: LocalGatewayVirtualInterfaceGroupConfigurationState | undefined; } /** * @public */ export interface CreateLocalGatewayVirtualInterfaceGroupResult { /** *Information about the created local gateway virtual interface group.
* @public */ LocalGatewayVirtualInterfaceGroup?: LocalGatewayVirtualInterfaceGroup | undefined; } /** *Describes a custom configuration for a System Integrity Protection (SIP) modification task.
* @public */ export interface MacSystemIntegrityProtectionConfigurationRequest { /** *Enables or disables Apple Internal.
* @public */ AppleInternal?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Enables or disables Base System.
* @public */ BaseSystem?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Enables or disables Debugging Restrictions.
* @public */ DebuggingRestrictions?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Enables or disables Dtrace Restrictions.
* @public */ DTraceRestrictions?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Enables or disables Filesystem Protections.
* @public */ FilesystemProtections?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Enables or disables Kext Signing.
* @public */ KextSigning?: MacSystemIntegrityProtectionSettingStatus | undefined; /** *Enables or disables Nvram Protections.
* @public */ NvramProtections?: MacSystemIntegrityProtectionSettingStatus | undefined; } /** * @public */ export interface CreateMacSystemIntegrityProtectionModificationTaskRequest { /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.
* @public */ ClientToken?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.
The ID of the Amazon EC2 Mac instance.
* @public */ InstanceId: string | undefined; /** ** [Apple silicon Mac instances only] Specifies the * following credentials:
** Internal disk administrative user *
*
* Username - Only the default administrative
* user (aws-managed-user) is supported and it is used by default. You
* can't specify a different administrative user.
* Password - If you did not change the default
* password for aws-managed-user, specify the default password, which
* is blank. Otherwise, specify your password.
* Amazon EBS root volume administrative user *
*
* Username - If you did not change the default
* administrative user, specify ec2-user. Otherwise, specify the username
* for your administrative user.
* Password - Specify the password for the * administrative user.
*The credentials must be specified in the following JSON format:
*
* \{
* "internalDiskPassword":"internal-disk-admin_password",
* "rootVolumeUsername":"root-volume-admin_username",
* "rootVolumepassword":"root-volume-admin_password"
* \}
*
Specifies the overrides to selectively enable or disable individual SIP settings. * The individual settings you specify here override the overall SIP status you specify * for MacSystemIntegrityProtectionStatus.
* @public */ MacSystemIntegrityProtectionConfiguration?: MacSystemIntegrityProtectionConfigurationRequest | undefined; /** *Specifies the overall SIP status for the instance. To enable all SIP settings, specify
* enabled. To disable all SIP settings, specify disabled.
Specifies tags to apply to the SIP modification task.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** * @public */ export interface CreateMacSystemIntegrityProtectionModificationTaskResult { /** *Information about the SIP modification task.
* @public */ MacModificationTask?: MacModificationTask | undefined; } /** * @public */ export interface CreateManagedPrefixListRequest { /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
A name for the prefix list.
*Constraints: Up to 255 characters in length. The name cannot start with com.amazonaws.
One or more entries for the prefix list.
* @public */ Entries?: AddPrefixListEntry[] | undefined; /** *The maximum number of entries for the prefix list.
* @public */ MaxEntries: number | undefined; /** *The tags to apply to the prefix list during creation.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *The IP address type.
*Valid Values: IPv4 | IPv6
*
Unique, case-sensitive identifier you provide to ensure the idempotency of the * request. For more information, see Ensuring * idempotency.
*Constraints: Up to 255 UTF-8 characters in length.
* @public */ ClientToken?: string | undefined; } /** *Describes a managed prefix list.
* @public */ export interface ManagedPrefixList { /** *The ID of the prefix list.
* @public */ PrefixListId?: string | undefined; /** *The IP address version.
* @public */ AddressFamily?: string | undefined; /** *The current state of the prefix list.
* @public */ State?: PrefixListState | undefined; /** *The state message.
* @public */ StateMessage?: string | undefined; /** *The Amazon Resource Name (ARN) for the prefix list.
* @public */ PrefixListArn?: string | undefined; /** *The name of the prefix list.
* @public */ PrefixListName?: string | undefined; /** *The maximum number of entries for the prefix list.
* @public */ MaxEntries?: number | undefined; /** *The version of the prefix list.
* @public */ Version?: number | undefined; /** *The tags for the prefix list.
* @public */ Tags?: Tag[] | undefined; /** *The ID of the owner of the prefix list.
* @public */ OwnerId?: string | undefined; /** *The ID of the IPAM prefix list resolver target associated with this managed prefix list. When set, this prefix list becomes an IPAM managed prefix list.
*An IPAM-managed prefix list is a customer-managed prefix list that has been associated with an IPAM prefix list resolver target. When a prefix list becomes IPAM managed, its CIDRs are automatically synchronized based on the IPAM prefix list resolver's CIDR selection rules, and direct CIDR modifications are restricted.
* @public */ IpamPrefixListResolverTargetId?: string | undefined; /** *Indicates whether synchronization with an IPAM prefix list resolver is enabled for this managed prefix list. When enabled, the prefix list CIDRs are automatically updated based on the resolver's CIDR selection rules.
* @public */ IpamPrefixListResolverSyncEnabled?: boolean | undefined; } /** * @public */ export interface CreateManagedPrefixListResult { /** *Information about the prefix list.
* @public */ PrefixList?: ManagedPrefixList | undefined; } /** *For regional NAT gateways only: The configuration specifying which Elastic IP address (EIP) to use for handling outbound NAT traffic from a specific Availability Zone.
*A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
*For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
* @public */ export interface AvailabilityZoneAddress { /** *For regional NAT gateways only: The Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ.
*A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
* @public */ AvailabilityZone?: string | undefined; /** *For regional NAT gateways only: The ID of the Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ. Use this instead of AvailabilityZone for consistent identification of AZs across Amazon Web Services Regions.
*A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
* @public */ AvailabilityZoneId?: string | undefined; /** *The allocation IDs of the Elastic IP addresses (EIPs) to be used for handling outbound NAT traffic in this specific Availability Zone.
* @public */ AllocationIds?: string[] | undefined; } /** * @public */ export interface CreateNatGatewayRequest { /** *Specifies whether to create a zonal (single-AZ) or regional (multi-AZ) NAT gateway. Defaults to zonal.
A zonal NAT gateway is a NAT Gateway that provides redundancy and scalability within a single availability zone. A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
*For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
* @public */ AvailabilityMode?: AvailabilityMode | undefined; /** *[Public NAT gateways only] The allocation ID of an Elastic IP address to associate * with the NAT gateway. You cannot specify an Elastic IP address with a private NAT gateway. * If the Elastic IP address is associated with another resource, you must first disassociate it.
* @public */ AllocationId?: string | undefined; /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the * request. For more information, see Ensuring idempotency.
*Constraint: Maximum 64 ASCII characters.
* @public */ ClientToken?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the subnet in which to create the NAT gateway.
* @public */ SubnetId?: string | undefined; /** *The ID of the VPC where you want to create a regional NAT gateway.
* @public */ VpcId?: string | undefined; /** *For regional NAT gateways only: Specifies which Availability Zones you want the NAT gateway to support and the Elastic IP addresses (EIPs) to use in each AZ. The regional NAT gateway uses these EIPs to handle outbound NAT traffic from their respective AZs. If not specified, the NAT gateway will automatically expand to new AZs and associate EIPs upon detection of an elastic network interface. If you specify this parameter, auto-expansion is disabled and you must manually manage AZ coverage.
*A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
*For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
* @public */ AvailabilityZoneAddresses?: AvailabilityZoneAddress[] | undefined; /** *The tags to assign to the NAT gateway.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Indicates whether the NAT gateway supports public or private connectivity. * The default is public connectivity.
* @public */ ConnectivityType?: ConnectivityType | undefined; /** *The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned.
* @public */ PrivateIpAddress?: string | undefined; /** *Secondary EIP allocation IDs. For more information, see Create a NAT gateway * in the Amazon VPC User Guide.
* @public */ SecondaryAllocationIds?: string[] | undefined; /** *Secondary private IPv4 addresses. For more information about secondary addresses, see * Create a NAT gateway in the Amazon VPC User Guide.
* @public */ SecondaryPrivateIpAddresses?: string[] | undefined; /** *[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. * For more information about secondary addresses, see Create a NAT gateway * in the Amazon VPC User Guide.
* @public */ SecondaryPrivateIpAddressCount?: number | undefined; } /** *Information about an appliance attached to a NAT Gateway, providing managed security solutions for traffic filtering and inspection.
* @public */ export interface NatGatewayAttachedAppliance { /** *The type of appliance attached to the NAT Gateway. For network firewall proxy functionality, this will be "network-firewall-proxy".
* @public */ Type?: NatGatewayApplianceType | undefined; /** *The Amazon Resource Name (ARN) of the attached appliance, identifying the specific proxy or security appliance resource.
* @public */ ApplianceArn?: string | undefined; /** *The VPC endpoint ID used to route traffic from application VPCs to the proxy for inspection and filtering.
* @public */ VpcEndpointId?: string | undefined; /** *The current attachment state of the appliance.
* @public */ AttachmentState?: NatGatewayApplianceState | undefined; /** *The current modification state of the appliance.
* @public */ ModificationState?: NatGatewayApplianceModifyState | undefined; /** *The failure code if the appliance attachment or modification operation failed.
* @public */ FailureCode?: string | undefined; /** *A descriptive message explaining the failure if the appliance attachment or modification operation failed.
* @public */ FailureMessage?: string | undefined; } /** *Reserved. If you need to sustain traffic greater than the documented limits, * contact Amazon Web Services Support.
* @public */ export interface ProvisionedBandwidth { /** *Reserved.
* @public */ ProvisionTime?: Date | undefined; /** *Reserved.
* @public */ Provisioned?: string | undefined; /** *Reserved.
* @public */ RequestTime?: Date | undefined; /** *Reserved.
* @public */ Requested?: string | undefined; /** *Reserved.
* @public */ Status?: string | undefined; } /** *Describes a NAT gateway.
* @public */ export interface NatGateway { /** *The date and time the NAT gateway was created.
* @public */ CreateTime?: Date | undefined; /** *The date and time the NAT gateway was deleted, if applicable.
* @public */ DeleteTime?: Date | undefined; /** *If the NAT gateway could not be created, specifies the error code for the failure.
* (InsufficientFreeAddressesInSubnet | Gateway.NotAttached |
* InvalidAllocationID.NotFound | Resource.AlreadyAssociated |
* InternalError | InvalidSubnetID.NotFound)
If the NAT gateway could not be created, specifies the error message for the failure, that corresponds to the error code.
*For InsufficientFreeAddressesInSubnet: "Subnet has insufficient free addresses to create this NAT gateway"
*For Gateway.NotAttached: "Network vpc-xxxxxxxx has no Internet gateway attached"
*For InvalidAllocationID.NotFound: "Elastic IP address eipalloc-xxxxxxxx could not be associated with this NAT gateway"
*For Resource.AlreadyAssociated: "Elastic IP address eipalloc-xxxxxxxx is already associated"
*For InternalError: "Network interface eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid state. Please try again."
*For InvalidSubnetID.NotFound: "The specified subnet subnet-xxxxxxxx does not exist or could not be found."
*Information about the IP addresses and network interface associated with the NAT gateway.
* @public */ NatGatewayAddresses?: NatGatewayAddress[] | undefined; /** *The ID of the NAT gateway.
* @public */ NatGatewayId?: string | undefined; /** *Reserved. If you need to sustain traffic greater than the documented limits, * contact Amazon Web Services Support.
* @public */ ProvisionedBandwidth?: ProvisionedBandwidth | undefined; /** *The state of the NAT gateway.
*
* pending: The NAT gateway is being created and is not ready to process
* traffic.
* failed: The NAT gateway could not be created. Check the
* failureCode and failureMessage fields for the reason.
* available: The NAT gateway is able to process traffic. This status remains
* until you delete the NAT gateway, and does not indicate the health of the NAT gateway.
* deleting: The NAT gateway is in the process of being terminated and may
* still be processing traffic.
* deleted: The NAT gateway has been terminated and is no longer processing
* traffic.
The ID of the subnet in which the NAT gateway is located.
* @public */ SubnetId?: string | undefined; /** *The ID of the VPC in which the NAT gateway is located.
* @public */ VpcId?: string | undefined; /** *The tags for the NAT gateway.
* @public */ Tags?: Tag[] | undefined; /** *Indicates whether the NAT gateway supports public or private connectivity.
* @public */ ConnectivityType?: ConnectivityType | undefined; /** *Indicates whether this is a zonal (single-AZ) or regional (multi-AZ) NAT gateway.
*A zonal NAT gateway is a NAT Gateway that provides redundancy and scalability within a single availability zone. A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
*For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
* @public */ AvailabilityMode?: AvailabilityMode | undefined; /** *For regional NAT gateways only: Indicates whether Amazon Web Services automatically allocates additional Elastic IP addresses (EIPs) in an AZ when the NAT gateway needs more ports due to increased concurrent connections to a single destination from that AZ.
*For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
* @public */ AutoScalingIps?: AutoScalingIpsState | undefined; /** *For regional NAT gateways only: Indicates whether Amazon Web Services automatically manages AZ coverage. When enabled, the NAT gateway associates EIPs in all AZs where your VPC has subnets to handle outbound NAT traffic, expands to new AZs when you create subnets there, and retracts from AZs where you've removed all subnets. When disabled, you must manually manage which AZs the NAT gateway supports and their corresponding EIPs.
*A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
*For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
* @public */ AutoProvisionZones?: AutoProvisionZonesState | undefined; /** *The proxy appliances attached to the NAT Gateway for filtering and inspecting traffic to prevent data exfiltration.
* @public */ AttachedAppliances?: NatGatewayAttachedAppliance[] | undefined; /** *For regional NAT gateways only, this is the ID of the NAT gateway.
* @public */ RouteTableId?: string | undefined; } /** * @public */ export interface CreateNatGatewayResult { /** *Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.
* @public */ ClientToken?: string | undefined; /** *Information about the NAT gateway.
* @public */ NatGateway?: NatGateway | undefined; } /** * @public */ export interface CreateNetworkAclRequest { /** *The tags to assign to the network ACL.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the * request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the VPC.
* @public */ VpcId: string | undefined; } /** *Describes an association between a network ACL and a subnet.
* @public */ export interface NetworkAclAssociation { /** *The ID of the association between a network ACL and a subnet.
* @public */ NetworkAclAssociationId?: string | undefined; /** *The ID of the network ACL.
* @public */ NetworkAclId?: string | undefined; /** *The ID of the subnet.
* @public */ SubnetId?: string | undefined; } /** *Describes the ICMP type and code.
* @public */ export interface IcmpTypeCode { /** *The ICMP code. A value of -1 means all codes for the specified ICMP type.
* @public */ Code?: number | undefined; /** *The ICMP type. A value of -1 means all types.
* @public */ Type?: number | undefined; } /** *Describes an entry in a network ACL.
* @public */ export interface NetworkAclEntry { /** *The IPv4 network range to allow or deny, in CIDR notation.
* @public */ CidrBlock?: string | undefined; /** *Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).
* @public */ Egress?: boolean | undefined; /** *ICMP protocol: The ICMP type and code.
* @public */ IcmpTypeCode?: IcmpTypeCode | undefined; /** *The IPv6 network range to allow or deny, in CIDR notation.
* @public */ Ipv6CidrBlock?: string | undefined; /** *TCP or UDP protocols: The range of ports the rule applies to.
* @public */ PortRange?: PortRange | undefined; /** *The protocol number. A value of "-1" means all protocols.
* @public */ Protocol?: string | undefined; /** *Indicates whether to allow or deny the traffic that matches the rule.
* @public */ RuleAction?: RuleAction | undefined; /** *The rule number for the entry. ACL entries are processed in ascending order by rule number.
* @public */ RuleNumber?: number | undefined; } /** *Describes a network ACL.
* @public */ export interface NetworkAcl { /** *Any associations between the network ACL and your subnets
* @public */ Associations?: NetworkAclAssociation[] | undefined; /** *The entries (rules) in the network ACL.
* @public */ Entries?: NetworkAclEntry[] | undefined; /** *Indicates whether this is the default network ACL for the VPC.
* @public */ IsDefault?: boolean | undefined; /** *The ID of the network ACL.
* @public */ NetworkAclId?: string | undefined; /** *Any tags assigned to the network ACL.
* @public */ Tags?: Tag[] | undefined; /** *The ID of the VPC for the network ACL.
* @public */ VpcId?: string | undefined; /** *The ID of the Amazon Web Services account that owns the network ACL.
* @public */ OwnerId?: string | undefined; } /** * @public */ export interface CreateNetworkAclResult { /** *Information about the network ACL.
* @public */ NetworkAcl?: NetworkAcl | undefined; /** *Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.
* @public */ ClientToken?: string | undefined; } /** * @public */ export interface CreateNetworkAclEntryRequest { /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the network ACL.
* @public */ NetworkAclId: string | undefined; /** *The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number.
*Constraints: Positive integer from 1 to 32766. The range 32767 to 65535 is reserved for internal use.
* @public */ RuleNumber: number | undefined; /** *The protocol number. A value of "-1" means all protocols. If you specify "-1" or a * protocol number other than "6" (TCP), "17" (UDP), or "1" (ICMP), traffic on all ports is * allowed, regardless of any ports or ICMP types or codes that you specify. If you specify * protocol "58" (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and * codes allowed, regardless of any that you specify. If you specify protocol "58" (ICMPv6) * and specify an IPv6 CIDR block, you must specify an ICMP type and code.
* @public */ Protocol: string | undefined; /** *Indicates whether to allow or deny the traffic that matches the rule.
* @public */ RuleAction: RuleAction | undefined; /** *Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).
* @public */ Egress: boolean | undefined; /** *The IPv4 network range to allow or deny, in CIDR notation (for example
* 172.16.0.0/24). We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.
The IPv6 network range to allow or deny, in CIDR notation (for example
* 2001:db8:1234:1a00::/64).
ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying protocol * 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block.
* @public */ IcmpTypeCode?: IcmpTypeCode | undefined; /** *TCP or UDP protocols: The range of ports the rule applies to. * Required if specifying protocol 6 (TCP) or 17 (UDP).
* @public */ PortRange?: PortRange | undefined; } /** * @public */ export interface CreateNetworkInsightsAccessScopeRequest { /** *The paths to match.
* @public */ MatchPaths?: AccessScopePathRequest[] | undefined; /** *The paths to exclude.
* @public */ ExcludePaths?: AccessScopePathRequest[] | undefined; /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, * see How to ensure idempotency.
* @public */ ClientToken?: string | undefined; /** *The tags to apply.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Describes a Network Access Scope.
* @public */ export interface NetworkInsightsAccessScope { /** *The ID of the Network Access Scope.
* @public */ NetworkInsightsAccessScopeId?: string | undefined; /** *The Amazon Resource Name (ARN) of the Network Access Scope.
* @public */ NetworkInsightsAccessScopeArn?: string | undefined; /** *The creation date.
* @public */ CreatedDate?: Date | undefined; /** *The last updated date.
* @public */ UpdatedDate?: Date | undefined; /** *The tags.
* @public */ Tags?: Tag[] | undefined; } /** *Describes the Network Access Scope content.
* @public */ export interface NetworkInsightsAccessScopeContent { /** *The ID of the Network Access Scope.
* @public */ NetworkInsightsAccessScopeId?: string | undefined; /** *The paths to match.
* @public */ MatchPaths?: AccessScopePath[] | undefined; /** *The paths to exclude.
* @public */ ExcludePaths?: AccessScopePath[] | undefined; } /** * @public */ export interface CreateNetworkInsightsAccessScopeResult { /** *The Network Access Scope.
* @public */ NetworkInsightsAccessScope?: NetworkInsightsAccessScope | undefined; /** *The Network Access Scope content.
* @public */ NetworkInsightsAccessScopeContent?: NetworkInsightsAccessScopeContent | undefined; } /** *Describes a port range.
* @public */ export interface RequestFilterPortRange { /** *The first port in the range.
* @public */ FromPort?: number | undefined; /** *The last port in the range.
* @public */ ToPort?: number | undefined; } /** *Describes a set of filters for a path analysis. Use path filters to scope the analysis when * there can be multiple resulting paths.
* @public */ export interface PathRequestFilter { /** *The source IPv4 address.
* @public */ SourceAddress?: string | undefined; /** *The source port range.
* @public */ SourcePortRange?: RequestFilterPortRange | undefined; /** *The destination IPv4 address.
* @public */ DestinationAddress?: string | undefined; /** *The destination port range.
* @public */ DestinationPortRange?: RequestFilterPortRange | undefined; } /** * @public */ export interface CreateNetworkInsightsPathRequest { /** *The IP address of the source.
* @public */ SourceIp?: string | undefined; /** *The IP address of the destination.
* @public */ DestinationIp?: string | undefined; /** *The ID or ARN of the source. If the resource is in another account, you must specify an ARN.
* @public */ Source: string | undefined; /** *The ID or ARN of the destination. If the resource is in another account, you must specify an ARN.
* @public */ Destination?: string | undefined; /** *The protocol.
* @public */ Protocol: Protocol | undefined; /** *The destination port.
* @public */ DestinationPort?: number | undefined; /** *The tags to add to the path.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, * see How to ensure idempotency.
* @public */ ClientToken?: string | undefined; /** *Scopes the analysis to network paths that match specific filters at the source. If you specify * this parameter, you can't specify the parameters for the source IP address or the destination port.
* @public */ FilterAtSource?: PathRequestFilter | undefined; /** *Scopes the analysis to network paths that match specific filters at the destination. If you specify * this parameter, you can't specify the parameter for the destination IP address.
* @public */ FilterAtDestination?: PathRequestFilter | undefined; } /** *Describes a port range.
* @public */ export interface FilterPortRange { /** *The first port in the range.
* @public */ FromPort?: number | undefined; /** *The last port in the range.
* @public */ ToPort?: number | undefined; } /** *Describes a set of filters for a path analysis. Use path filters to scope the analysis when * there can be multiple resulting paths.
* @public */ export interface PathFilter { /** *The source IPv4 address.
* @public */ SourceAddress?: string | undefined; /** *The source port range.
* @public */ SourcePortRange?: FilterPortRange | undefined; /** *The destination IPv4 address.
* @public */ DestinationAddress?: string | undefined; /** *The destination port range.
* @public */ DestinationPortRange?: FilterPortRange | undefined; } /** *Describes a path.
* @public */ export interface NetworkInsightsPath { /** *The ID of the path.
* @public */ NetworkInsightsPathId?: string | undefined; /** *The Amazon Resource Name (ARN) of the path.
* @public */ NetworkInsightsPathArn?: string | undefined; /** *The time stamp when the path was created.
* @public */ CreatedDate?: Date | undefined; /** *The ID of the source.
* @public */ Source?: string | undefined; /** *The ID of the destination.
* @public */ Destination?: string | undefined; /** *The Amazon Resource Name (ARN) of the source.
* @public */ SourceArn?: string | undefined; /** *The Amazon Resource Name (ARN) of the destination.
* @public */ DestinationArn?: string | undefined; /** *The IP address of the source.
* @public */ SourceIp?: string | undefined; /** *The IP address of the destination.
* @public */ DestinationIp?: string | undefined; /** *The protocol.
* @public */ Protocol?: Protocol | undefined; /** *The destination port.
* @public */ DestinationPort?: number | undefined; /** *The tags associated with the path.
* @public */ Tags?: Tag[] | undefined; /** *Scopes the analysis to network paths that match specific filters at the source.
* @public */ FilterAtSource?: PathFilter | undefined; /** *Scopes the analysis to network paths that match specific filters at the destination.
* @public */ FilterAtDestination?: PathFilter | undefined; } /** * @public */ export interface CreateNetworkInsightsPathResult { /** *Information about the path.
* @public */ NetworkInsightsPath?: NetworkInsightsPath | undefined; } /** * @public */ export interface CreateNetworkInterfaceRequest { /** *The IPv4 prefixes assigned to the network interface.
*You can't specify IPv4 prefixes if you've specified one of the following: a count of * IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.
* @public */ Ipv4Prefixes?: Ipv4PrefixSpecificationRequest[] | undefined; /** *The number of IPv4 prefixes that Amazon Web Services automatically assigns to the * network interface.
*You can't specify a count of IPv4 prefixes if you've specified one of the following: * specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 * addresses.
* @public */ Ipv4PrefixCount?: number | undefined; /** *The IPv6 prefixes assigned to the network interface.
*You can't specify IPv6 prefixes if you've specified one of the following: a count of * IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.
* @public */ Ipv6Prefixes?: Ipv6PrefixSpecificationRequest[] | undefined; /** *The number of IPv6 prefixes that Amazon Web Services automatically assigns to the * network interface.
*You can't specify a count of IPv6 prefixes if you've specified one of the following: * specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.
* @public */ Ipv6PrefixCount?: number | undefined; /** *The type of network interface. The default is interface.
If you specify efa-only, do not assign any IP addresses to the network
* interface. EFA-only network interfaces do not support IP addresses.
The only supported values are interface, efa,
* efa-only, and trunk.
The tags to apply to the new network interface.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; /** *If you’re creating a network interface in a dual-stack or IPv6-only subnet, you have * the option to assign a primary IPv6 IP address. A primary IPv6 address is an IPv6 GUA * address associated with an ENI that you have enabled to use a primary IPv6 address. Use * this option if the instance that this ENI will be attached to relies on its IPv6 address * not changing. Amazon Web Services will automatically assign an IPv6 address associated * with the ENI attached to your instance to be the primary IPv6 address. Once you enable * an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6 * GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 * address until the instance is terminated or the network interface is detached. If you * have multiple IPv6 addresses associated with an ENI attached to your instance and you * enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI * becomes the primary IPv6 address.
* @public */ EnablePrimaryIpv6?: boolean | undefined; /** *A connection tracking specification for the network interface.
* @public */ ConnectionTrackingSpecification?: ConnectionTrackingSpecificationRequest | undefined; /** *Reserved for internal use.
* @public */ Operator?: OperatorRequest | undefined; /** *The ID of the subnet to associate with the network interface.
* @public */ SubnetId: string | undefined; /** *A description for the network interface.
* @public */ Description?: string | undefined; /** *The primary private IPv4 address of the network interface. If you don't specify an
* IPv4 address, Amazon EC2 selects one for you from the subnet's IPv4 CIDR range. If you
* specify an IP address, you cannot indicate any IP addresses specified in
* privateIpAddresses as primary (only one IP address can be designated as
* primary).
The IDs of the security groups.
* @public */ Groups?: string[] | undefined; /** *The private IPv4 addresses.
*You can't specify private IPv4 addresses if you've specified one of the following: a * count of private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 * prefixes.
* @public */ PrivateIpAddresses?: PrivateIpAddressSpecification[] | undefined; /** *The number of secondary private IPv4 addresses to assign to a network interface. When
* you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses
* within the subnet's IPv4 CIDR range. You can't specify this option and specify more than
* one private IP address using privateIpAddresses.
You can't specify a count of private IPv4 addresses if you've specified one of the * following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 * prefixes.
* @public */ SecondaryPrivateIpAddressCount?: number | undefined; /** *The IPv6 addresses from the IPv6 CIDR block range of your subnet.
*You can't specify IPv6 addresses using this parameter if you've specified one of the * following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 * prefixes.
* @public */ Ipv6Addresses?: InstanceIpv6Address[] | undefined; /** *The number of IPv6 addresses to assign to a network interface. Amazon EC2 * automatically selects the IPv6 addresses from the subnet range.
*You can't specify a count of IPv6 addresses using this parameter if you've specified * one of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of * IPv6 prefixes.
*If your subnet has the AssignIpv6AddressOnCreation attribute set, you can
* override that setting by specifying 0 as the IPv6 address count.
Checks whether you have the required permissions for the action, without actually
* making the request, and provides an error response. If you have the required
* permissions, the error response is DryRunOperation. Otherwise, it is
* UnauthorizedOperation.
Describes association information for an Elastic IP address (IPv4 only), or a Carrier * IP address (for a network interface which resides in a subnet in a Wavelength * Zone).
* @public */ export interface NetworkInterfaceAssociation { /** *The allocation ID.
* @public */ AllocationId?: string | undefined; /** *The association ID.
* @public */ AssociationId?: string | undefined; /** *The ID of the Elastic IP address owner.
* @public */ IpOwnerId?: string | undefined; /** *The public DNS name.
* @public */ PublicDnsName?: string | undefined; /** *The address of the Elastic IP address bound to the network interface.
* @public */ PublicIp?: string | undefined; /** *The customer-owned IP address associated with the network interface.
* @public */ CustomerOwnedIp?: string | undefined; /** *The carrier IP address associated with the network interface.
*This option is only available when the network interface is in a subnet which is * associated with a Wavelength Zone.
* @public */ CarrierIp?: string | undefined; } /** *ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic * automatically uses it. However, some UDP-based applications are designed to handle network packets that are * out of order, without a need for retransmission, such as live video broadcasting or other near-real-time * applications. For UDP traffic, you can specify whether to use ENA Express, based on your application * environment needs.
* @public */ export interface AttachmentEnaSrdUdpSpecification { /** *Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, * you must first enable ENA Express.
* @public */ EnaSrdUdpEnabled?: boolean | undefined; } /** *ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the * maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. * With ENA Express, you can communicate between two EC2 instances in the same subnet within the same * account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.
*To improve the reliability of network packet delivery, ENA Express reorders network packets on the * receiving end by default. However, some UDP-based applications are designed to handle network packets * that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express * is enabled, you can specify whether UDP network traffic uses it.
* @public */ export interface AttachmentEnaSrdSpecification { /** *Indicates whether ENA Express is enabled for the network interface.
* @public */ EnaSrdEnabled?: boolean | undefined; /** *Configures ENA Express for UDP network traffic.
* @public */ EnaSrdUdpSpecification?: AttachmentEnaSrdUdpSpecification | undefined; } /** *Describes a network interface attachment.
* @public */ export interface NetworkInterfaceAttachment { /** *The timestamp indicating when the attachment initiated.
* @public */ AttachTime?: Date | undefined; /** *The ID of the network interface attachment.
* @public */ AttachmentId?: string | undefined; /** *Indicates whether the network interface is deleted when the instance is * terminated.
* @public */ DeleteOnTermination?: boolean | undefined; /** *The device index of the network interface attachment on the instance.
* @public */ DeviceIndex?: number | undefined; /** *The index of the network card.
* @public */ NetworkCardIndex?: number | undefined; /** *The ID of the instance.
* @public */ InstanceId?: string | undefined; /** *The Amazon Web Services account ID of the owner of the instance.
* @public */ InstanceOwnerId?: string | undefined; /** *The attachment state.
* @public */ Status?: AttachmentStatus | undefined; /** *Configures ENA Express for the network interface that this action attaches to the * instance.
* @public */ EnaSrdSpecification?: AttachmentEnaSrdSpecification | undefined; /** *The number of ENA queues created with the instance.
* @public */ EnaQueueCount?: number | undefined; } /** *A security group connection tracking configuration that enables you to set the idle * timeout for connection tracking on an Elastic network interface. For more information, * see Connection tracking timeouts in the * Amazon EC2 User Guide.
* @public */ export interface ConnectionTrackingConfiguration { /** *Timeout (in seconds) for idle TCP * connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 * days). Default: 432000 seconds. Recommended: Less than 432000 seconds.
* @public */ TcpEstablishedTimeout?: number | undefined; /** *Timeout (in seconds) for idle UDP * flows classified as streams which have seen more than one request-response * transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 * seconds.
* @public */ UdpStreamTimeout?: number | undefined; /** *Timeout (in seconds) for idle UDP flows that * have seen traffic only in a single direction or a single request-response * transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds.
* @public */ UdpTimeout?: number | undefined; } /** *Describes a security group.
* @public */ export interface GroupIdentifier { /** *The ID of the security group.
* @public */ GroupId?: string | undefined; /** *The name of the security group.
* @public */ GroupName?: string | undefined; } /** *Describes an IPv6 address associated with a network interface.
* @public */ export interface NetworkInterfaceIpv6Address { /** *The IPv6 address.
* @public */ Ipv6Address?: string | undefined; /** *An IPv6-enabled public hostname for a network interface. Requests from within the VPC or from the internet resolve to the IPv6 GUA of the network interface. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.
* @public */ PublicIpv6DnsName?: string | undefined; /** *Determines if an IPv6 address associated with a network interface is the primary IPv6 * address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA * will be made the primary IPv6 address until the instance is terminated or the network * interface is detached. For more information, see ModifyNetworkInterfaceAttribute.
* @public */ IsPrimaryIpv6?: boolean | undefined; } /** *Describes the IPv6 prefix.
* @public */ export interface Ipv6PrefixSpecification { /** *The IPv6 prefix.
* @public */ Ipv6Prefix?: string | undefined; } /** *Describes the private IPv4 address of a network interface.
* @public */ export interface NetworkInterfacePrivateIpAddress { /** *The association information for an Elastic IP address (IPv4) associated with the * network interface.
* @public */ Association?: NetworkInterfaceAssociation | undefined; /** *Indicates whether this IPv4 address is the primary private IPv4 address of the network * interface.
* @public */ Primary?: boolean | undefined; /** *The private DNS name.
* @public */ PrivateDnsName?: string | undefined; /** *The private IPv4 address.
* @public */ PrivateIpAddress?: string | undefined; } /** *Public hostname type options. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.
* @public */ export interface PublicIpDnsNameOptions { /** *The public hostname type. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.
* @public */ DnsHostnameType?: string | undefined; /** *An IPv4-enabled public hostname for a network interface. Requests from within the VPC resolve to the private primary IPv4 address of the network interface. Requests from the internet resolve to the public IPv4 address of the network interface.
* @public */ PublicIpv4DnsName?: string | undefined; /** *An IPv6-enabled public hostname for a network interface. Requests from within the VPC or from the internet resolve to the IPv6 GUA of the network interface.
* @public */ PublicIpv6DnsName?: string | undefined; /** *A dual-stack public hostname for a network interface. Requests from within the VPC resolve to both the private IPv4 address and the IPv6 Global Unicast Address of the network interface. Requests from the internet resolve to both the public IPv4 and the IPv6 GUA address of the network interface.
* @public */ PublicDualStackDnsName?: string | undefined; } /** *Describes a network interface.
* @public */ export interface NetworkInterface { /** *The association information for an Elastic IP address (IPv4) associated with the * network interface.
* @public */ Association?: NetworkInterfaceAssociation | undefined; /** *The network interface attachment.
* @public */ Attachment?: NetworkInterfaceAttachment | undefined; /** *The Availability Zone.
* @public */ AvailabilityZone?: string | undefined; /** *A security group connection tracking configuration that enables you to set the timeout * for connection tracking on an Elastic network interface. For more information, see * Connection tracking timeouts in the * Amazon EC2 User Guide.
* @public */ ConnectionTrackingConfiguration?: ConnectionTrackingConfiguration | undefined; /** *A description.
* @public */ Description?: string | undefined; /** *Any security groups for the network interface.
* @public */ Groups?: GroupIdentifier[] | undefined; /** *The type of network interface.
* @public */ InterfaceType?: NetworkInterfaceType | undefined; /** *The IPv6 addresses associated with the network interface.
* @public */ Ipv6Addresses?: NetworkInterfaceIpv6Address[] | undefined; /** *The MAC address.
* @public */ MacAddress?: string | undefined; /** *The ID of the network interface.
* @public */ NetworkInterfaceId?: string | undefined; /** *The Amazon Resource Name (ARN) of the Outpost.
* @public */ OutpostArn?: string | undefined; /** *The Amazon Web Services account ID of the owner of the network interface.
* @public */ OwnerId?: string | undefined; /** *The private hostname. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.
* @public */ PrivateDnsName?: string | undefined; /** *A public hostname. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.
* @public */ PublicDnsName?: string | undefined; /** *Public hostname type options. For more information, see EC2 instance hostnames, DNS names, and domains in the Amazon EC2 User Guide.
* @public */ PublicIpDnsNameOptions?: PublicIpDnsNameOptions | undefined; /** *The IPv4 address of the network interface within the subnet.
* @public */ PrivateIpAddress?: string | undefined; /** *The private IPv4 addresses associated with the network interface.
* @public */ PrivateIpAddresses?: NetworkInterfacePrivateIpAddress[] | undefined; /** *The IPv4 prefixes that are assigned to the network interface.
* @public */ Ipv4Prefixes?: Ipv4PrefixSpecification[] | undefined; /** *The IPv6 prefixes that are assigned to the network interface.
* @public */ Ipv6Prefixes?: Ipv6PrefixSpecification[] | undefined; /** *The alias or Amazon Web Services account ID of the principal or service that created * the network interface.
* @public */ RequesterId?: string | undefined; /** *Indicates whether the network interface is being managed by Amazon Web Services.
* @public */ RequesterManaged?: boolean | undefined; /** *Indicates whether source/destination checking is enabled.
* @public */ SourceDestCheck?: boolean | undefined; /** *The status of the network interface.
* @public */ Status?: NetworkInterfaceStatus | undefined; /** *The ID of the subnet.
* @public */ SubnetId?: string | undefined; /** *Any tags assigned to the network interface.
* @public */ TagSet?: Tag[] | undefined; /** *The ID of the VPC.
* @public */ VpcId?: string | undefined; /** *Indicates whether a network interface with an IPv6 address is unreachable from the
* public internet. If the value is true, inbound traffic from the internet is
* dropped and you cannot assign an elastic IP address to the network interface. The
* network interface is reachable from peered VPCs and resources connected through a
* transit gateway, including on-premises networks.
Indicates whether this is an IPv6 only network interface.
* @public */ Ipv6Native?: boolean | undefined; /** *The IPv6 globally unique address associated with the network interface.
* @public */ Ipv6Address?: string | undefined; /** *The service provider that manages the network interface.
* @public */ Operator?: OperatorResponse | undefined; /** *The subnets associated with this network interface.
* @public */ AssociatedSubnets?: string[] | undefined; /** *The ID of the Availability Zone.
* @public */ AvailabilityZoneId?: string | undefined; } /** * @public */ export interface CreateNetworkInterfaceResult { /** *Information about the network interface.
* @public */ NetworkInterface?: NetworkInterface | undefined; /** *The token to use to retrieve the next page of results. This value is null when there are no more results to return.
Contains the parameters for CreateNetworkInterfacePermission.
* @public */ export interface CreateNetworkInterfacePermissionRequest { /** *The ID of the network interface.
* @public */ NetworkInterfaceId: string | undefined; /** *The Amazon Web Services account ID.
* @public */ AwsAccountId?: string | undefined; /** *The Amazon Web Services service. Currently not supported.
* @public */ AwsService?: string | undefined; /** *The type of permission to grant.
* @public */ Permission: InterfacePermissionType | undefined; /** *Checks whether you have the required permissions for the action, without actually
* making the request, and provides an error response. If you have the required
* permissions, the error response is DryRunOperation. Otherwise, it is
* UnauthorizedOperation.
Describes the state of a network interface permission.
* @public */ export interface NetworkInterfacePermissionState { /** *The state of the permission.
* @public */ State?: NetworkInterfacePermissionStateCode | undefined; /** *A status message, if applicable.
* @public */ StatusMessage?: string | undefined; } /** *Describes a permission for a network interface.
* @public */ export interface NetworkInterfacePermission { /** *The ID of the network interface permission.
* @public */ NetworkInterfacePermissionId?: string | undefined; /** *The ID of the network interface.
* @public */ NetworkInterfaceId?: string | undefined; /** *The Amazon Web Services account ID.
* @public */ AwsAccountId?: string | undefined; /** *The Amazon Web Services service.
* @public */ AwsService?: string | undefined; /** *The type of permission.
* @public */ Permission?: InterfacePermissionType | undefined; /** *Information about the state of the permission.
* @public */ PermissionState?: NetworkInterfacePermissionState | undefined; } /** *Contains the output of CreateNetworkInterfacePermission.
* @public */ export interface CreateNetworkInterfacePermissionResult { /** *Information about the permission for the network interface.
* @public */ InterfacePermission?: NetworkInterfacePermission | undefined; } /** * @public */ export interface CreatePlacementGroupRequest { /** *The number of partitions. Valid only when Strategy is
* set to partition.
The tags to apply to the new placement group.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Determines how placement groups spread instances.
*Host – You can use host only with Outpost placement
* groups.
Rack – No usage restrictions.
*Reserved for future use.
* @public */ LinkedGroupId?: string | undefined; /** *Reserved for internal use.
* @public */ Operator?: OperatorRequest | undefined; /** *Checks whether you have the required permissions for the operation, without actually making the
* request, and provides an error response. If you have the required permissions, the error response is
* DryRunOperation. Otherwise, it is UnauthorizedOperation.
A name for the placement group. Must be unique within the scope of your account for * the Region.
*Constraints: Up to 255 ASCII characters
* @public */ GroupName?: string | undefined; /** *The placement strategy.
* @public */ Strategy?: PlacementStrategy | undefined; } /** *Describes a placement group.
* @public */ export interface PlacementGroup { /** *The name of the placement group.
* @public */ GroupName?: string | undefined; /** *The state of the placement group.
* @public */ State?: PlacementGroupState | undefined; /** *The placement strategy.
* @public */ Strategy?: PlacementStrategy | undefined; /** *The number of partitions. Valid only if strategy is
* set to partition.
The ID of the placement group.
* @public */ GroupId?: string | undefined; /** *Any tags applied to the placement group.
* @public */ Tags?: Tag[] | undefined; /** *The Amazon Resource Name (ARN) of the placement group.
* @public */ GroupArn?: string | undefined; /** *The spread level for the placement group. Only Outpost placement * groups can be spread across hosts.
* @public */ SpreadLevel?: SpreadLevel | undefined; /** *Reserved for future use.
* @public */ LinkedGroupId?: string | undefined; /** *The service provider that manages the Placement Group.
* @public */ Operator?: OperatorResponse | undefined; } /** * @public */ export interface CreatePlacementGroupResult { /** *Information about the placement group.
* @public */ PlacementGroup?: PlacementGroup | undefined; } /** * @public */ export interface CreatePublicIpv4PoolRequest { /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.
* For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.
The Availability Zone (AZ) or Local Zone (LZ) network border group that the resource that the IP address is assigned to is in. Defaults to an AZ network border group. For more information on available Local Zones, see Local Zone availability in the Amazon EC2 User Guide.
* @public */ NetworkBorderGroup?: string | undefined; } /** * @public */ export interface CreatePublicIpv4PoolResult { /** *The ID of the public IPv4 pool.
* @public */ PoolId?: string | undefined; } /** * @public */ export interface CreateReplaceRootVolumeTaskRequest { /** *The ID of the instance for which to replace the root volume.
* @public */ InstanceId: string | undefined; /** *The ID of the snapshot from which to restore the replacement root volume. The * specified snapshot must be a snapshot that you previously created from the original * root volume.
*If you want to restore the replacement root volume to the initial launch state, * or if you want to restore the replacement root volume from an AMI, omit this * parameter.
* @public */ SnapshotId?: string | undefined; /** *Unique, case-sensitive identifier you provide to ensure the idempotency of the request. * If you do not specify a client token, a randomly generated token is used for the request * to ensure idempotency. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The tags to apply to the root volume replacement task.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *The ID of the AMI to use to restore the root volume. The specified AMI must have the * same product code, billing information, architecture type, and virtualization type as * that of the instance.
*If you want to restore the replacement volume from a specific snapshot, or if you want * to restore it to its launch state, omit this parameter.
* @public */ ImageId?: string | undefined; /** *Indicates whether to automatically delete the original root volume after the root volume
* replacement task completes. To delete the original root volume, specify true.
* If you choose to keep the original root volume after the replacement task completes, you must
* manually delete it when you no longer need it.
Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download * the snapshot blocks from Amazon S3 to the replacement root volume. This is also known as * volume initialization. Specifying a volume initialization rate ensures that * the volume is initialized at a predictable and consistent rate after creation.
*Omit this parameter if:
*You want to create the volume using fast snapshot restore. You must specify a snapshot * that is enabled for fast snapshot restore. In this case, the volume is fully initialized at * creation.
*If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, * the volume will be initialized at the specified rate instead of fast snapshot restore.
*You want to create a volume that is initialized at the default rate.
*For more information, see * Initialize Amazon EBS volumes in the Amazon EC2 User Guide.
*Valid range: 100 - 300 MiB/s
* @public */ VolumeInitializationRate?: number | undefined; } /** *Information about a root volume replacement task.
* @public */ export interface ReplaceRootVolumeTask { /** *The ID of the root volume replacement task.
* @public */ ReplaceRootVolumeTaskId?: string | undefined; /** *The ID of the instance for which the root volume replacement task was created.
* @public */ InstanceId?: string | undefined; /** *The state of the task. The task can be in one of the following states:
*
* pending - the replacement volume is being created.
* in-progress - the original volume is being detached and the
* replacement volume is being attached.
* succeeded - the replacement volume has been successfully attached
* to the instance and the instance is available.
* failing - the replacement task is in the process of failing.
* failed - the replacement task has failed but the original root
* volume is still attached.
* failing-detached - the replacement task is in the process of failing.
* The instance might have no root volume attached.
* failed-detached - the replacement task has failed and the instance
* has no root volume attached.
The time the task was started.
* @public */ StartTime?: string | undefined; /** *The time the task completed.
* @public */ CompleteTime?: string | undefined; /** *The tags assigned to the task.
* @public */ Tags?: Tag[] | undefined; /** *The ID of the AMI used to create the replacement root volume.
* @public */ ImageId?: string | undefined; /** *The ID of the snapshot used to create the replacement root volume.
* @public */ SnapshotId?: string | undefined; /** *Indicates whether the original root volume is to be deleted after the root volume * replacement task completes.
* @public */ DeleteReplacedRootVolume?: boolean | undefined; } /** * @public */ export interface CreateReplaceRootVolumeTaskResult { /** *Information about the root volume replacement task.
* @public */ ReplaceRootVolumeTask?: ReplaceRootVolumeTask | undefined; } /** *Describes the price for a Reserved Instance.
* @public */ export interface PriceScheduleSpecification { /** *The number of months remaining in the reservation. For example, 2 is the second to the * last month before the capacity reservation expires.
* @public */ Term?: number | undefined; /** *The fixed price for the term.
* @public */ Price?: number | undefined; /** *The currency for transacting the Reserved Instance resale. At this time, the only
* supported currency is USD.
Contains the parameters for CreateReservedInstancesListing.
* @public */ export interface CreateReservedInstancesListingRequest { /** *The ID of the active Standard Reserved Instance.
* @public */ ReservedInstancesId: string | undefined; /** *The number of instances that are a part of a Reserved Instance account to be listed in the * Reserved Instance Marketplace. This number should be less than or equal to the instance count * associated with the Reserved Instance ID specified in this call.
* @public */ InstanceCount: number | undefined; /** *A list specifying the price of the Standard Reserved Instance for each month remaining in * the Reserved Instance term.
* @public */ PriceSchedules: PriceScheduleSpecification[] | undefined; /** *Unique, case-sensitive identifier you provide to ensure idempotency of your listings. This * helps avoid duplicate listings. For more information, see Ensuring * Idempotency.
* @public */ ClientToken: string | undefined; } /** *Contains the output of CreateReservedInstancesListing.
* @public */ export interface CreateReservedInstancesListingResult { /** *Information about the Standard Reserved Instance listing.
* @public */ ReservedInstancesListings?: ReservedInstancesListing[] | undefined; } /** * @public */ export interface CreateRestoreImageTaskRequest { /** *The name of the Amazon S3 bucket that contains the stored AMI object.
* @public */ Bucket: string | undefined; /** *The name of the stored AMI object in the bucket.
* @public */ ObjectKey: string | undefined; /** *The name for the restored AMI. The name must be unique for AMIs in the Region for this * account. If you do not provide a name, the new AMI gets the same name as the original * AMI.
* @public */ Name?: string | undefined; /** *The tags to apply to the AMI and snapshots on restoration. You can tag the AMI, the * snapshots, or both.
*To tag the AMI, the value for ResourceType must be
* image.
To tag the snapshots, the value for ResourceType must be
* snapshot. The same tag is applied to all of the snapshots that are
* created.
Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is
* DryRunOperation. Otherwise, it is UnauthorizedOperation.
The AMI ID.
* @public */ ImageId?: string | undefined; } /** * @public */ export interface CreateRouteRequest { /** *The ID of a prefix list used for the destination match.
* @public */ DestinationPrefixListId?: string | undefined; /** *The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.
* @public */ VpcEndpointId?: string | undefined; /** *The ID of a transit gateway.
* @public */ TransitGatewayId?: string | undefined; /** *The ID of the local gateway.
* @public */ LocalGatewayId?: string | undefined; /** *The ID of the carrier gateway.
*You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.
* @public */ CarrierGatewayId?: string | undefined; /** *The Amazon Resource Name (ARN) of the core network.
* @public */ CoreNetworkArn?: string | undefined; /** *The Amazon Resource Name (ARN) of the ODB network.
* @public */ OdbNetworkArn?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the route table for the route.
* @public */ RouteTableId: string | undefined; /** *The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18.
The ID of an internet gateway or virtual private gateway attached to your * VPC.
* @public */ GatewayId?: string | undefined; /** *The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.
* @public */ DestinationIpv6CidrBlock?: string | undefined; /** *[IPv6 traffic only] The ID of an egress-only internet gateway.
* @public */ EgressOnlyInternetGatewayId?: string | undefined; /** *The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.
* @public */ InstanceId?: string | undefined; /** *The ID of a network interface.
* @public */ NetworkInterfaceId?: string | undefined; /** *The ID of a VPC peering connection.
* @public */ VpcPeeringConnectionId?: string | undefined; /** *[IPv4 traffic only] The ID of a NAT gateway.
* @public */ NatGatewayId?: string | undefined; } /** * @public */ export interface CreateRouteResult { /** *Returns true if the request succeeds; otherwise, it returns an error.
The private Autonomous System Number (ASN) for the Amazon side of the BGP session. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
* @public */ AmazonSideAsn: number | undefined; /** *Unique, case-sensitive identifier to ensure idempotency of the request.
* @public */ ClientToken?: string | undefined; /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
Indicates whether routes should be persisted after all BGP sessions are terminated.
* @public */ PersistRoutes?: RouteServerPersistRoutesAction | undefined; /** *The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB. Value must be in the range of 1-5. Required if PersistRoutes is enabled.
If you set the duration to 1 minute, then when your network appliance re-establishes BGP with route server, it has 1 minute to relearn it's adjacent network and advertise those routes to route server before route server resumes normal functionality. In most cases, 1 minute is probably sufficient. If, however, you have concerns that your BGP network may not be capable of fully re-establishing and re-learning everything in 1 minute, you can increase the duration up to 5 minutes.
* @public */ PersistRoutesDuration?: number | undefined; /** *Indicates whether SNS notifications should be enabled for route server events. Enabling SNS notifications persists BGP status changes to an SNS topic provisioned by Amazon Web Services.
* @public */ SnsNotificationsEnabled?: boolean | undefined; /** *The tags to apply to the route server during creation.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** *Describes a route server and its configuration.
*Amazon VPC Route Server simplifies routing for traffic between workloads that are deployed within a VPC and its internet gateways. With this feature, * VPC Route Server dynamically updates VPC and internet gateway route tables with your preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those workloads. This enables you to automatically reroute traffic within a VPC, which increases the manageability of VPC routing and interoperability with third-party workloads.
*Route server supports the follow route table types:
*VPC route tables not associated with subnets
*Subnet route tables
*Internet gateway route tables
*Route server does not support route tables associated with virtual private gateways. To propagate routes into a transit gateway route table, use Transit Gateway Connect.
* @public */ export interface RouteServer { /** *The unique identifier of the route server.
* @public */ RouteServerId?: string | undefined; /** *The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
* @public */ AmazonSideAsn?: number | undefined; /** *The current state of the route server.
* @public */ State?: RouteServerState | undefined; /** *Any tags assigned to the route server.
* @public */ Tags?: Tag[] | undefined; /** *The current state of route persistence for the route server.
* @public */ PersistRoutesState?: RouteServerPersistRoutesState | undefined; /** *The number of minutes a route server will wait after BGP is re-established to unpersist the routes in the FIB and RIB. Value must be in the range of 1-5. The default value is 1. Only valid if persistRoutesState is 'enabled'.
If you set the duration to 1 minute, then when your network appliance re-establishes BGP with route server, it has 1 minute to relearn it's adjacent network and advertise those routes to route server before route server resumes normal functionality. In most cases, 1 minute is probably sufficient. If, however, you have concerns that your BGP network may not be capable of fully re-establishing and re-learning everything in 1 minute, you can increase the duration up to 5 minutes.
* @public */ PersistRoutesDuration?: number | undefined; /** *Indicates whether SNS notifications are enabled for the route server. Enabling SNS notifications persists BGP status changes to an SNS topic provisioned by Amazon Web Services.
* @public */ SnsNotificationsEnabled?: boolean | undefined; /** *The ARN of the SNS topic where notifications are published.
* @public */ SnsTopicArn?: string | undefined; } /** * @public */ export interface CreateRouteServerResult { /** *Information about the created route server.
* @public */ RouteServer?: RouteServer | undefined; } /** * @public */ export interface CreateRouteServerEndpointRequest { /** *The ID of the route server for which to create an endpoint.
* @public */ RouteServerId: string | undefined; /** *The ID of the subnet in which to create the route server endpoint.
* @public */ SubnetId: string | undefined; /** *Unique, case-sensitive identifier to ensure idempotency of the request.
* @public */ ClientToken?: string | undefined; /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The tags to apply to the route server endpoint during creation.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** *Describes a route server endpoint and its properties.
*A route server endpoint is an Amazon Web Services-managed component inside a subnet that facilitates BGP (Border Gateway Protocol) connections between your route server and your BGP peers.
* @public */ export interface RouteServerEndpoint { /** *The ID of the route server associated with this endpoint.
* @public */ RouteServerId?: string | undefined; /** *The unique identifier of the route server endpoint.
* @public */ RouteServerEndpointId?: string | undefined; /** *The ID of the VPC containing the endpoint.
* @public */ VpcId?: string | undefined; /** *The ID of the subnet to place the route server endpoint into.
* @public */ SubnetId?: string | undefined; /** *The ID of the Elastic network interface for the endpoint.
* @public */ EniId?: string | undefined; /** *The IP address of the Elastic network interface for the endpoint.
* @public */ EniAddress?: string | undefined; /** *The current state of the route server endpoint.
* @public */ State?: RouteServerEndpointState | undefined; /** *The reason for any failure in endpoint creation or operation.
* @public */ FailureReason?: string | undefined; /** *Any tags assigned to the route server endpoint.
* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface CreateRouteServerEndpointResult { /** *Information about the created route server endpoint.
* @public */ RouteServerEndpoint?: RouteServerEndpoint | undefined; } /** *The BGP configuration options requested for a route server peer.
* @public */ export interface RouteServerBgpOptionsRequest { /** *The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
* @public */ PeerAsn: number | undefined; /** *The requested liveness detection protocol for the BGP peer.
*
* bgp-keepalive: The standard BGP keep alive mechanism (RFC4271) that is stable but may take longer to fail-over in cases of network impact or router failure.
* bfd: An additional Bidirectional Forwarding Detection (BFD) protocol (RFC5880) that enables fast failover by using more sensitive liveness detection.
Defaults to bgp-keepalive.
The ID of the route server endpoint for which to create a peer.
* @public */ RouteServerEndpointId: string | undefined; /** *The IPv4 address of the peer device.
* @public */ PeerAddress: string | undefined; /** *The BGP options for the peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.
* @public */ BgpOptions: RouteServerBgpOptionsRequest | undefined; /** *A check for whether you have the required permissions for the action without actually making the request
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The tags to apply to the route server peer during creation.
* @public */ TagSpecifications?: TagSpecification[] | undefined; } /** *The current status of Bidirectional Forwarding Detection (BFD) for a BGP session.
* @public */ export interface RouteServerBfdStatus { /** *The operational status of the BFD session.
* @public */ Status?: RouteServerBfdState | undefined; } /** *The BGP configuration options for a route server peer.
* @public */ export interface RouteServerBgpOptions { /** *The Border Gateway Protocol (BGP) Autonomous System Number (ASN) for the appliance. Valid values are from 1 to 4294967295. We recommend using a private ASN in the 64512–65534 (16-bit ASN) or 4200000000–4294967294 (32-bit ASN) range.
* @public */ PeerAsn?: number | undefined; /** *The liveness detection protocol used for the BGP peer.
*The requested liveness detection protocol for the BGP peer.
*
* bgp-keepalive: The standard BGP keep alive mechanism (RFC4271) that is stable but may take longer to fail-over in cases of network impact or router failure.
* bfd: An additional Bidirectional Forwarding Detection (BFD) protocol (RFC5880) that enables fast failover by using more sensitive liveness detection.
Defaults to bgp-keepalive.
The current status of a BGP session.
* @public */ export interface RouteServerBgpStatus { /** *The operational status of the BGP session. The status enables you to monitor session liveness if you lack monitoring on your router/appliance.
* @public */ Status?: RouteServerBgpState | undefined; } /** *Describes a BGP peer configuration for a route server endpoint.
*A route server peer is a session between a route server endpoint and the device deployed in Amazon Web Services (such as a firewall appliance or other network security function running on an EC2 instance). The device must meet these requirements:
*Have an elastic network interface in the VPC
*Support BGP (Border Gateway Protocol)
*Can initiate BGP sessions
*The unique identifier of the route server peer.
* @public */ RouteServerPeerId?: string | undefined; /** *The ID of the route server endpoint associated with this peer.
* @public */ RouteServerEndpointId?: string | undefined; /** *The ID of the route server associated with this peer.
* @public */ RouteServerId?: string | undefined; /** *The ID of the VPC containing the route server peer.
* @public */ VpcId?: string | undefined; /** *The ID of the subnet containing the route server peer.
* @public */ SubnetId?: string | undefined; /** *The current state of the route server peer.
* @public */ State?: RouteServerPeerState | undefined; /** *The reason for any failure in peer creation or operation.
* @public */ FailureReason?: string | undefined; /** *The ID of the Elastic network interface for the route server endpoint.
* @public */ EndpointEniId?: string | undefined; /** *The IP address of the Elastic network interface for the route server endpoint.
* @public */ EndpointEniAddress?: string | undefined; /** *The IPv4 address of the peer device.
* @public */ PeerAddress?: string | undefined; /** *The BGP configuration options for this peer, including ASN (Autonomous System Number) and BFD (Bidrectional Forwarding Detection) settings.
* @public */ BgpOptions?: RouteServerBgpOptions | undefined; /** *The current status of the BGP session with this peer.
* @public */ BgpStatus?: RouteServerBgpStatus | undefined; /** *The current status of the BFD session with this peer.
* @public */ BfdStatus?: RouteServerBfdStatus | undefined; /** *Any tags assigned to the route server peer.
* @public */ Tags?: Tag[] | undefined; } /** * @public */ export interface CreateRouteServerPeerResult { /** *Information about the created route server peer.
* @public */ RouteServerPeer?: RouteServerPeer | undefined; } /** * @public */ export interface CreateRouteTableRequest { /** *The tags to assign to the route table.
* @public */ TagSpecifications?: TagSpecification[] | undefined; /** *Unique, case-sensitive identifier that you provide to ensure the idempotency of the * request. For more information, see Ensuring idempotency.
* @public */ ClientToken?: string | undefined; /** *Checks whether you have the required permissions for the action, without actually making the request,
* and provides an error response. If you have the required permissions, the error response is DryRunOperation.
* Otherwise, it is UnauthorizedOperation.
The ID of the VPC.
* @public */ VpcId: string | undefined; } /** *Describes an association between a route table and a subnet or gateway.
* @public */ export interface RouteTableAssociation { /** *Indicates whether this is the main route table.
* @public */ Main?: boolean | undefined; /** *The ID of the association.
* @public */ RouteTableAssociationId?: string | undefined; /** *The ID of the route table.
* @public */ RouteTableId?: string | undefined; /** *The ID of the subnet. A subnet ID is not returned for an implicit association.
* @public */ SubnetId?: string | undefined; /** *The ID of the internet gateway or virtual private gateway.
* @public */ GatewayId?: string | undefined; /** *The ID of a public IPv4 pool. A public IPv4 pool is a pool of IPv4 addresses that you've brought to Amazon Web Services with BYOIP.
* @public */ PublicIpv4Pool?: string | undefined; /** *The state of the association.
* @public */ AssociationState?: RouteTableAssociationState | undefined; } /** *Describes a virtual private gateway propagating route.
* @public */ export interface PropagatingVgw { /** *The ID of the virtual private gateway.
* @public */ GatewayId?: string | undefined; } /** *Describes a route in a route table.
* @public */ export interface Route { /** *The IPv4 CIDR block used for the destination match.
* @public */ DestinationCidrBlock?: string | undefined; /** *The IPv6 CIDR block used for the destination match.
* @public */ DestinationIpv6CidrBlock?: string | undefined; /** *The prefix of the Amazon Web Services service.
* @public */ DestinationPrefixListId?: string | undefined; /** *The ID of the egress-only internet gateway.
* @public */ EgressOnlyInternetGatewayId?: string | undefined; /** *The ID of a gateway attached to your VPC.
* @public */ GatewayId?: string | undefined; /** *The ID of a NAT instance in your VPC.
* @public */ InstanceId?: string | undefined; /** *The ID of Amazon Web Services account that owns the instance.
* @public */ InstanceOwnerId?: string | undefined; /** *The ID of a NAT gateway.
* @public */ NatGatewayId?: string | undefined; /** *The ID of a transit gateway.
* @public */ TransitGatewayId?: string | undefined; /** *The ID of the local gateway.
* @public */ LocalGatewayId?: string | undefined; /** *The ID of the carrier gateway.
* @public */ CarrierGatewayId?: string | undefined; /** *The ID of the network interface.
* @public */ NetworkInterfaceId?: string | undefined; /** *Describes how the route was created.
*
* CreateRouteTable - The route was automatically created when the route table was created.
* CreateRoute - The route was manually added to the route table.
* EnableVgwRoutePropagation - The route was propagated by route propagation.
* Advertisement - The route was created dynamically by Amazon VPC Route Server.
The state of the route. The blackhole state indicates that the
* route's target isn't available (for example, the specified gateway isn't attached to the
* VPC, or the specified NAT instance has been terminated).
The ID of a VPC peering connection.
* @public */ VpcPeeringConnectionId?: string | undefined; /** *The Amazon Resource Name (ARN) of the core network.
* @public */ CoreNetworkArn?: string | undefined; /** *The Amazon Resource Name (ARN) of the ODB network.
* @public */ OdbNetworkArn?: string | undefined; /** *The next hop IP address for routes propagated by VPC Route * Server into VPC route tables.
* @public */ IpAddress?: string | undefined; } /** *Describes a route table.
* @public */ export interface RouteTable { /** *The associations between the route table and your subnets or gateways.
* @public */ Associations?: RouteTableAssociation[] | undefined; /** *Any virtual private gateway (VGW) propagating routes.
* @public */ PropagatingVgws?: PropagatingVgw[] | undefined; /** *The ID of the route table.
* @public */ RouteTableId?: string | undefined; /** *The routes in the route table.
* @public */ Routes?: Route[] | undefined; /** *Any tags assigned to the route table.
* @public */ Tags?: Tag[] | undefined; /** *The ID of the VPC.
* @public */ VpcId?: string | undefined; /** *The ID of the Amazon Web Services account that owns the route table.
* @public */ OwnerId?: string | undefined; } /** * @public */ export interface CreateRouteTableResult { /** *Information about the route table.
* @public */ RouteTable?: RouteTable | undefined; /** *Unique, case-sensitive identifier to ensure the idempotency of the request. Only returned if a client token was provided in the request.
* @public */ ClientToken?: string | undefined; }