import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { EC2ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EC2Client"; import type { GetInstanceTypesFromInstanceRequirementsRequest, GetInstanceTypesFromInstanceRequirementsResult } from "../models/models_6"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link GetInstanceTypesFromInstanceRequirementsCommand}. */ export interface GetInstanceTypesFromInstanceRequirementsCommandInput extends GetInstanceTypesFromInstanceRequirementsRequest { } /** * @public * * The output of {@link GetInstanceTypesFromInstanceRequirementsCommand}. */ export interface GetInstanceTypesFromInstanceRequirementsCommandOutput extends GetInstanceTypesFromInstanceRequirementsResult, __MetadataBearer { } declare const GetInstanceTypesFromInstanceRequirementsCommand_base: { new (input: GetInstanceTypesFromInstanceRequirementsCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: GetInstanceTypesFromInstanceRequirementsCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Returns a list of instance types with the specified instance attributes. You can * use the response to preview the instance types without launching instances. Note * that the response does not consider capacity.

*

When you specify multiple parameters, you get instance types that satisfy all of the * specified parameters. If you specify multiple values for a parameter, you get instance * types that satisfy any of the specified values.

*

For more information, see Preview instance types with specified attributes, Specify attributes for instance type selection for EC2 Fleet or Spot Fleet, and Spot * placement score in the Amazon EC2 User Guide, and Creating * mixed instance groups using attribute-based instance type selection in the * Amazon EC2 Auto Scaling User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { EC2Client, GetInstanceTypesFromInstanceRequirementsCommand } from "@aws-sdk/client-ec2"; // ES Modules import * // const { EC2Client, GetInstanceTypesFromInstanceRequirementsCommand } = require("@aws-sdk/client-ec2"); // CommonJS import * // import type { EC2ClientConfig } from "@aws-sdk/client-ec2"; * const config = {}; // type is EC2ClientConfig * const client = new EC2Client(config); * const input = { // GetInstanceTypesFromInstanceRequirementsRequest * DryRun: true || false, * ArchitectureTypes: [ // ArchitectureTypeSet // required * "i386" || "x86_64" || "arm64" || "x86_64_mac" || "arm64_mac", * ], * VirtualizationTypes: [ // VirtualizationTypeSet // required * "hvm" || "paravirtual", * ], * InstanceRequirements: { // InstanceRequirementsRequest * VCpuCount: { // VCpuCountRangeRequest * Min: Number("int"), // required * Max: Number("int"), * }, * MemoryMiB: { // MemoryMiBRequest * Min: Number("int"), // required * Max: Number("int"), * }, * CpuManufacturers: [ // CpuManufacturerSet * "intel" || "amd" || "amazon-web-services" || "apple", * ], * MemoryGiBPerVCpu: { // MemoryGiBPerVCpuRequest * Min: Number("double"), * Max: Number("double"), * }, * ExcludedInstanceTypes: [ // ExcludedInstanceTypeSet * "STRING_VALUE", * ], * InstanceGenerations: [ // InstanceGenerationSet * "current" || "previous", * ], * SpotMaxPricePercentageOverLowestPrice: Number("int"), * OnDemandMaxPricePercentageOverLowestPrice: Number("int"), * BareMetal: "included" || "required" || "excluded", * BurstablePerformance: "included" || "required" || "excluded", * RequireHibernateSupport: true || false, * NetworkInterfaceCount: { // NetworkInterfaceCountRequest * Min: Number("int"), * Max: Number("int"), * }, * LocalStorage: "included" || "required" || "excluded", * LocalStorageTypes: [ // LocalStorageTypeSet * "hdd" || "ssd", * ], * TotalLocalStorageGB: { // TotalLocalStorageGBRequest * Min: Number("double"), * Max: Number("double"), * }, * BaselineEbsBandwidthMbps: { // BaselineEbsBandwidthMbpsRequest * Min: Number("int"), * Max: Number("int"), * }, * AcceleratorTypes: [ // AcceleratorTypeSet * "gpu" || "fpga" || "inference" || "media", * ], * AcceleratorCount: { // AcceleratorCountRequest * Min: Number("int"), * Max: Number("int"), * }, * AcceleratorManufacturers: [ // AcceleratorManufacturerSet * "amazon-web-services" || "amd" || "nvidia" || "xilinx" || "habana", * ], * AcceleratorNames: [ // AcceleratorNameSet * "a100" || "inferentia" || "k520" || "k80" || "m60" || "radeon-pro-v520" || "t4" || "vu9p" || "v100" || "a10g" || "h100" || "t4g" || "l40s" || "l4" || "gaudi-hl-205" || "inferentia2" || "trainium" || "trainium2" || "u30", * ], * AcceleratorTotalMemoryMiB: { // AcceleratorTotalMemoryMiBRequest * Min: Number("int"), * Max: Number("int"), * }, * NetworkBandwidthGbps: { // NetworkBandwidthGbpsRequest * Min: Number("double"), * Max: Number("double"), * }, * AllowedInstanceTypes: [ // AllowedInstanceTypeSet * "STRING_VALUE", * ], * MaxSpotPriceAsPercentageOfOptimalOnDemandPrice: Number("int"), * BaselinePerformanceFactors: { // BaselinePerformanceFactorsRequest * Cpu: { // CpuPerformanceFactorRequest * References: [ // PerformanceFactorReferenceSetRequest * { // PerformanceFactorReferenceRequest * InstanceFamily: "STRING_VALUE", * }, * ], * }, * }, * RequireEncryptionInTransit: true || false, * }, * MaxResults: Number("int"), * NextToken: "STRING_VALUE", * Context: "STRING_VALUE", * }; * const command = new GetInstanceTypesFromInstanceRequirementsCommand(input); * const response = await client.send(command); * // { // GetInstanceTypesFromInstanceRequirementsResult * // InstanceTypes: [ // InstanceTypeInfoFromInstanceRequirementsSet * // { // InstanceTypeInfoFromInstanceRequirements * // InstanceType: "STRING_VALUE", * // }, * // ], * // NextToken: "STRING_VALUE", * // }; * * ``` * * @param GetInstanceTypesFromInstanceRequirementsCommandInput - {@link GetInstanceTypesFromInstanceRequirementsCommandInput} * @returns {@link GetInstanceTypesFromInstanceRequirementsCommandOutput} * @see {@link GetInstanceTypesFromInstanceRequirementsCommandInput} for command's `input` shape. * @see {@link GetInstanceTypesFromInstanceRequirementsCommandOutput} for command's `response` shape. * @see {@link EC2ClientResolvedConfig | config} for EC2Client's `config` shape. * * @throws {@link EC2ServiceException} *

Base exception class for all service exceptions from EC2 service.

* * * @public */ export declare class GetInstanceTypesFromInstanceRequirementsCommand extends GetInstanceTypesFromInstanceRequirementsCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: GetInstanceTypesFromInstanceRequirementsRequest; output: GetInstanceTypesFromInstanceRequirementsResult; }; sdk: { input: GetInstanceTypesFromInstanceRequirementsCommandInput; output: GetInstanceTypesFromInstanceRequirementsCommandOutput; }; }; }