diff --git a/clients/client-emr/README.md b/clients/client-emr/README.md index 415da7d50b61..ef56417022c9 100644 --- a/clients/client-emr/README.md +++ b/clients/client-emr/README.md @@ -476,6 +476,14 @@ ListStudioSessionMappings [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-emr/classes/liststudiosessionmappingscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-emr/interfaces/liststudiosessionmappingscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-emr/interfaces/liststudiosessionmappingscommandoutput.html) + +
+ +ListSupportedInstanceTypes + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-emr/classes/listsupportedinstancetypescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-emr/interfaces/listsupportedinstancetypescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-emr/interfaces/listsupportedinstancetypescommandoutput.html) +
diff --git a/clients/client-emr/src/EMR.ts b/clients/client-emr/src/EMR.ts index 424f1dbf1adf..76be5836aa24 100644 --- a/clients/client-emr/src/EMR.ts +++ b/clients/client-emr/src/EMR.ts @@ -156,6 +156,11 @@ import { ListStudioSessionMappingsCommandInput, ListStudioSessionMappingsCommandOutput, } from "./commands/ListStudioSessionMappingsCommand"; +import { + ListSupportedInstanceTypesCommand, + ListSupportedInstanceTypesCommandInput, + ListSupportedInstanceTypesCommandOutput, +} from "./commands/ListSupportedInstanceTypesCommand"; import { ModifyClusterCommand, ModifyClusterCommandInput, @@ -280,6 +285,7 @@ const commands = { ListStepsCommand, ListStudiosCommand, ListStudioSessionMappingsCommand, + ListSupportedInstanceTypesCommand, ModifyClusterCommand, ModifyInstanceFleetCommand, ModifyInstanceGroupsCommand, @@ -817,6 +823,23 @@ export interface EMR { cb: (err: any, data?: ListStudioSessionMappingsCommandOutput) => void ): void; + /** + * @see {@link ListSupportedInstanceTypesCommand} + */ + listSupportedInstanceTypes( + args: ListSupportedInstanceTypesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listSupportedInstanceTypes( + args: ListSupportedInstanceTypesCommandInput, + cb: (err: any, data?: ListSupportedInstanceTypesCommandOutput) => void + ): void; + listSupportedInstanceTypes( + args: ListSupportedInstanceTypesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListSupportedInstanceTypesCommandOutput) => void + ): void; + /** * @see {@link ModifyClusterCommand} */ diff --git a/clients/client-emr/src/EMRClient.ts b/clients/client-emr/src/EMRClient.ts index c1acaa363571..24cacd87ce3f 100644 --- a/clients/client-emr/src/EMRClient.ts +++ b/clients/client-emr/src/EMRClient.ts @@ -133,6 +133,10 @@ import { ListStudioSessionMappingsCommandInput, ListStudioSessionMappingsCommandOutput, } from "./commands/ListStudioSessionMappingsCommand"; +import { + ListSupportedInstanceTypesCommandInput, + ListSupportedInstanceTypesCommandOutput, +} from "./commands/ListSupportedInstanceTypesCommand"; import { ModifyClusterCommandInput, ModifyClusterCommandOutput } from "./commands/ModifyClusterCommand"; import { ModifyInstanceFleetCommandInput, @@ -242,6 +246,7 @@ export type ServiceInputTypes = | ListStepsCommandInput | ListStudioSessionMappingsCommandInput | ListStudiosCommandInput + | ListSupportedInstanceTypesCommandInput | ModifyClusterCommandInput | ModifyInstanceFleetCommandInput | ModifyInstanceGroupsCommandInput @@ -300,6 +305,7 @@ export type ServiceOutputTypes = | ListStepsCommandOutput | ListStudioSessionMappingsCommandOutput | ListStudiosCommandOutput + | ListSupportedInstanceTypesCommandOutput | ModifyClusterCommandOutput | ModifyInstanceFleetCommandOutput | ModifyInstanceGroupsCommandOutput diff --git a/clients/client-emr/src/commands/ListSupportedInstanceTypesCommand.ts b/clients/client-emr/src/commands/ListSupportedInstanceTypesCommand.ts new file mode 100644 index 000000000000..5a36f08cb3de --- /dev/null +++ b/clients/client-emr/src/commands/ListSupportedInstanceTypesCommand.ts @@ -0,0 +1,169 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { EMRClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EMRClient"; +import { ListSupportedInstanceTypesInput, ListSupportedInstanceTypesOutput } from "../models/models_0"; +import { de_ListSupportedInstanceTypesCommand, se_ListSupportedInstanceTypesCommand } from "../protocols/Aws_json1_1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link ListSupportedInstanceTypesCommand}. + */ +export interface ListSupportedInstanceTypesCommandInput extends ListSupportedInstanceTypesInput {} +/** + * @public + * + * The output of {@link ListSupportedInstanceTypesCommand}. + */ +export interface ListSupportedInstanceTypesCommandOutput extends ListSupportedInstanceTypesOutput, __MetadataBearer {} + +/** + * @public + *

A list of the instance types that Amazon EMR supports. You can filter the + * list by Amazon Web Services Region and Amazon EMR release.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EMRClient, ListSupportedInstanceTypesCommand } from "@aws-sdk/client-emr"; // ES Modules import + * // const { EMRClient, ListSupportedInstanceTypesCommand } = require("@aws-sdk/client-emr"); // CommonJS import + * const client = new EMRClient(config); + * const input = { // ListSupportedInstanceTypesInput + * ReleaseLabel: "STRING_VALUE", // required + * Marker: "STRING_VALUE", + * }; + * const command = new ListSupportedInstanceTypesCommand(input); + * const response = await client.send(command); + * // { // ListSupportedInstanceTypesOutput + * // SupportedInstanceTypes: [ // SupportedInstanceTypesList + * // { // SupportedInstanceType + * // Type: "STRING_VALUE", + * // MemoryGB: Number("float"), + * // StorageGB: Number("int"), + * // VCPU: Number("int"), + * // Is64BitsOnly: true || false, + * // InstanceFamilyId: "STRING_VALUE", + * // EbsOptimizedAvailable: true || false, + * // EbsOptimizedByDefault: true || false, + * // NumberOfDisks: Number("int"), + * // EbsStorageOnly: true || false, + * // Architecture: "STRING_VALUE", + * // }, + * // ], + * // Marker: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListSupportedInstanceTypesCommandInput - {@link ListSupportedInstanceTypesCommandInput} + * @returns {@link ListSupportedInstanceTypesCommandOutput} + * @see {@link ListSupportedInstanceTypesCommandInput} for command's `input` shape. + * @see {@link ListSupportedInstanceTypesCommandOutput} for command's `response` shape. + * @see {@link EMRClientResolvedConfig | config} for EMRClient's `config` shape. + * + * @throws {@link InternalServerException} (server fault) + *

This exception occurs when there is an internal failure in the Amazon EMR + * service.

+ * + * @throws {@link InvalidRequestException} (client fault) + *

This exception occurs when there is something wrong with user input.

+ * + * @throws {@link EMRServiceException} + *

Base exception class for all service exceptions from EMR service.

+ * + */ +export class ListSupportedInstanceTypesCommand extends $Command< + ListSupportedInstanceTypesCommandInput, + ListSupportedInstanceTypesCommandOutput, + EMRClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: ListSupportedInstanceTypesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EMRClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, ListSupportedInstanceTypesCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EMRClient"; + const commandName = "ListSupportedInstanceTypesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: ListSupportedInstanceTypesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_ListSupportedInstanceTypesCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_ListSupportedInstanceTypesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-emr/src/commands/index.ts b/clients/client-emr/src/commands/index.ts index df9e1bddf25f..e0a83d878546 100644 --- a/clients/client-emr/src/commands/index.ts +++ b/clients/client-emr/src/commands/index.ts @@ -33,6 +33,7 @@ export * from "./ListSecurityConfigurationsCommand"; export * from "./ListStepsCommand"; export * from "./ListStudioSessionMappingsCommand"; export * from "./ListStudiosCommand"; +export * from "./ListSupportedInstanceTypesCommand"; export * from "./ModifyClusterCommand"; export * from "./ModifyInstanceFleetCommand"; export * from "./ModifyInstanceGroupsCommand"; diff --git a/clients/client-emr/src/models/models_0.ts b/clients/client-emr/src/models/models_0.ts index d32ea1379145..9105ad99ee6a 100644 --- a/clients/client-emr/src/models/models_0.ts +++ b/clients/client-emr/src/models/models_0.ts @@ -300,10 +300,9 @@ export interface SpotProvisioningSpecification { BlockDurationMinutes?: number; /** - *

Specifies one of the following strategies to launch Spot Instance fleets: price-capacity-optimized, capacity-optimized, lowest-price, or diversified. For more information on the provisioning strategies, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide for Linux Instances.

- * - *

When you launch a Spot Instance fleet with the old console, it automatically launches with the capacity-optimized strategy. You can't change the allocation strategy from the old console.

- *
+ *

Specifies the strategy to use in launching Spot Instance fleets. Currently, the only + * option is capacity-optimized (the default), which launches instances from Spot Instance + * pools with optimal capacity for the number of instances that are launching.

*/ AllocationStrategy?: SpotProvisioningAllocationStrategy | string; } @@ -4725,6 +4724,115 @@ export interface ListStudioSessionMappingsOutput { Marker?: string; } +/** + * @public + */ +export interface ListSupportedInstanceTypesInput { + /** + *

The Amazon EMR release label determines the versions of open-source + * application packages that Amazon EMR has installed on the cluster. + * Release labels are in the format emr-x.x.x, where x.x.x is an Amazon EMR release number such as emr-6.10.0. For more information about Amazon EMR releases and their included application versions and features, see the + * + * Amazon EMR Release + * Guide + * .

+ */ + ReleaseLabel: string | undefined; + + /** + *

The pagination token that marks the next set of results to retrieve.

+ */ + Marker?: string; +} + +/** + * @public + *

An instance type that the specified Amazon EMR release supports.

+ */ +export interface SupportedInstanceType { + /** + *

The Amazon EC2 instance + * type, for example m5.xlarge, of the + * SupportedInstanceType.

+ */ + Type?: string; + + /** + *

The amount of memory that is available to Amazon EMR from the SupportedInstanceType. The kernel and hypervisor + * software consume some memory, so this value might be lower than the overall memory for the + * instance type.

+ */ + MemoryGB?: number; + + /** + *

+ * StorageGB represents the storage capacity of the + * SupportedInstanceType. This value is 0 for Amazon EBS-only instance types.

+ */ + StorageGB?: number; + + /** + *

The number of vCPUs available for the SupportedInstanceType.

+ */ + VCPU?: number; + + /** + *

Indicates whether the SupportedInstanceType only supports 64-bit + * architecture.

+ */ + Is64BitsOnly?: boolean; + + /** + *

The Amazon EC2 family and generation for the + * SupportedInstanceType.

+ */ + InstanceFamilyId?: string; + + /** + *

Indicates whether the SupportedInstanceType supports Amazon EBS + * optimization.

+ */ + EbsOptimizedAvailable?: boolean; + + /** + *

Indicates whether the SupportedInstanceType uses Amazon EBS + * optimization by default.

+ */ + EbsOptimizedByDefault?: boolean; + + /** + *

Number of disks for the SupportedInstanceType. This value is 0 + * for Amazon EBS-only instance types.

+ */ + NumberOfDisks?: number; + + /** + *

Indicates whether the SupportedInstanceType only supports Amazon EBS.

+ */ + EbsStorageOnly?: boolean; + + /** + *

The CPU architecture, for example X86_64 or AARCH64.

+ */ + Architecture?: string; +} + +/** + * @public + */ +export interface ListSupportedInstanceTypesOutput { + /** + *

The list of instance types that the release specified in + * ListSupportedInstanceTypesInput$ReleaseLabel supports, filtered by Amazon Web Services Region.

+ */ + SupportedInstanceTypes?: SupportedInstanceType[]; + + /** + *

The pagination token that marks the next set of results to retrieve.

+ */ + Marker?: string; +} + /** * @public */ diff --git a/clients/client-emr/src/pagination/ListSupportedInstanceTypesPaginator.ts b/clients/client-emr/src/pagination/ListSupportedInstanceTypesPaginator.ts new file mode 100644 index 000000000000..1f8f716e9367 --- /dev/null +++ b/clients/client-emr/src/pagination/ListSupportedInstanceTypesPaginator.ts @@ -0,0 +1,49 @@ +// smithy-typescript generated code +import { Paginator } from "@aws-sdk/types"; + +import { + ListSupportedInstanceTypesCommand, + ListSupportedInstanceTypesCommandInput, + ListSupportedInstanceTypesCommandOutput, +} from "../commands/ListSupportedInstanceTypesCommand"; +import { EMRClient } from "../EMRClient"; +import { EMRPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: EMRClient, + input: ListSupportedInstanceTypesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListSupportedInstanceTypesCommand(input), ...args); +}; +/** + * @public + */ +export async function* paginateListSupportedInstanceTypes( + config: EMRPaginationConfiguration, + input: ListSupportedInstanceTypesCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.Marker + let token: typeof input.Marker | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListSupportedInstanceTypesCommandOutput; + while (hasNext) { + input.Marker = token; + if (config.client instanceof EMRClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected EMR | EMRClient"); + } + yield page; + const prevToken = token; + token = page.Marker; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-emr/src/pagination/index.ts b/clients/client-emr/src/pagination/index.ts index aebd81baf72f..7eee46ef9454 100644 --- a/clients/client-emr/src/pagination/index.ts +++ b/clients/client-emr/src/pagination/index.ts @@ -11,3 +11,4 @@ export * from "./ListSecurityConfigurationsPaginator"; export * from "./ListStepsPaginator"; export * from "./ListStudioSessionMappingsPaginator"; export * from "./ListStudiosPaginator"; +export * from "./ListSupportedInstanceTypesPaginator"; diff --git a/clients/client-emr/src/protocols/Aws_json1_1.ts b/clients/client-emr/src/protocols/Aws_json1_1.ts index 814793b1a577..f93c92f7b238 100644 --- a/clients/client-emr/src/protocols/Aws_json1_1.ts +++ b/clients/client-emr/src/protocols/Aws_json1_1.ts @@ -11,6 +11,7 @@ import { expectString as __expectString, expectUnion as __expectUnion, limitedParseDouble as __limitedParseDouble, + limitedParseFloat32 as __limitedParseFloat32, parseEpochTimestamp as __parseEpochTimestamp, serializeFloat as __serializeFloat, take, @@ -102,6 +103,10 @@ import { ListStudioSessionMappingsCommandInput, ListStudioSessionMappingsCommandOutput, } from "../commands/ListStudioSessionMappingsCommand"; +import { + ListSupportedInstanceTypesCommandInput, + ListSupportedInstanceTypesCommandOutput, +} from "../commands/ListSupportedInstanceTypesCommand"; import { ModifyClusterCommandInput, ModifyClusterCommandOutput } from "../commands/ModifyClusterCommand"; import { ModifyInstanceFleetCommandInput, @@ -268,6 +273,8 @@ import { ListStudioSessionMappingsOutput, ListStudiosInput, ListStudiosOutput, + ListSupportedInstanceTypesInput, + ListSupportedInstanceTypesOutput, ManagedScalingPolicy, MetricDimension, ModifyClusterInput, @@ -320,6 +327,7 @@ import { StopNotebookExecutionInput, Studio, StudioSummary, + SupportedInstanceType, SupportedProductConfig, Tag, TerminateJobFlowsInput, @@ -770,6 +778,19 @@ export const se_ListStudioSessionMappingsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1ListSupportedInstanceTypesCommand + */ +export const se_ListSupportedInstanceTypesCommand = async ( + input: ListSupportedInstanceTypesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListSupportedInstanceTypes"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1ModifyClusterCommand */ @@ -2647,6 +2668,55 @@ const de_ListStudioSessionMappingsCommandError = async ( } }; +/** + * deserializeAws_json1_1ListSupportedInstanceTypesCommand + */ +export const de_ListSupportedInstanceTypesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_ListSupportedInstanceTypesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListSupportedInstanceTypesOutput(data, context); + const response: ListSupportedInstanceTypesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1ListSupportedInstanceTypesCommandError + */ +const de_ListSupportedInstanceTypesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.emr#InternalServerException": + throw await de_InternalServerExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.emr#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1ModifyClusterCommand */ @@ -3889,6 +3959,8 @@ const se_ListNotebookExecutionsInput = (input: ListNotebookExecutionsInput, cont // se_ListStudiosInput omitted. +// se_ListSupportedInstanceTypesInput omitted. + // se_ManagedScalingPolicy omitted. // se_MetricDimension omitted. @@ -4868,6 +4940,19 @@ const de_ListStudiosOutput = (output: any, context: __SerdeContext): ListStudios }) as any; }; +/** + * deserializeAws_json1_1ListSupportedInstanceTypesOutput + */ +const de_ListSupportedInstanceTypesOutput = ( + output: any, + context: __SerdeContext +): ListSupportedInstanceTypesOutput => { + return take(output, { + Marker: __expectString, + SupportedInstanceTypes: (_: any) => de_SupportedInstanceTypesList(_, context), + }) as any; +}; + // de_ManagedScalingPolicy omitted. // de_MetricDimension omitted. @@ -5258,6 +5343,37 @@ const de_StudioSummaryList = (output: any, context: __SerdeContext): StudioSumma // de_SubnetIdList omitted. +/** + * deserializeAws_json1_1SupportedInstanceType + */ +const de_SupportedInstanceType = (output: any, context: __SerdeContext): SupportedInstanceType => { + return take(output, { + Architecture: __expectString, + EbsOptimizedAvailable: __expectBoolean, + EbsOptimizedByDefault: __expectBoolean, + EbsStorageOnly: __expectBoolean, + InstanceFamilyId: __expectString, + Is64BitsOnly: __expectBoolean, + MemoryGB: __limitedParseFloat32, + NumberOfDisks: __expectInt32, + StorageGB: __expectInt32, + Type: __expectString, + VCPU: __expectInt32, + }) as any; +}; + +/** + * deserializeAws_json1_1SupportedInstanceTypesList + */ +const de_SupportedInstanceTypesList = (output: any, context: __SerdeContext): SupportedInstanceType[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_SupportedInstanceType(entry, context); + }); + return retVal; +}; + // de_SupportedProductsList omitted. // de_Tag omitted. diff --git a/codegen/sdk-codegen/aws-models/emr.json b/codegen/sdk-codegen/aws-models/emr.json index 8058498e16bb..c5370ce7ad72 100644 --- a/codegen/sdk-codegen/aws-models/emr.json +++ b/codegen/sdk-codegen/aws-models/emr.json @@ -2677,6 +2677,9 @@ { "target": "com.amazonaws.emr#ListStudioSessionMappings" }, + { + "target": "com.amazonaws.emr#ListSupportedInstanceTypes" + }, { "target": "com.amazonaws.emr#ModifyCluster" }, @@ -3949,6 +3952,12 @@ "smithy.api#documentation": "

The details of the step failure. The service attempts to detect the root cause for many\n common failures.

" } }, + "com.amazonaws.emr#Float": { + "type": "float", + "traits": { + "smithy.api#default": 0 + } + }, "com.amazonaws.emr#GetAutoTerminationPolicy": { "type": "operation", "input": { @@ -7037,6 +7046,71 @@ "smithy.api#output": {} } }, + "com.amazonaws.emr#ListSupportedInstanceTypes": { + "type": "operation", + "input": { + "target": "com.amazonaws.emr#ListSupportedInstanceTypesInput" + }, + "output": { + "target": "com.amazonaws.emr#ListSupportedInstanceTypesOutput" + }, + "errors": [ + { + "target": "com.amazonaws.emr#InternalServerException" + }, + { + "target": "com.amazonaws.emr#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

A list of the instance types that Amazon EMR supports. You can filter the\n list by Amazon Web Services Region and Amazon EMR release.

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker" + } + } + }, + "com.amazonaws.emr#ListSupportedInstanceTypesInput": { + "type": "structure", + "members": { + "ReleaseLabel": { + "target": "com.amazonaws.emr#String", + "traits": { + "smithy.api#documentation": "

The Amazon EMR release label determines the versions of open-source\n application packages that Amazon EMR has installed on the cluster.\n Release labels are in the format emr-x.x.x, where x.x.x is an Amazon EMR release number such as emr-6.10.0. For more information about Amazon EMR releases and their included application versions and features, see the\n \n Amazon EMR Release\n Guide\n .

", + "smithy.api#required": {} + } + }, + "Marker": { + "target": "com.amazonaws.emr#String", + "traits": { + "smithy.api#documentation": "

The pagination token that marks the next set of results to retrieve.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.emr#ListSupportedInstanceTypesOutput": { + "type": "structure", + "members": { + "SupportedInstanceTypes": { + "target": "com.amazonaws.emr#SupportedInstanceTypesList", + "traits": { + "smithy.api#documentation": "

The list of instance types that the release specified in\n ListSupportedInstanceTypesInput$ReleaseLabel supports, filtered by Amazon Web Services Region.

" + } + }, + "Marker": { + "target": "com.amazonaws.emr#String", + "traits": { + "smithy.api#documentation": "

The pagination token that marks the next set of results to retrieve.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.emr#Long": { "type": "long", "traits": { @@ -8944,7 +9018,7 @@ "AllocationStrategy": { "target": "com.amazonaws.emr#SpotProvisioningAllocationStrategy", "traits": { - "smithy.api#documentation": "

Specifies one of the following strategies to launch Spot Instance fleets: price-capacity-optimized, capacity-optimized, lowest-price, or diversified. For more information on the provisioning strategies, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide for Linux Instances.

\n \n

When you launch a Spot Instance fleet with the old console, it automatically launches with the capacity-optimized strategy. You can't change the allocation strategy from the old console.

\n
" + "smithy.api#documentation": "

Specifies the strategy to use in launching Spot Instance fleets. Currently, the only\n option is capacity-optimized (the default), which launches instances from Spot Instance\n pools with optimal capacity for the number of instances that are launching.

" } } }, @@ -9765,6 +9839,91 @@ "target": "com.amazonaws.emr#String" } }, + "com.amazonaws.emr#SupportedInstanceType": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.emr#String", + "traits": { + "smithy.api#documentation": "

The Amazon EC2 instance\n type, for example m5.xlarge, of the\n SupportedInstanceType.

" + } + }, + "MemoryGB": { + "target": "com.amazonaws.emr#Float", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The amount of memory that is available to Amazon EMR from the SupportedInstanceType. The kernel and hypervisor\n software consume some memory, so this value might be lower than the overall memory for the\n instance type.

" + } + }, + "StorageGB": { + "target": "com.amazonaws.emr#Integer", + "traits": { + "smithy.api#documentation": "

\n StorageGB represents the storage capacity of the\n SupportedInstanceType. This value is 0 for Amazon EBS-only instance types.

" + } + }, + "VCPU": { + "target": "com.amazonaws.emr#Integer", + "traits": { + "smithy.api#documentation": "

The number of vCPUs available for the SupportedInstanceType.

" + } + }, + "Is64BitsOnly": { + "target": "com.amazonaws.emr#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether the SupportedInstanceType only supports 64-bit\n architecture.

" + } + }, + "InstanceFamilyId": { + "target": "com.amazonaws.emr#String", + "traits": { + "smithy.api#documentation": "

The Amazon EC2 family and generation for the\n SupportedInstanceType.

" + } + }, + "EbsOptimizedAvailable": { + "target": "com.amazonaws.emr#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether the SupportedInstanceType supports Amazon EBS\n optimization.

" + } + }, + "EbsOptimizedByDefault": { + "target": "com.amazonaws.emr#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether the SupportedInstanceType uses Amazon EBS\n optimization by default.

" + } + }, + "NumberOfDisks": { + "target": "com.amazonaws.emr#Integer", + "traits": { + "smithy.api#documentation": "

Number of disks for the SupportedInstanceType. This value is 0\n for Amazon EBS-only instance types.

" + } + }, + "EbsStorageOnly": { + "target": "com.amazonaws.emr#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether the SupportedInstanceType only supports Amazon EBS.

" + } + }, + "Architecture": { + "target": "com.amazonaws.emr#String", + "traits": { + "smithy.api#documentation": "

The CPU architecture, for example X86_64 or AARCH64.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An instance type that the specified Amazon EMR release supports.

" + } + }, + "com.amazonaws.emr#SupportedInstanceTypesList": { + "type": "list", + "member": { + "target": "com.amazonaws.emr#SupportedInstanceType" + } + }, "com.amazonaws.emr#SupportedProductConfig": { "type": "structure", "members": {