From 81d94a2b5ced1bdac4ab101b40f5f380f8de384f Mon Sep 17 00:00:00 2001 From: awstools Date: Mon, 23 Dec 2024 19:20:52 +0000 Subject: [PATCH] feat(client-eks): This release adds support for DescribeClusterVersions API that provides important information about Kubernetes versions along with end of support dates --- clients/client-eks/README.md | 8 + clients/client-eks/src/EKS.ts | 24 ++ clients/client-eks/src/EKSClient.ts | 6 + .../DescribeClusterVersionsCommand.ts | 124 ++++++++++ clients/client-eks/src/commands/index.ts | 1 + clients/client-eks/src/models/models_0.ts | 146 +++++++++++- .../DescribeClusterVersionsPaginator.ts | 24 ++ clients/client-eks/src/pagination/index.ts | 2 + .../client-eks/src/protocols/Aws_restJson1.ts | 85 +++++++ codegen/sdk-codegen/aws-models/eks.json | 221 +++++++++++++++++- 10 files changed, 634 insertions(+), 7 deletions(-) create mode 100644 clients/client-eks/src/commands/DescribeClusterVersionsCommand.ts create mode 100644 clients/client-eks/src/pagination/DescribeClusterVersionsPaginator.ts diff --git a/clients/client-eks/README.md b/clients/client-eks/README.md index 51eee5ef4c561..9ca6f0cfba424 100644 --- a/clients/client-eks/README.md +++ b/clients/client-eks/README.md @@ -394,6 +394,14 @@ DescribeCluster [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/eks/command/DescribeClusterCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-eks/Interface/DescribeClusterCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-eks/Interface/DescribeClusterCommandOutput/) + +
+ +DescribeClusterVersions + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/eks/command/DescribeClusterVersionsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-eks/Interface/DescribeClusterVersionsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-eks/Interface/DescribeClusterVersionsCommandOutput/) +
diff --git a/clients/client-eks/src/EKS.ts b/clients/client-eks/src/EKS.ts index 1bbe4e9270239..4e6cca1499629 100644 --- a/clients/client-eks/src/EKS.ts +++ b/clients/client-eks/src/EKS.ts @@ -109,6 +109,11 @@ import { DescribeClusterCommandInput, DescribeClusterCommandOutput, } from "./commands/DescribeClusterCommand"; +import { + DescribeClusterVersionsCommand, + DescribeClusterVersionsCommandInput, + DescribeClusterVersionsCommandOutput, +} from "./commands/DescribeClusterVersionsCommand"; import { DescribeEksAnywhereSubscriptionCommand, DescribeEksAnywhereSubscriptionCommandInput, @@ -284,6 +289,7 @@ const commands = { DescribeAddonConfigurationCommand, DescribeAddonVersionsCommand, DescribeClusterCommand, + DescribeClusterVersionsCommand, DescribeEksAnywhereSubscriptionCommand, DescribeFargateProfileCommand, DescribeIdentityProviderConfigCommand, @@ -673,6 +679,24 @@ export interface EKS { cb: (err: any, data?: DescribeClusterCommandOutput) => void ): void; + /** + * @see {@link DescribeClusterVersionsCommand} + */ + describeClusterVersions(): Promise; + describeClusterVersions( + args: DescribeClusterVersionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeClusterVersions( + args: DescribeClusterVersionsCommandInput, + cb: (err: any, data?: DescribeClusterVersionsCommandOutput) => void + ): void; + describeClusterVersions( + args: DescribeClusterVersionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeClusterVersionsCommandOutput) => void + ): void; + /** * @see {@link DescribeEksAnywhereSubscriptionCommand} */ diff --git a/clients/client-eks/src/EKSClient.ts b/clients/client-eks/src/EKSClient.ts index bb4b62df62e65..529ff15184e79 100644 --- a/clients/client-eks/src/EKSClient.ts +++ b/clients/client-eks/src/EKSClient.ts @@ -112,6 +112,10 @@ import { DescribeAddonVersionsCommandOutput, } from "./commands/DescribeAddonVersionsCommand"; import { DescribeClusterCommandInput, DescribeClusterCommandOutput } from "./commands/DescribeClusterCommand"; +import { + DescribeClusterVersionsCommandInput, + DescribeClusterVersionsCommandOutput, +} from "./commands/DescribeClusterVersionsCommand"; import { DescribeEksAnywhereSubscriptionCommandInput, DescribeEksAnywhereSubscriptionCommandOutput, @@ -237,6 +241,7 @@ export type ServiceInputTypes = | DescribeAddonConfigurationCommandInput | DescribeAddonVersionsCommandInput | DescribeClusterCommandInput + | DescribeClusterVersionsCommandInput | DescribeEksAnywhereSubscriptionCommandInput | DescribeFargateProfileCommandInput | DescribeIdentityProviderConfigCommandInput @@ -298,6 +303,7 @@ export type ServiceOutputTypes = | DescribeAddonConfigurationCommandOutput | DescribeAddonVersionsCommandOutput | DescribeClusterCommandOutput + | DescribeClusterVersionsCommandOutput | DescribeEksAnywhereSubscriptionCommandOutput | DescribeFargateProfileCommandOutput | DescribeIdentityProviderConfigCommandOutput diff --git a/clients/client-eks/src/commands/DescribeClusterVersionsCommand.ts b/clients/client-eks/src/commands/DescribeClusterVersionsCommand.ts new file mode 100644 index 0000000000000..d9a1b5726e435 --- /dev/null +++ b/clients/client-eks/src/commands/DescribeClusterVersionsCommand.ts @@ -0,0 +1,124 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { EKSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EKSClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DescribeClusterVersionsRequest, DescribeClusterVersionsResponse } from "../models/models_0"; +import { de_DescribeClusterVersionsCommand, se_DescribeClusterVersionsCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DescribeClusterVersionsCommand}. + */ +export interface DescribeClusterVersionsCommandInput extends DescribeClusterVersionsRequest {} +/** + * @public + * + * The output of {@link DescribeClusterVersionsCommand}. + */ +export interface DescribeClusterVersionsCommandOutput extends DescribeClusterVersionsResponse, __MetadataBearer {} + +/** + *

Lists available Kubernetes versions for Amazon EKS clusters.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EKSClient, DescribeClusterVersionsCommand } from "@aws-sdk/client-eks"; // ES Modules import + * // const { EKSClient, DescribeClusterVersionsCommand } = require("@aws-sdk/client-eks"); // CommonJS import + * const client = new EKSClient(config); + * const input = { // DescribeClusterVersionsRequest + * clusterType: "STRING_VALUE", + * maxResults: Number("int"), + * nextToken: "STRING_VALUE", + * defaultOnly: true || false, + * includeAll: true || false, + * clusterVersions: [ // StringList + * "STRING_VALUE", + * ], + * status: "unsupported" || "standard-support" || "extended-support", + * }; + * const command = new DescribeClusterVersionsCommand(input); + * const response = await client.send(command); + * // { // DescribeClusterVersionsResponse + * // nextToken: "STRING_VALUE", + * // clusterVersions: [ // ClusterVersionList + * // { // ClusterVersionInformation + * // clusterVersion: "STRING_VALUE", + * // clusterType: "STRING_VALUE", + * // defaultPlatformVersion: "STRING_VALUE", + * // defaultVersion: true || false, + * // releaseDate: new Date("TIMESTAMP"), + * // endOfStandardSupportDate: new Date("TIMESTAMP"), + * // endOfExtendedSupportDate: new Date("TIMESTAMP"), + * // status: "unsupported" || "standard-support" || "extended-support", + * // kubernetesPatchVersion: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeClusterVersionsCommandInput - {@link DescribeClusterVersionsCommandInput} + * @returns {@link DescribeClusterVersionsCommandOutput} + * @see {@link DescribeClusterVersionsCommandInput} for command's `input` shape. + * @see {@link DescribeClusterVersionsCommandOutput} for command's `response` shape. + * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. + * + * @throws {@link InvalidParameterException} (client fault) + *

The specified parameter is invalid. Review the available parameters for the API + * request.

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

The request is invalid given the state of the cluster. Check the state of the cluster + * and the associated operations.

+ * + * @throws {@link ServerException} (server fault) + *

These errors are usually caused by a server-side issue.

+ * + * @throws {@link EKSServiceException} + *

Base exception class for all service exceptions from EKS service.

+ * + * @public + */ +export class DescribeClusterVersionsCommand extends $Command + .classBuilder< + DescribeClusterVersionsCommandInput, + DescribeClusterVersionsCommandOutput, + EKSClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: EKSClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSWesleyFrontend", "DescribeClusterVersions", {}) + .n("EKSClient", "DescribeClusterVersionsCommand") + .f(void 0, void 0) + .ser(se_DescribeClusterVersionsCommand) + .de(de_DescribeClusterVersionsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DescribeClusterVersionsRequest; + output: DescribeClusterVersionsResponse; + }; + sdk: { + input: DescribeClusterVersionsCommandInput; + output: DescribeClusterVersionsCommandOutput; + }; + }; +} diff --git a/clients/client-eks/src/commands/index.ts b/clients/client-eks/src/commands/index.ts index fb49c37ed552d..fa5dfe3e5344e 100644 --- a/clients/client-eks/src/commands/index.ts +++ b/clients/client-eks/src/commands/index.ts @@ -22,6 +22,7 @@ export * from "./DescribeAddonCommand"; export * from "./DescribeAddonConfigurationCommand"; export * from "./DescribeAddonVersionsCommand"; export * from "./DescribeClusterCommand"; +export * from "./DescribeClusterVersionsCommand"; export * from "./DescribeEksAnywhereSubscriptionCommand"; export * from "./DescribeFargateProfileCommand"; export * from "./DescribeIdentityProviderConfigCommand"; diff --git a/clients/client-eks/src/models/models_0.ts b/clients/client-eks/src/models/models_0.ts index cddd0830e3670..e9604f3bc4221 100644 --- a/clients/client-eks/src/models/models_0.ts +++ b/clients/client-eks/src/models/models_0.ts @@ -397,8 +397,7 @@ export interface Addon { } /** - *

The summary information about the Amazon EKS add-on compatibility for the next Kubernetes - * version for an insight check in the UPGRADE_READINESS category.

+ *

Contains compatibility information for an Amazon EKS add-on.

* @public */ export interface AddonCompatibilityDetail { @@ -409,7 +408,7 @@ export interface AddonCompatibilityDetail { name?: string | undefined; /** - *

The list of compatible Amazon EKS add-on versions for the next Kubernetes version.

+ *

A list of compatible add-on versions.

* @public */ compatibleVersions?: string[] | undefined; @@ -4980,6 +4979,145 @@ export interface DescribeClusterResponse { cluster?: Cluster | undefined; } +/** + * @public + * @enum + */ +export const ClusterVersionStatus = { + extended_support: "extended-support", + standard_support: "standard-support", + unsupported: "unsupported", +} as const; + +/** + * @public + */ +export type ClusterVersionStatus = (typeof ClusterVersionStatus)[keyof typeof ClusterVersionStatus]; + +/** + * @public + */ +export interface DescribeClusterVersionsRequest { + /** + *

The type of cluster to filter versions by.

+ * @public + */ + clusterType?: string | undefined; + + /** + *

Maximum number of results to return.

+ * @public + */ + maxResults?: number | undefined; + + /** + *

Pagination token for the next set of results.

+ * @public + */ + nextToken?: string | undefined; + + /** + *

Filter to show only default versions.

+ * @public + */ + defaultOnly?: boolean | undefined; + + /** + *

Include all available versions in the response.

+ * @public + */ + includeAll?: boolean | undefined; + + /** + *

List of specific cluster versions to describe.

+ * @public + */ + clusterVersions?: string[] | undefined; + + /** + *

Filter versions by their current status.

+ * @public + */ + status?: ClusterVersionStatus | undefined; +} + +/** + *

Contains details about a specific EKS cluster version.

+ * @public + */ +export interface ClusterVersionInformation { + /** + *

The Kubernetes version for the cluster.

+ * @public + */ + clusterVersion?: string | undefined; + + /** + *

The type of cluster this version is for.

+ * @public + */ + clusterType?: string | undefined; + + /** + *

Default platform version for this Kubernetes version.

+ * @public + */ + defaultPlatformVersion?: string | undefined; + + /** + *

Indicates if this is a default version.

+ * @public + */ + defaultVersion?: boolean | undefined; + + /** + *

The release date of this cluster version.

+ * @public + */ + releaseDate?: Date | undefined; + + /** + *

Date when standard support ends for this version.

+ * @public + */ + endOfStandardSupportDate?: Date | undefined; + + /** + *

Date when extended support ends for this version.

+ * @public + */ + endOfExtendedSupportDate?: Date | undefined; + + /** + *

Current status of this cluster version.

+ * @public + */ + status?: ClusterVersionStatus | undefined; + + /** + *

The patch version of Kubernetes for this cluster version.

+ * @public + */ + kubernetesPatchVersion?: string | undefined; +} + +/** + * @public + */ +export interface DescribeClusterVersionsResponse { + /** + *

Pagination token for the next set of results.

+ * @public + */ + nextToken?: string | undefined; + + /** + *

List of cluster version information objects.

+ * @public + */ + clusterVersions?: ClusterVersionInformation[] | undefined; +} + /** * @public */ @@ -5302,7 +5440,7 @@ export interface InsightCategorySpecificSummary { deprecationDetails?: DeprecationDetail[] | undefined; /** - *

A list of AddonCompatibilityDetail objects for Amazon EKS add-ons.

+ *

A list of AddonCompatibilityDetail objects for Amazon EKS add-ons.

* @public */ addonCompatibilityDetails?: AddonCompatibilityDetail[] | undefined; diff --git a/clients/client-eks/src/pagination/DescribeClusterVersionsPaginator.ts b/clients/client-eks/src/pagination/DescribeClusterVersionsPaginator.ts new file mode 100644 index 0000000000000..695d2072f968c --- /dev/null +++ b/clients/client-eks/src/pagination/DescribeClusterVersionsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + DescribeClusterVersionsCommand, + DescribeClusterVersionsCommandInput, + DescribeClusterVersionsCommandOutput, +} from "../commands/DescribeClusterVersionsCommand"; +import { EKSClient } from "../EKSClient"; +import { EKSPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateDescribeClusterVersions: ( + config: EKSPaginationConfiguration, + input: DescribeClusterVersionsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + EKSPaginationConfiguration, + DescribeClusterVersionsCommandInput, + DescribeClusterVersionsCommandOutput +>(EKSClient, DescribeClusterVersionsCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-eks/src/pagination/index.ts b/clients/client-eks/src/pagination/index.ts index fae7aaec52635..74797aec0b0d0 100644 --- a/clients/client-eks/src/pagination/index.ts +++ b/clients/client-eks/src/pagination/index.ts @@ -1,4 +1,6 @@ export * from "./DescribeAddonVersionsPaginator"; + +export * from "./DescribeClusterVersionsPaginator"; // smithy-typescript generated code export * from "./Interfaces"; export * from "./ListAccessEntriesPaginator"; diff --git a/clients/client-eks/src/protocols/Aws_restJson1.ts b/clients/client-eks/src/protocols/Aws_restJson1.ts index 16c6b8e02d353..b46cca46a21d6 100644 --- a/clients/client-eks/src/protocols/Aws_restJson1.ts +++ b/clients/client-eks/src/protocols/Aws_restJson1.ts @@ -85,6 +85,10 @@ import { DescribeAddonVersionsCommandOutput, } from "../commands/DescribeAddonVersionsCommand"; import { DescribeClusterCommandInput, DescribeClusterCommandOutput } from "../commands/DescribeClusterCommand"; +import { + DescribeClusterVersionsCommandInput, + DescribeClusterVersionsCommandOutput, +} from "../commands/DescribeClusterVersionsCommand"; import { DescribeEksAnywhereSubscriptionCommandInput, DescribeEksAnywhereSubscriptionCommandOutput, @@ -186,6 +190,7 @@ import { ClientException, ClientStat, Cluster, + ClusterVersionInformation, ComputeConfigRequest, ConnectorConfigRequest, ConnectorConfigResponse, @@ -764,6 +769,30 @@ export const se_DescribeClusterCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1DescribeClusterVersionsCommand + */ +export const se_DescribeClusterVersionsCommand = async ( + input: DescribeClusterVersionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/cluster-versions"); + const query: any = map({ + [_cT]: [, input[_cT]!], + [_mR]: [() => input.maxResults !== void 0, () => input[_mR]!.toString()], + [_nT]: [, input[_nT]!], + [_dO]: [() => input.defaultOnly !== void 0, () => input[_dO]!.toString()], + [_iA]: [() => input.includeAll !== void 0, () => input[_iA]!.toString()], + [_cV]: [() => input.clusterVersions !== void 0, () => input[_cV]! || []], + [_s]: [, input[_s]!], + }); + let body: any; + b.m("GET").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1DescribeEksAnywhereSubscriptionCommand */ @@ -1969,6 +1998,28 @@ export const de_DescribeClusterCommand = async ( return contents; }; +/** + * deserializeAws_restJson1DescribeClusterVersionsCommand + */ +export const de_DescribeClusterVersionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + clusterVersions: (_) => de_ClusterVersionList(_, context), + nextToken: __expectString, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1DescribeEksAnywhereSubscriptionCommand */ @@ -3272,6 +3323,35 @@ const de_Cluster = (output: any, context: __SerdeContext): Cluster => { // de_ClusterIssueList omitted. +/** + * deserializeAws_restJson1ClusterVersionInformation + */ +const de_ClusterVersionInformation = (output: any, context: __SerdeContext): ClusterVersionInformation => { + return take(output, { + clusterType: __expectString, + clusterVersion: __expectString, + defaultPlatformVersion: __expectString, + defaultVersion: __expectBoolean, + endOfExtendedSupportDate: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + endOfStandardSupportDate: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + kubernetesPatchVersion: __expectString, + releaseDate: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + status: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1ClusterVersionList + */ +const de_ClusterVersionList = (output: any, context: __SerdeContext): ClusterVersionInformation[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ClusterVersionInformation(entry, context); + }); + return retVal; +}; + // de_Compatibilities omitted. // de_Compatibility omitted. @@ -3619,7 +3699,11 @@ const collectBodyString = (streamBody: any, context: __SerdeContext): PromiseThe list of compatible Amazon EKS add-on versions for the next Kubernetes version.

" + "smithy.api#documentation": "

A list of compatible add-on versions.

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

The summary information about the Amazon EKS add-on compatibility for the next Kubernetes \n version for an insight check in the UPGRADE_READINESS category.

" + "smithy.api#documentation": "

Contains compatibility information for an Amazon EKS add-on.

" } }, "com.amazonaws.eks#AddonCompatibilityDetails": { @@ -2863,6 +2866,98 @@ } } }, + "com.amazonaws.eks#ClusterVersionInformation": { + "type": "structure", + "members": { + "clusterVersion": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

The Kubernetes version for the cluster.

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

The type of cluster this version is for.

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

Default platform version for this Kubernetes version.

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

Indicates if this is a default version.

" + } + }, + "releaseDate": { + "target": "com.amazonaws.eks#Timestamp", + "traits": { + "smithy.api#documentation": "

The release date of this cluster version.

" + } + }, + "endOfStandardSupportDate": { + "target": "com.amazonaws.eks#Timestamp", + "traits": { + "smithy.api#documentation": "

Date when standard support ends for this version.

" + } + }, + "endOfExtendedSupportDate": { + "target": "com.amazonaws.eks#Timestamp", + "traits": { + "smithy.api#documentation": "

Date when extended support ends for this version.

" + } + }, + "status": { + "target": "com.amazonaws.eks#ClusterVersionStatus", + "traits": { + "smithy.api#documentation": "

Current status of this cluster version.

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

The patch version of Kubernetes for this cluster version.

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

Contains details about a specific EKS cluster version.

" + } + }, + "com.amazonaws.eks#ClusterVersionList": { + "type": "list", + "member": { + "target": "com.amazonaws.eks#ClusterVersionInformation" + } + }, + "com.amazonaws.eks#ClusterVersionStatus": { + "type": "enum", + "members": { + "unsupported": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsupported" + } + }, + "standard_support": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard-support" + } + }, + "extended_support": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "extended-support" + } + } + } + }, "com.amazonaws.eks#Compatibilities": { "type": "list", "member": { @@ -5164,6 +5259,126 @@ "smithy.api#output": {} } }, + "com.amazonaws.eks#DescribeClusterVersionMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.eks#DescribeClusterVersions": { + "type": "operation", + "input": { + "target": "com.amazonaws.eks#DescribeClusterVersionsRequest" + }, + "output": { + "target": "com.amazonaws.eks#DescribeClusterVersionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.eks#InvalidParameterException" + }, + { + "target": "com.amazonaws.eks#InvalidRequestException" + }, + { + "target": "com.amazonaws.eks#ServerException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists available Kubernetes versions for Amazon EKS clusters.

", + "smithy.api#http": { + "method": "GET", + "uri": "/cluster-versions", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "clusterVersions", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.eks#DescribeClusterVersionsRequest": { + "type": "structure", + "members": { + "clusterType": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

The type of cluster to filter versions by.

", + "smithy.api#httpQuery": "clusterType" + } + }, + "maxResults": { + "target": "com.amazonaws.eks#DescribeClusterVersionMaxResults", + "traits": { + "smithy.api#documentation": "

Maximum number of results to return.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

Pagination token for the next set of results.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "defaultOnly": { + "target": "com.amazonaws.eks#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Filter to show only default versions.

", + "smithy.api#httpQuery": "defaultOnly" + } + }, + "includeAll": { + "target": "com.amazonaws.eks#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Include all available versions in the response.

", + "smithy.api#httpQuery": "includeAll" + } + }, + "clusterVersions": { + "target": "com.amazonaws.eks#StringList", + "traits": { + "smithy.api#documentation": "

List of specific cluster versions to describe.

", + "smithy.api#httpQuery": "clusterVersions" + } + }, + "status": { + "target": "com.amazonaws.eks#ClusterVersionStatus", + "traits": { + "smithy.api#documentation": "

Filter versions by their current status.

", + "smithy.api#httpQuery": "status" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.eks#DescribeClusterVersionsResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

Pagination token for the next set of results.

" + } + }, + "clusterVersions": { + "target": "com.amazonaws.eks#ClusterVersionList", + "traits": { + "smithy.api#documentation": "

List of cluster version information objects.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.eks#DescribeEksAnywhereSubscription": { "type": "operation", "input": { @@ -6649,7 +6864,7 @@ "addonCompatibilityDetails": { "target": "com.amazonaws.eks#AddonCompatibilityDetails", "traits": { - "smithy.api#documentation": "

A list of AddonCompatibilityDetail objects for Amazon EKS add-ons.

" + "smithy.api#documentation": "

A list of AddonCompatibilityDetail objects for Amazon EKS add-ons.

" } } },