From 8630876411ee78526dd5e4f2b53c078709d809c8 Mon Sep 17 00:00:00 2001 From: awstools Date: Thu, 9 Nov 2023 19:17:52 +0000 Subject: [PATCH] feat(client-eks): Adding EKS Anywhere subscription related operations. --- clients/client-eks/README.md | 57 +- clients/client-eks/src/EKS.ts | 132 +++- clients/client-eks/src/EKSClient.ts | 47 +- .../AssociateEncryptionConfigCommand.ts | 4 +- .../AssociateIdentityProviderConfigCommand.ts | 4 +- .../src/commands/CreateAddonCommand.ts | 4 +- .../src/commands/CreateClusterCommand.ts | 24 +- .../CreateEksAnywhereSubscriptionCommand.ts | 207 +++++ .../commands/CreateFargateProfileCommand.ts | 17 +- .../src/commands/CreateNodegroupCommand.ts | 9 +- .../src/commands/DeleteAddonCommand.ts | 4 +- .../src/commands/DeleteClusterCommand.ts | 4 +- .../DeleteEksAnywhereSubscriptionCommand.ts | 196 +++++ .../commands/DeleteFargateProfileCommand.ts | 4 +- .../src/commands/DeleteNodegroupCommand.ts | 4 +- .../src/commands/DeregisterClusterCommand.ts | 13 +- .../src/commands/DescribeAddonCommand.ts | 4 +- .../src/commands/DescribeClusterCommand.ts | 4 +- .../DescribeEksAnywhereSubscriptionCommand.ts | 195 +++++ .../commands/DescribeFargateProfileCommand.ts | 4 +- .../DescribeIdentityProviderConfigCommand.ts | 4 +- .../src/commands/DescribeNodegroupCommand.ts | 4 +- .../src/commands/DescribeUpdateCommand.ts | 4 +- ...sassociateIdentityProviderConfigCommand.ts | 8 +- .../src/commands/ListAddonsCommand.ts | 6 +- .../src/commands/ListClustersCommand.ts | 4 +- .../ListEksAnywhereSubscriptionsCommand.ts | 197 +++++ .../commands/ListFargateProfilesCommand.ts | 4 +- .../ListIdentityProviderConfigsCommand.ts | 4 +- .../src/commands/ListNodegroupsCommand.ts | 4 +- .../src/commands/ListUpdatesCommand.ts | 4 +- .../src/commands/RegisterClusterCommand.ts | 21 +- .../src/commands/UpdateAddonCommand.ts | 4 +- .../commands/UpdateClusterConfigCommand.ts | 10 +- .../commands/UpdateClusterVersionCommand.ts | 16 +- .../UpdateEksAnywhereSubscriptionCommand.ts | 200 +++++ .../commands/UpdateNodegroupConfigCommand.ts | 8 +- .../commands/UpdateNodegroupVersionCommand.ts | 7 +- clients/client-eks/src/commands/index.ts | 5 + clients/client-eks/src/index.ts | 17 +- clients/client-eks/src/models/models_0.ts | 601 ++++++++++++--- .../client-eks/src/protocols/Aws_restJson1.ts | 500 ++++++++++++ codegen/sdk-codegen/aws-models/eks.json | 718 +++++++++++++++++- 43 files changed, 2999 insertions(+), 288 deletions(-) create mode 100644 clients/client-eks/src/commands/CreateEksAnywhereSubscriptionCommand.ts create mode 100644 clients/client-eks/src/commands/DeleteEksAnywhereSubscriptionCommand.ts create mode 100644 clients/client-eks/src/commands/DescribeEksAnywhereSubscriptionCommand.ts create mode 100644 clients/client-eks/src/commands/ListEksAnywhereSubscriptionsCommand.ts create mode 100644 clients/client-eks/src/commands/UpdateEksAnywhereSubscriptionCommand.ts diff --git a/clients/client-eks/README.md b/clients/client-eks/README.md index fa1c80553277..6724966cc64a 100644 --- a/clients/client-eks/README.md +++ b/clients/client-eks/README.md @@ -7,15 +7,14 @@ AWS SDK for JavaScript EKS Client for Node.js, Browser and React Native.

Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy -for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain -your own Kubernetes control plane. Kubernetes is an open-source system for automating -the deployment, scaling, and management of containerized applications.

-

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so -you can use all the existing plugins and tooling from the Kubernetes community. -Applications running on Amazon EKS are fully compatible with applications -running on any standard Kubernetes environment, whether running in on-premises data -centers or public clouds. This means that you can easily migrate any standard Kubernetes -application to Amazon EKS without any code modification required.

+for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain your +own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, +scaling, and management of containerized applications.

+

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you +can use all the existing plugins and tooling from the Kubernetes community. Applications +running on Amazon EKS are fully compatible with applications running on any +standard Kubernetes environment, whether running in on-premises data centers or public +clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.

## Installing @@ -243,6 +242,14 @@ CreateCluster [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/createclustercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/createclustercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/createclustercommandoutput.html) + +
+ +CreateEksAnywhereSubscription + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/createeksanywheresubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/createeksanywheresubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/createeksanywheresubscriptioncommandoutput.html) +
@@ -275,6 +282,14 @@ DeleteCluster [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/deleteclustercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/deleteclustercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/deleteclustercommandoutput.html) +
+
+ +DeleteEksAnywhereSubscription + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/deleteeksanywheresubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/deleteeksanywheresubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/deleteeksanywheresubscriptioncommandoutput.html) +
@@ -331,6 +346,14 @@ DescribeCluster [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/describeclustercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/describeclustercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/describeclustercommandoutput.html) +
+
+ +DescribeEksAnywhereSubscription + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/describeeksanywheresubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/describeeksanywheresubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/describeeksanywheresubscriptioncommandoutput.html) +
@@ -387,6 +410,14 @@ ListClusters [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/listclusterscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/listclusterscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/listclusterscommandoutput.html) +
+
+ +ListEksAnywhereSubscriptions + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/listeksanywheresubscriptionscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/listeksanywheresubscriptionscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/listeksanywheresubscriptionscommandoutput.html) +
@@ -475,6 +506,14 @@ UpdateClusterVersion [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/updateclusterversioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/updateclusterversioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/updateclusterversioncommandoutput.html) +
+
+ +UpdateEksAnywhereSubscription + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/classes/updateeksanywheresubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/updateeksanywheresubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-eks/interfaces/updateeksanywheresubscriptioncommandoutput.html) +
diff --git a/clients/client-eks/src/EKS.ts b/clients/client-eks/src/EKS.ts index 509704a0a414..07de50f9a119 100644 --- a/clients/client-eks/src/EKS.ts +++ b/clients/client-eks/src/EKS.ts @@ -18,6 +18,11 @@ import { CreateClusterCommandInput, CreateClusterCommandOutput, } from "./commands/CreateClusterCommand"; +import { + CreateEksAnywhereSubscriptionCommand, + CreateEksAnywhereSubscriptionCommandInput, + CreateEksAnywhereSubscriptionCommandOutput, +} from "./commands/CreateEksAnywhereSubscriptionCommand"; import { CreateFargateProfileCommand, CreateFargateProfileCommandInput, @@ -34,6 +39,11 @@ import { DeleteClusterCommandInput, DeleteClusterCommandOutput, } from "./commands/DeleteClusterCommand"; +import { + DeleteEksAnywhereSubscriptionCommand, + DeleteEksAnywhereSubscriptionCommandInput, + DeleteEksAnywhereSubscriptionCommandOutput, +} from "./commands/DeleteEksAnywhereSubscriptionCommand"; import { DeleteFargateProfileCommand, DeleteFargateProfileCommandInput, @@ -69,6 +79,11 @@ import { DescribeClusterCommandInput, DescribeClusterCommandOutput, } from "./commands/DescribeClusterCommand"; +import { + DescribeEksAnywhereSubscriptionCommand, + DescribeEksAnywhereSubscriptionCommandInput, + DescribeEksAnywhereSubscriptionCommandOutput, +} from "./commands/DescribeEksAnywhereSubscriptionCommand"; import { DescribeFargateProfileCommand, DescribeFargateProfileCommandInput, @@ -100,6 +115,11 @@ import { ListClustersCommandInput, ListClustersCommandOutput, } from "./commands/ListClustersCommand"; +import { + ListEksAnywhereSubscriptionsCommand, + ListEksAnywhereSubscriptionsCommandInput, + ListEksAnywhereSubscriptionsCommandOutput, +} from "./commands/ListEksAnywhereSubscriptionsCommand"; import { ListFargateProfilesCommand, ListFargateProfilesCommandInput, @@ -143,6 +163,11 @@ import { UpdateClusterVersionCommandInput, UpdateClusterVersionCommandOutput, } from "./commands/UpdateClusterVersionCommand"; +import { + UpdateEksAnywhereSubscriptionCommand, + UpdateEksAnywhereSubscriptionCommandInput, + UpdateEksAnywhereSubscriptionCommandOutput, +} from "./commands/UpdateEksAnywhereSubscriptionCommand"; import { UpdateNodegroupConfigCommand, UpdateNodegroupConfigCommandInput, @@ -160,10 +185,12 @@ const commands = { AssociateIdentityProviderConfigCommand, CreateAddonCommand, CreateClusterCommand, + CreateEksAnywhereSubscriptionCommand, CreateFargateProfileCommand, CreateNodegroupCommand, DeleteAddonCommand, DeleteClusterCommand, + DeleteEksAnywhereSubscriptionCommand, DeleteFargateProfileCommand, DeleteNodegroupCommand, DeregisterClusterCommand, @@ -171,6 +198,7 @@ const commands = { DescribeAddonConfigurationCommand, DescribeAddonVersionsCommand, DescribeClusterCommand, + DescribeEksAnywhereSubscriptionCommand, DescribeFargateProfileCommand, DescribeIdentityProviderConfigCommand, DescribeNodegroupCommand, @@ -178,6 +206,7 @@ const commands = { DisassociateIdentityProviderConfigCommand, ListAddonsCommand, ListClustersCommand, + ListEksAnywhereSubscriptionsCommand, ListFargateProfilesCommand, ListIdentityProviderConfigsCommand, ListNodegroupsCommand, @@ -189,6 +218,7 @@ const commands = { UpdateAddonCommand, UpdateClusterConfigCommand, UpdateClusterVersionCommand, + UpdateEksAnywhereSubscriptionCommand, UpdateNodegroupConfigCommand, UpdateNodegroupVersionCommand, }; @@ -250,6 +280,23 @@ export interface EKS { cb: (err: any, data?: CreateClusterCommandOutput) => void ): void; + /** + * @see {@link CreateEksAnywhereSubscriptionCommand} + */ + createEksAnywhereSubscription( + args: CreateEksAnywhereSubscriptionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createEksAnywhereSubscription( + args: CreateEksAnywhereSubscriptionCommandInput, + cb: (err: any, data?: CreateEksAnywhereSubscriptionCommandOutput) => void + ): void; + createEksAnywhereSubscription( + args: CreateEksAnywhereSubscriptionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateEksAnywhereSubscriptionCommandOutput) => void + ): void; + /** * @see {@link CreateFargateProfileCommand} */ @@ -303,6 +350,23 @@ export interface EKS { cb: (err: any, data?: DeleteClusterCommandOutput) => void ): void; + /** + * @see {@link DeleteEksAnywhereSubscriptionCommand} + */ + deleteEksAnywhereSubscription( + args: DeleteEksAnywhereSubscriptionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteEksAnywhereSubscription( + args: DeleteEksAnywhereSubscriptionCommandInput, + cb: (err: any, data?: DeleteEksAnywhereSubscriptionCommandOutput) => void + ): void; + deleteEksAnywhereSubscription( + args: DeleteEksAnywhereSubscriptionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteEksAnywhereSubscriptionCommandOutput) => void + ): void; + /** * @see {@link DeleteFargateProfileCommand} */ @@ -410,6 +474,23 @@ export interface EKS { cb: (err: any, data?: DescribeClusterCommandOutput) => void ): void; + /** + * @see {@link DescribeEksAnywhereSubscriptionCommand} + */ + describeEksAnywhereSubscription( + args: DescribeEksAnywhereSubscriptionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeEksAnywhereSubscription( + args: DescribeEksAnywhereSubscriptionCommandInput, + cb: (err: any, data?: DescribeEksAnywhereSubscriptionCommandOutput) => void + ): void; + describeEksAnywhereSubscription( + args: DescribeEksAnywhereSubscriptionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeEksAnywhereSubscriptionCommandOutput) => void + ): void; + /** * @see {@link DescribeFargateProfileCommand} */ @@ -514,6 +595,23 @@ export interface EKS { cb: (err: any, data?: ListClustersCommandOutput) => void ): void; + /** + * @see {@link ListEksAnywhereSubscriptionsCommand} + */ + listEksAnywhereSubscriptions( + args: ListEksAnywhereSubscriptionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listEksAnywhereSubscriptions( + args: ListEksAnywhereSubscriptionsCommandInput, + cb: (err: any, data?: ListEksAnywhereSubscriptionsCommandOutput) => void + ): void; + listEksAnywhereSubscriptions( + args: ListEksAnywhereSubscriptionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListEksAnywhereSubscriptionsCommandOutput) => void + ): void; + /** * @see {@link ListFargateProfilesCommand} */ @@ -671,6 +769,23 @@ export interface EKS { cb: (err: any, data?: UpdateClusterVersionCommandOutput) => void ): void; + /** + * @see {@link UpdateEksAnywhereSubscriptionCommand} + */ + updateEksAnywhereSubscription( + args: UpdateEksAnywhereSubscriptionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updateEksAnywhereSubscription( + args: UpdateEksAnywhereSubscriptionCommandInput, + cb: (err: any, data?: UpdateEksAnywhereSubscriptionCommandOutput) => void + ): void; + updateEksAnywhereSubscription( + args: UpdateEksAnywhereSubscriptionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateEksAnywhereSubscriptionCommandOutput) => void + ): void; + /** * @see {@link UpdateNodegroupConfigCommand} */ @@ -709,15 +824,14 @@ export interface EKS { /** * @public *

Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy - * for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain - * your own Kubernetes control plane. Kubernetes is an open-source system for automating - * the deployment, scaling, and management of containerized applications.

- *

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so - * you can use all the existing plugins and tooling from the Kubernetes community. - * Applications running on Amazon EKS are fully compatible with applications - * running on any standard Kubernetes environment, whether running in on-premises data - * centers or public clouds. This means that you can easily migrate any standard Kubernetes - * application to Amazon EKS without any code modification required.

+ * for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain your + * own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, + * scaling, and management of containerized applications.

+ *

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you + * can use all the existing plugins and tooling from the Kubernetes community. Applications + * running on Amazon EKS are fully compatible with applications running on any + * standard Kubernetes environment, whether running in on-premises data centers or public + * clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.

*/ export class EKS extends EKSClient implements EKS {} createAggregatedClient(commands, EKS); diff --git a/clients/client-eks/src/EKSClient.ts b/clients/client-eks/src/EKSClient.ts index 40a31d805717..04df3a2af2fd 100644 --- a/clients/client-eks/src/EKSClient.ts +++ b/clients/client-eks/src/EKSClient.ts @@ -60,6 +60,10 @@ import { } from "./commands/AssociateIdentityProviderConfigCommand"; import { CreateAddonCommandInput, CreateAddonCommandOutput } from "./commands/CreateAddonCommand"; import { CreateClusterCommandInput, CreateClusterCommandOutput } from "./commands/CreateClusterCommand"; +import { + CreateEksAnywhereSubscriptionCommandInput, + CreateEksAnywhereSubscriptionCommandOutput, +} from "./commands/CreateEksAnywhereSubscriptionCommand"; import { CreateFargateProfileCommandInput, CreateFargateProfileCommandOutput, @@ -67,6 +71,10 @@ import { import { CreateNodegroupCommandInput, CreateNodegroupCommandOutput } from "./commands/CreateNodegroupCommand"; import { DeleteAddonCommandInput, DeleteAddonCommandOutput } from "./commands/DeleteAddonCommand"; import { DeleteClusterCommandInput, DeleteClusterCommandOutput } from "./commands/DeleteClusterCommand"; +import { + DeleteEksAnywhereSubscriptionCommandInput, + DeleteEksAnywhereSubscriptionCommandOutput, +} from "./commands/DeleteEksAnywhereSubscriptionCommand"; import { DeleteFargateProfileCommandInput, DeleteFargateProfileCommandOutput, @@ -83,6 +91,10 @@ import { DescribeAddonVersionsCommandOutput, } from "./commands/DescribeAddonVersionsCommand"; import { DescribeClusterCommandInput, DescribeClusterCommandOutput } from "./commands/DescribeClusterCommand"; +import { + DescribeEksAnywhereSubscriptionCommandInput, + DescribeEksAnywhereSubscriptionCommandOutput, +} from "./commands/DescribeEksAnywhereSubscriptionCommand"; import { DescribeFargateProfileCommandInput, DescribeFargateProfileCommandOutput, @@ -99,6 +111,10 @@ import { } from "./commands/DisassociateIdentityProviderConfigCommand"; import { ListAddonsCommandInput, ListAddonsCommandOutput } from "./commands/ListAddonsCommand"; import { ListClustersCommandInput, ListClustersCommandOutput } from "./commands/ListClustersCommand"; +import { + ListEksAnywhereSubscriptionsCommandInput, + ListEksAnywhereSubscriptionsCommandOutput, +} from "./commands/ListEksAnywhereSubscriptionsCommand"; import { ListFargateProfilesCommandInput, ListFargateProfilesCommandOutput, @@ -125,6 +141,10 @@ import { UpdateClusterVersionCommandInput, UpdateClusterVersionCommandOutput, } from "./commands/UpdateClusterVersionCommand"; +import { + UpdateEksAnywhereSubscriptionCommandInput, + UpdateEksAnywhereSubscriptionCommandOutput, +} from "./commands/UpdateEksAnywhereSubscriptionCommand"; import { UpdateNodegroupConfigCommandInput, UpdateNodegroupConfigCommandOutput, @@ -152,10 +172,12 @@ export type ServiceInputTypes = | AssociateIdentityProviderConfigCommandInput | CreateAddonCommandInput | CreateClusterCommandInput + | CreateEksAnywhereSubscriptionCommandInput | CreateFargateProfileCommandInput | CreateNodegroupCommandInput | DeleteAddonCommandInput | DeleteClusterCommandInput + | DeleteEksAnywhereSubscriptionCommandInput | DeleteFargateProfileCommandInput | DeleteNodegroupCommandInput | DeregisterClusterCommandInput @@ -163,6 +185,7 @@ export type ServiceInputTypes = | DescribeAddonConfigurationCommandInput | DescribeAddonVersionsCommandInput | DescribeClusterCommandInput + | DescribeEksAnywhereSubscriptionCommandInput | DescribeFargateProfileCommandInput | DescribeIdentityProviderConfigCommandInput | DescribeNodegroupCommandInput @@ -170,6 +193,7 @@ export type ServiceInputTypes = | DisassociateIdentityProviderConfigCommandInput | ListAddonsCommandInput | ListClustersCommandInput + | ListEksAnywhereSubscriptionsCommandInput | ListFargateProfilesCommandInput | ListIdentityProviderConfigsCommandInput | ListNodegroupsCommandInput @@ -181,6 +205,7 @@ export type ServiceInputTypes = | UpdateAddonCommandInput | UpdateClusterConfigCommandInput | UpdateClusterVersionCommandInput + | UpdateEksAnywhereSubscriptionCommandInput | UpdateNodegroupConfigCommandInput | UpdateNodegroupVersionCommandInput; @@ -192,10 +217,12 @@ export type ServiceOutputTypes = | AssociateIdentityProviderConfigCommandOutput | CreateAddonCommandOutput | CreateClusterCommandOutput + | CreateEksAnywhereSubscriptionCommandOutput | CreateFargateProfileCommandOutput | CreateNodegroupCommandOutput | DeleteAddonCommandOutput | DeleteClusterCommandOutput + | DeleteEksAnywhereSubscriptionCommandOutput | DeleteFargateProfileCommandOutput | DeleteNodegroupCommandOutput | DeregisterClusterCommandOutput @@ -203,6 +230,7 @@ export type ServiceOutputTypes = | DescribeAddonConfigurationCommandOutput | DescribeAddonVersionsCommandOutput | DescribeClusterCommandOutput + | DescribeEksAnywhereSubscriptionCommandOutput | DescribeFargateProfileCommandOutput | DescribeIdentityProviderConfigCommandOutput | DescribeNodegroupCommandOutput @@ -210,6 +238,7 @@ export type ServiceOutputTypes = | DisassociateIdentityProviderConfigCommandOutput | ListAddonsCommandOutput | ListClustersCommandOutput + | ListEksAnywhereSubscriptionsCommandOutput | ListFargateProfilesCommandOutput | ListIdentityProviderConfigsCommandOutput | ListNodegroupsCommandOutput @@ -221,6 +250,7 @@ export type ServiceOutputTypes = | UpdateAddonCommandOutput | UpdateClusterConfigCommandOutput | UpdateClusterVersionCommandOutput + | UpdateEksAnywhereSubscriptionCommandOutput | UpdateNodegroupConfigCommandOutput | UpdateNodegroupVersionCommandOutput; @@ -397,15 +427,14 @@ export interface EKSClientResolvedConfig extends EKSClientResolvedConfigType {} /** * @public *

Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy - * for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain - * your own Kubernetes control plane. Kubernetes is an open-source system for automating - * the deployment, scaling, and management of containerized applications.

- *

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so - * you can use all the existing plugins and tooling from the Kubernetes community. - * Applications running on Amazon EKS are fully compatible with applications - * running on any standard Kubernetes environment, whether running in on-premises data - * centers or public clouds. This means that you can easily migrate any standard Kubernetes - * application to Amazon EKS without any code modification required.

+ * for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain your + * own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, + * scaling, and management of containerized applications.

+ *

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you + * can use all the existing plugins and tooling from the Kubernetes community. Applications + * running on Amazon EKS are fully compatible with applications running on any + * standard Kubernetes environment, whether running in on-premises data centers or public + * clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.

*/ export class EKSClient extends __Client< __HttpHandlerOptions, diff --git a/clients/client-eks/src/commands/AssociateEncryptionConfigCommand.ts b/clients/client-eks/src/commands/AssociateEncryptionConfigCommand.ts index 73b938ebdd7c..67b9f87de288 100644 --- a/clients/client-eks/src/commands/AssociateEncryptionConfigCommand.ts +++ b/clients/client-eks/src/commands/AssociateEncryptionConfigCommand.ts @@ -97,8 +97,8 @@ export interface AssociateEncryptionConfigCommandOutput extends AssociateEncrypt * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/AssociateIdentityProviderConfigCommand.ts b/clients/client-eks/src/commands/AssociateIdentityProviderConfigCommand.ts index eda6f76c2ed2..a2e66a0aa8e8 100644 --- a/clients/client-eks/src/commands/AssociateIdentityProviderConfigCommand.ts +++ b/clients/client-eks/src/commands/AssociateIdentityProviderConfigCommand.ts @@ -114,8 +114,8 @@ export interface AssociateIdentityProviderConfigCommandOutput * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/CreateAddonCommand.ts b/clients/client-eks/src/commands/CreateAddonCommand.ts index df74d56c59fc..2739f9476097 100644 --- a/clients/client-eks/src/commands/CreateAddonCommand.ts +++ b/clients/client-eks/src/commands/CreateAddonCommand.ts @@ -105,8 +105,8 @@ export interface CreateAddonCommandOutput extends CreateAddonResponse, __Metadat * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/CreateClusterCommand.ts b/clients/client-eks/src/commands/CreateClusterCommand.ts index e525be34879d..92701c8d3e1f 100644 --- a/clients/client-eks/src/commands/CreateClusterCommand.ts +++ b/clients/client-eks/src/commands/CreateClusterCommand.ts @@ -39,11 +39,9 @@ export interface CreateClusterCommandOutput extends CreateClusterResponse, __Met * @public *

Creates an Amazon EKS control plane.

*

The Amazon EKS control plane consists of control plane instances that run the - * Kubernetes software, such as etcd and the API server. The control plane - * runs in an account managed by Amazon Web Services, and the Kubernetes API is exposed by - * the Amazon EKS API server endpoint. Each Amazon EKS cluster control - * plane is single tenant and unique. It runs on its own set of Amazon EC2 - * instances.

+ * Kubernetes software, such as etcd and the API server. The control plane runs in + * an account managed by Amazon Web Services, and the Kubernetes API is exposed by the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is + * single tenant and unique. It runs on its own set of Amazon EC2 instances.

*

The cluster control plane is provisioned across multiple Availability Zones and * fronted by an Elastic Load Balancing * Network Load Balancer. Amazon EKS also provisions elastic network interfaces in @@ -51,13 +49,13 @@ export interface CreateClusterCommandOutput extends CreateClusterResponse, __Met * (for example, to support kubectl exec, logs, and * proxy data flows).

*

Amazon EKS nodes run in your Amazon Web Services account and connect to your - * cluster's control plane over the Kubernetes API server endpoint and a certificate file - * that is created for your cluster.

+ * cluster's control plane over the Kubernetes API server endpoint and a certificate file that + * is created for your cluster.

*

In most cases, it takes several minutes to create a cluster. After you create an - * Amazon EKS cluster, you must configure your Kubernetes tooling to - * communicate with the API server and launch nodes into your cluster. For more - * information, see Managing Cluster Authentication and Launching - * Amazon EKS nodes in the Amazon EKS User Guide.

+ * Amazon EKS cluster, you must configure your Kubernetes tooling to communicate + * with the API server and launch nodes into your cluster. For more information, see Managing Cluster + * Authentication and Launching Amazon EKS nodes in the + * Amazon EKS User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -220,8 +218,8 @@ export interface CreateClusterCommandOutput extends CreateClusterResponse, __Met * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/CreateEksAnywhereSubscriptionCommand.ts b/clients/client-eks/src/commands/CreateEksAnywhereSubscriptionCommand.ts new file mode 100644 index 000000000000..0e2917ae438c --- /dev/null +++ b/clients/client-eks/src/commands/CreateEksAnywhereSubscriptionCommand.ts @@ -0,0 +1,207 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { EKSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EKSClient"; +import { CreateEksAnywhereSubscriptionRequest, CreateEksAnywhereSubscriptionResponse } from "../models/models_0"; +import { + de_CreateEksAnywhereSubscriptionCommand, + se_CreateEksAnywhereSubscriptionCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link CreateEksAnywhereSubscriptionCommand}. + */ +export interface CreateEksAnywhereSubscriptionCommandInput extends CreateEksAnywhereSubscriptionRequest {} +/** + * @public + * + * The output of {@link CreateEksAnywhereSubscriptionCommand}. + */ +export interface CreateEksAnywhereSubscriptionCommandOutput + extends CreateEksAnywhereSubscriptionResponse, + __MetadataBearer {} + +/** + * @public + *

Creates an EKS Anywhere subscription. When a subscription is created, it is a contract + * agreement for the length of the term specified in the request. Licenses that are used to + * validate support are provisioned in Amazon Web Services License Manager and the caller account is + * granted access to EKS Anywhere Curated Packages.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EKSClient, CreateEksAnywhereSubscriptionCommand } from "@aws-sdk/client-eks"; // ES Modules import + * // const { EKSClient, CreateEksAnywhereSubscriptionCommand } = require("@aws-sdk/client-eks"); // CommonJS import + * const client = new EKSClient(config); + * const input = { // CreateEksAnywhereSubscriptionRequest + * name: "STRING_VALUE", // required + * term: { // EksAnywhereSubscriptionTerm + * duration: Number("int"), + * unit: "MONTHS", + * }, + * licenseQuantity: Number("int"), + * licenseType: "Cluster", + * autoRenew: true || false, + * clientRequestToken: "STRING_VALUE", + * tags: { // TagMap + * "": "STRING_VALUE", + * }, + * }; + * const command = new CreateEksAnywhereSubscriptionCommand(input); + * const response = await client.send(command); + * // { // CreateEksAnywhereSubscriptionResponse + * // subscription: { // EksAnywhereSubscription + * // id: "STRING_VALUE", + * // arn: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // effectiveDate: new Date("TIMESTAMP"), + * // expirationDate: new Date("TIMESTAMP"), + * // licenseQuantity: Number("int"), + * // licenseType: "Cluster", + * // term: { // EksAnywhereSubscriptionTerm + * // duration: Number("int"), + * // unit: "MONTHS", + * // }, + * // status: "STRING_VALUE", + * // autoRenew: true || false, + * // licenseArns: [ // StringList + * // "STRING_VALUE", + * // ], + * // tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }, + * // }; + * + * ``` + * + * @param CreateEksAnywhereSubscriptionCommandInput - {@link CreateEksAnywhereSubscriptionCommandInput} + * @returns {@link CreateEksAnywhereSubscriptionCommandOutput} + * @see {@link CreateEksAnywhereSubscriptionCommandInput} for command's `input` shape. + * @see {@link CreateEksAnywhereSubscriptionCommandOutput} for command's `response` shape. + * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. + * + * @throws {@link ClientException} (client fault) + *

These errors are usually caused by a client action. Actions can include using an + * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

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

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

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

You have encountered a service limit on the specified resource.

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

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

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

The service is unavailable. Back off and retry the operation.

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

Base exception class for all service exceptions from EKS service.

+ * + */ +export class CreateEksAnywhereSubscriptionCommand extends $Command< + CreateEksAnywhereSubscriptionCommandInput, + CreateEksAnywhereSubscriptionCommandOutput, + EKSClientResolvedConfig +> { + // 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: CreateEksAnywhereSubscriptionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EKSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, CreateEksAnywhereSubscriptionCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EKSClient"; + const commandName = "CreateEksAnywhereSubscriptionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AWSWesleyFrontend", + operation: "CreateEksAnywhereSubscription", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: CreateEksAnywhereSubscriptionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_CreateEksAnywhereSubscriptionCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_CreateEksAnywhereSubscriptionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-eks/src/commands/CreateFargateProfileCommand.ts b/clients/client-eks/src/commands/CreateFargateProfileCommand.ts index eaeeee6d6db8..4c86a06f910e 100644 --- a/clients/client-eks/src/commands/CreateFargateProfileCommand.ts +++ b/clients/client-eks/src/commands/CreateFargateProfileCommand.ts @@ -50,13 +50,12 @@ export interface CreateFargateProfileCommandOutput extends CreateFargateProfileR * on Fargate.

*

When you create a Fargate profile, you must specify a pod execution * role to use with the pods that are scheduled with the profile. This role is added to the - * cluster's Kubernetes Role Based Access Control (RBAC) for authorization so that the - * kubelet that is running on the Fargate infrastructure - * can register with your Amazon EKS cluster so that it can appear in your cluster - * as a node. The pod execution role also provides IAM permissions to the - * Fargate infrastructure to allow read access to Amazon ECR - * image repositories. For more information, see Pod - * Execution Role in the Amazon EKS User Guide.

+ * cluster's Kubernetes Role Based + * Access Control (RBAC) for authorization so that the kubelet + * that is running on the Fargate infrastructure can register with your + * Amazon EKS cluster so that it can appear in your cluster as a node. The pod + * execution role also provides IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image repositories. For + * more information, see Pod Execution Role in the Amazon EKS User Guide.

*

Fargate profiles are immutable. However, you can create a new updated * profile to replace an existing profile and then delete the original after the updated * profile has finished creating.

@@ -128,8 +127,8 @@ export interface CreateFargateProfileCommandOutput extends CreateFargateProfileR * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/CreateNodegroupCommand.ts b/clients/client-eks/src/commands/CreateNodegroupCommand.ts index db92766418ac..728e23499f77 100644 --- a/clients/client-eks/src/commands/CreateNodegroupCommand.ts +++ b/clients/client-eks/src/commands/CreateNodegroupCommand.ts @@ -39,10 +39,7 @@ export interface CreateNodegroupCommandOutput extends CreateNodegroupResponse, _ * @public *

Creates a managed node group for an Amazon EKS cluster. You can only create a * node group for your cluster that is equal to the current Kubernetes version for the - * cluster. All node groups are created with the latest AMI release version for the - * respective minor Kubernetes version of the cluster, unless you deploy a custom AMI using - * a launch template. For more information about using launch templates, see Launch - * template support.

+ * cluster.

*

An Amazon EKS managed node group is an Amazon EC2 * Auto Scaling group and associated Amazon EC2 instances that are managed by * Amazon Web Services for an Amazon EKS cluster. For more information, see @@ -192,8 +189,8 @@ export interface CreateNodegroupCommandOutput extends CreateNodegroupResponse, _ * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DeleteAddonCommand.ts b/clients/client-eks/src/commands/DeleteAddonCommand.ts index e26b1e2fe74a..c67a64216d1b 100644 --- a/clients/client-eks/src/commands/DeleteAddonCommand.ts +++ b/clients/client-eks/src/commands/DeleteAddonCommand.ts @@ -97,8 +97,8 @@ export interface DeleteAddonCommandOutput extends DeleteAddonResponse, __Metadat * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DeleteClusterCommand.ts b/clients/client-eks/src/commands/DeleteClusterCommand.ts index 2061f3be88fa..8ca337b01540 100644 --- a/clients/client-eks/src/commands/DeleteClusterCommand.ts +++ b/clients/client-eks/src/commands/DeleteClusterCommand.ts @@ -155,8 +155,8 @@ export interface DeleteClusterCommandOutput extends DeleteClusterResponse, __Met * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link ResourceInUseException} (client fault) *

The specified resource is in use.

diff --git a/clients/client-eks/src/commands/DeleteEksAnywhereSubscriptionCommand.ts b/clients/client-eks/src/commands/DeleteEksAnywhereSubscriptionCommand.ts new file mode 100644 index 000000000000..f1d3c54823f1 --- /dev/null +++ b/clients/client-eks/src/commands/DeleteEksAnywhereSubscriptionCommand.ts @@ -0,0 +1,196 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { EKSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EKSClient"; +import { DeleteEksAnywhereSubscriptionRequest, DeleteEksAnywhereSubscriptionResponse } from "../models/models_0"; +import { + de_DeleteEksAnywhereSubscriptionCommand, + se_DeleteEksAnywhereSubscriptionCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DeleteEksAnywhereSubscriptionCommand}. + */ +export interface DeleteEksAnywhereSubscriptionCommandInput extends DeleteEksAnywhereSubscriptionRequest {} +/** + * @public + * + * The output of {@link DeleteEksAnywhereSubscriptionCommand}. + */ +export interface DeleteEksAnywhereSubscriptionCommandOutput + extends DeleteEksAnywhereSubscriptionResponse, + __MetadataBearer {} + +/** + * @public + *

Deletes an expired / inactive subscription. Deleting inactive subscriptions removes + * them from the Amazon Web Services Management Console view and from list/describe API responses. + * Subscriptions can only be cancelled within 7 days of creation, and are cancelled by + * creating a ticket in the Amazon Web Services Support Center.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EKSClient, DeleteEksAnywhereSubscriptionCommand } from "@aws-sdk/client-eks"; // ES Modules import + * // const { EKSClient, DeleteEksAnywhereSubscriptionCommand } = require("@aws-sdk/client-eks"); // CommonJS import + * const client = new EKSClient(config); + * const input = { // DeleteEksAnywhereSubscriptionRequest + * id: "STRING_VALUE", // required + * }; + * const command = new DeleteEksAnywhereSubscriptionCommand(input); + * const response = await client.send(command); + * // { // DeleteEksAnywhereSubscriptionResponse + * // subscription: { // EksAnywhereSubscription + * // id: "STRING_VALUE", + * // arn: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // effectiveDate: new Date("TIMESTAMP"), + * // expirationDate: new Date("TIMESTAMP"), + * // licenseQuantity: Number("int"), + * // licenseType: "Cluster", + * // term: { // EksAnywhereSubscriptionTerm + * // duration: Number("int"), + * // unit: "MONTHS", + * // }, + * // status: "STRING_VALUE", + * // autoRenew: true || false, + * // licenseArns: [ // StringList + * // "STRING_VALUE", + * // ], + * // tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }, + * // }; + * + * ``` + * + * @param DeleteEksAnywhereSubscriptionCommandInput - {@link DeleteEksAnywhereSubscriptionCommandInput} + * @returns {@link DeleteEksAnywhereSubscriptionCommandOutput} + * @see {@link DeleteEksAnywhereSubscriptionCommandInput} for command's `input` shape. + * @see {@link DeleteEksAnywhereSubscriptionCommandOutput} for command's `response` shape. + * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. + * + * @throws {@link ClientException} (client fault) + *

These errors are usually caused by a client action. Actions can include using an + * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

+ * + * @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 ResourceNotFoundException} (client fault) + *

The specified resource could not be found. You can view your available clusters with + * ListClusters. You can view your available managed node groups with + * ListNodegroups. Amazon EKS clusters and node groups are + * Region-specific.

+ * + * @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.

+ * + */ +export class DeleteEksAnywhereSubscriptionCommand extends $Command< + DeleteEksAnywhereSubscriptionCommandInput, + DeleteEksAnywhereSubscriptionCommandOutput, + EKSClientResolvedConfig +> { + // 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: DeleteEksAnywhereSubscriptionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EKSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DeleteEksAnywhereSubscriptionCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EKSClient"; + const commandName = "DeleteEksAnywhereSubscriptionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AWSWesleyFrontend", + operation: "DeleteEksAnywhereSubscription", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: DeleteEksAnywhereSubscriptionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DeleteEksAnywhereSubscriptionCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DeleteEksAnywhereSubscriptionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-eks/src/commands/DeleteFargateProfileCommand.ts b/clients/client-eks/src/commands/DeleteFargateProfileCommand.ts index 5eb3647bf270..eb7083dbb31d 100644 --- a/clients/client-eks/src/commands/DeleteFargateProfileCommand.ts +++ b/clients/client-eks/src/commands/DeleteFargateProfileCommand.ts @@ -93,8 +93,8 @@ export interface DeleteFargateProfileCommandOutput extends DeleteFargateProfileR * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DeleteNodegroupCommand.ts b/clients/client-eks/src/commands/DeleteNodegroupCommand.ts index 1d9a7d0635ea..7cb13f7fe7d5 100644 --- a/clients/client-eks/src/commands/DeleteNodegroupCommand.ts +++ b/clients/client-eks/src/commands/DeleteNodegroupCommand.ts @@ -133,8 +133,8 @@ export interface DeleteNodegroupCommandOutput extends DeleteNodegroupResponse, _ * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DeregisterClusterCommand.ts b/clients/client-eks/src/commands/DeregisterClusterCommand.ts index 0d05978aeefe..deba4f6a8e2d 100644 --- a/clients/client-eks/src/commands/DeregisterClusterCommand.ts +++ b/clients/client-eks/src/commands/DeregisterClusterCommand.ts @@ -148,15 +148,16 @@ export interface DeregisterClusterCommandOutput extends DeregisterClusterRespons * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) - *

You don't have permissions to perform the requested operation. The user or role that - * is making the request must have at least one IAM permissions policy - * attached that grants the required permissions. For more information, see Access - * Management in the IAM User Guide.

+ *

You don't have permissions to perform the requested operation. The IAM principal + * making the request must have at least one IAM permissions policy attached + * that grants the required permissions. For more information, see Access + * management in the IAM User Guide. + *

* * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link ResourceInUseException} (client fault) *

The specified resource is in use.

diff --git a/clients/client-eks/src/commands/DescribeAddonCommand.ts b/clients/client-eks/src/commands/DescribeAddonCommand.ts index 4b2882730739..8f35ca3a5bd8 100644 --- a/clients/client-eks/src/commands/DescribeAddonCommand.ts +++ b/clients/client-eks/src/commands/DescribeAddonCommand.ts @@ -94,8 +94,8 @@ export interface DescribeAddonCommandOutput extends DescribeAddonResponse, __Met * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DescribeClusterCommand.ts b/clients/client-eks/src/commands/DescribeClusterCommand.ts index 65836ac3ac3f..717b145377d1 100644 --- a/clients/client-eks/src/commands/DescribeClusterCommand.ts +++ b/clients/client-eks/src/commands/DescribeClusterCommand.ts @@ -156,8 +156,8 @@ export interface DescribeClusterCommandOutput extends DescribeClusterResponse, _ * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link ResourceNotFoundException} (client fault) *

The specified resource could not be found. You can view your available clusters with diff --git a/clients/client-eks/src/commands/DescribeEksAnywhereSubscriptionCommand.ts b/clients/client-eks/src/commands/DescribeEksAnywhereSubscriptionCommand.ts new file mode 100644 index 000000000000..91cb3041bf7a --- /dev/null +++ b/clients/client-eks/src/commands/DescribeEksAnywhereSubscriptionCommand.ts @@ -0,0 +1,195 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { EKSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EKSClient"; +import { DescribeEksAnywhereSubscriptionRequest, DescribeEksAnywhereSubscriptionResponse } from "../models/models_0"; +import { + de_DescribeEksAnywhereSubscriptionCommand, + se_DescribeEksAnywhereSubscriptionCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DescribeEksAnywhereSubscriptionCommand}. + */ +export interface DescribeEksAnywhereSubscriptionCommandInput extends DescribeEksAnywhereSubscriptionRequest {} +/** + * @public + * + * The output of {@link DescribeEksAnywhereSubscriptionCommand}. + */ +export interface DescribeEksAnywhereSubscriptionCommandOutput + extends DescribeEksAnywhereSubscriptionResponse, + __MetadataBearer {} + +/** + * @public + *

Returns descriptive information about a subscription.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EKSClient, DescribeEksAnywhereSubscriptionCommand } from "@aws-sdk/client-eks"; // ES Modules import + * // const { EKSClient, DescribeEksAnywhereSubscriptionCommand } = require("@aws-sdk/client-eks"); // CommonJS import + * const client = new EKSClient(config); + * const input = { // DescribeEksAnywhereSubscriptionRequest + * id: "STRING_VALUE", // required + * }; + * const command = new DescribeEksAnywhereSubscriptionCommand(input); + * const response = await client.send(command); + * // { // DescribeEksAnywhereSubscriptionResponse + * // subscription: { // EksAnywhereSubscription + * // id: "STRING_VALUE", + * // arn: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // effectiveDate: new Date("TIMESTAMP"), + * // expirationDate: new Date("TIMESTAMP"), + * // licenseQuantity: Number("int"), + * // licenseType: "Cluster", + * // term: { // EksAnywhereSubscriptionTerm + * // duration: Number("int"), + * // unit: "MONTHS", + * // }, + * // status: "STRING_VALUE", + * // autoRenew: true || false, + * // licenseArns: [ // StringList + * // "STRING_VALUE", + * // ], + * // tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }, + * // }; + * + * ``` + * + * @param DescribeEksAnywhereSubscriptionCommandInput - {@link DescribeEksAnywhereSubscriptionCommandInput} + * @returns {@link DescribeEksAnywhereSubscriptionCommandOutput} + * @see {@link DescribeEksAnywhereSubscriptionCommandInput} for command's `input` shape. + * @see {@link DescribeEksAnywhereSubscriptionCommandOutput} for command's `response` shape. + * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. + * + * @throws {@link ClientException} (client fault) + *

These errors are usually caused by a client action. Actions can include using an + * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

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

The specified resource could not be found. You can view your available clusters with + * ListClusters. You can view your available managed node groups with + * ListNodegroups. Amazon EKS clusters and node groups are + * Region-specific.

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

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

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

The service is unavailable. Back off and retry the operation.

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

Base exception class for all service exceptions from EKS service.

+ * + */ +export class DescribeEksAnywhereSubscriptionCommand extends $Command< + DescribeEksAnywhereSubscriptionCommandInput, + DescribeEksAnywhereSubscriptionCommandOutput, + EKSClientResolvedConfig +> { + // 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: DescribeEksAnywhereSubscriptionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EKSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DescribeEksAnywhereSubscriptionCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EKSClient"; + const commandName = "DescribeEksAnywhereSubscriptionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AWSWesleyFrontend", + operation: "DescribeEksAnywhereSubscription", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: DescribeEksAnywhereSubscriptionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_DescribeEksAnywhereSubscriptionCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DescribeEksAnywhereSubscriptionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-eks/src/commands/DescribeFargateProfileCommand.ts b/clients/client-eks/src/commands/DescribeFargateProfileCommand.ts index a07433139534..67e6c3d19203 100644 --- a/clients/client-eks/src/commands/DescribeFargateProfileCommand.ts +++ b/clients/client-eks/src/commands/DescribeFargateProfileCommand.ts @@ -85,8 +85,8 @@ export interface DescribeFargateProfileCommandOutput extends DescribeFargateProf * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DescribeIdentityProviderConfigCommand.ts b/clients/client-eks/src/commands/DescribeIdentityProviderConfigCommand.ts index 477eac564bb1..b69da31933aa 100644 --- a/clients/client-eks/src/commands/DescribeIdentityProviderConfigCommand.ts +++ b/clients/client-eks/src/commands/DescribeIdentityProviderConfigCommand.ts @@ -91,8 +91,8 @@ export interface DescribeIdentityProviderConfigCommandOutput * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DescribeNodegroupCommand.ts b/clients/client-eks/src/commands/DescribeNodegroupCommand.ts index 736b5ea517c2..fdfded949923 100644 --- a/clients/client-eks/src/commands/DescribeNodegroupCommand.ts +++ b/clients/client-eks/src/commands/DescribeNodegroupCommand.ts @@ -133,8 +133,8 @@ export interface DescribeNodegroupCommandOutput extends DescribeNodegroupRespons * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DescribeUpdateCommand.ts b/clients/client-eks/src/commands/DescribeUpdateCommand.ts index 2beec2b3e3f3..95ad2637f64a 100644 --- a/clients/client-eks/src/commands/DescribeUpdateCommand.ts +++ b/clients/client-eks/src/commands/DescribeUpdateCommand.ts @@ -90,8 +90,8 @@ export interface DescribeUpdateCommandOutput extends DescribeUpdateResponse, __M * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/DisassociateIdentityProviderConfigCommand.ts b/clients/client-eks/src/commands/DisassociateIdentityProviderConfigCommand.ts index 0a0913ee5a91..d8d9c3e85d2a 100644 --- a/clients/client-eks/src/commands/DisassociateIdentityProviderConfigCommand.ts +++ b/clients/client-eks/src/commands/DisassociateIdentityProviderConfigCommand.ts @@ -47,8 +47,8 @@ export interface DisassociateIdentityProviderConfigCommandOutput * @public *

Disassociates an identity provider configuration from a cluster. If you disassociate * an identity provider from your cluster, users included in the provider can no longer - * access the cluster. However, you can still access the cluster with Amazon Web Services - * IAM users.

+ * access the cluster. However, you can still access the cluster with + * IAM principals.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -99,8 +99,8 @@ export interface DisassociateIdentityProviderConfigCommandOutput * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/ListAddonsCommand.ts b/clients/client-eks/src/commands/ListAddonsCommand.ts index 186fedbfcede..0593318e1ca3 100644 --- a/clients/client-eks/src/commands/ListAddonsCommand.ts +++ b/clients/client-eks/src/commands/ListAddonsCommand.ts @@ -37,7 +37,7 @@ export interface ListAddonsCommandOutput extends ListAddonsResponse, __MetadataB /** * @public - *

Lists the available add-ons.

+ *

Lists the installed add-ons.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -68,8 +68,8 @@ export interface ListAddonsCommandOutput extends ListAddonsResponse, __MetadataB * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/ListClustersCommand.ts b/clients/client-eks/src/commands/ListClustersCommand.ts index a28de4b5ebe6..66312b428571 100644 --- a/clients/client-eks/src/commands/ListClustersCommand.ts +++ b/clients/client-eks/src/commands/ListClustersCommand.ts @@ -71,8 +71,8 @@ export interface ListClustersCommandOutput extends ListClustersResponse, __Metad * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/ListEksAnywhereSubscriptionsCommand.ts b/clients/client-eks/src/commands/ListEksAnywhereSubscriptionsCommand.ts new file mode 100644 index 000000000000..f5c72944dc15 --- /dev/null +++ b/clients/client-eks/src/commands/ListEksAnywhereSubscriptionsCommand.ts @@ -0,0 +1,197 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { EKSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EKSClient"; +import { ListEksAnywhereSubscriptionsRequest, ListEksAnywhereSubscriptionsResponse } from "../models/models_0"; +import { + de_ListEksAnywhereSubscriptionsCommand, + se_ListEksAnywhereSubscriptionsCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link ListEksAnywhereSubscriptionsCommand}. + */ +export interface ListEksAnywhereSubscriptionsCommandInput extends ListEksAnywhereSubscriptionsRequest {} +/** + * @public + * + * The output of {@link ListEksAnywhereSubscriptionsCommand}. + */ +export interface ListEksAnywhereSubscriptionsCommandOutput + extends ListEksAnywhereSubscriptionsResponse, + __MetadataBearer {} + +/** + * @public + *

Displays the full description of the subscription.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EKSClient, ListEksAnywhereSubscriptionsCommand } from "@aws-sdk/client-eks"; // ES Modules import + * // const { EKSClient, ListEksAnywhereSubscriptionsCommand } = require("@aws-sdk/client-eks"); // CommonJS import + * const client = new EKSClient(config); + * const input = { // ListEksAnywhereSubscriptionsRequest + * maxResults: Number("int"), + * nextToken: "STRING_VALUE", + * includeStatus: [ // EksAnywhereSubscriptionStatusValues + * "CREATING" || "ACTIVE" || "UPDATING" || "EXPIRING" || "EXPIRED" || "DELETING", + * ], + * }; + * const command = new ListEksAnywhereSubscriptionsCommand(input); + * const response = await client.send(command); + * // { // ListEksAnywhereSubscriptionsResponse + * // subscriptions: [ // EksAnywhereSubscriptionList + * // { // EksAnywhereSubscription + * // id: "STRING_VALUE", + * // arn: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // effectiveDate: new Date("TIMESTAMP"), + * // expirationDate: new Date("TIMESTAMP"), + * // licenseQuantity: Number("int"), + * // licenseType: "Cluster", + * // term: { // EksAnywhereSubscriptionTerm + * // duration: Number("int"), + * // unit: "MONTHS", + * // }, + * // status: "STRING_VALUE", + * // autoRenew: true || false, + * // licenseArns: [ // StringList + * // "STRING_VALUE", + * // ], + * // tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListEksAnywhereSubscriptionsCommandInput - {@link ListEksAnywhereSubscriptionsCommandInput} + * @returns {@link ListEksAnywhereSubscriptionsCommandOutput} + * @see {@link ListEksAnywhereSubscriptionsCommandInput} for command's `input` shape. + * @see {@link ListEksAnywhereSubscriptionsCommandOutput} for command's `response` shape. + * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. + * + * @throws {@link ClientException} (client fault) + *

These errors are usually caused by a client action. Actions can include using an + * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

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

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

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

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

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

The service is unavailable. Back off and retry the operation.

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

Base exception class for all service exceptions from EKS service.

+ * + */ +export class ListEksAnywhereSubscriptionsCommand extends $Command< + ListEksAnywhereSubscriptionsCommandInput, + ListEksAnywhereSubscriptionsCommandOutput, + EKSClientResolvedConfig +> { + // 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: ListEksAnywhereSubscriptionsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EKSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, ListEksAnywhereSubscriptionsCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EKSClient"; + const commandName = "ListEksAnywhereSubscriptionsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AWSWesleyFrontend", + operation: "ListEksAnywhereSubscriptions", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: ListEksAnywhereSubscriptionsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_ListEksAnywhereSubscriptionsCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_ListEksAnywhereSubscriptionsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-eks/src/commands/ListFargateProfilesCommand.ts b/clients/client-eks/src/commands/ListFargateProfilesCommand.ts index c96accb6963d..5ba6c2bcdf16 100644 --- a/clients/client-eks/src/commands/ListFargateProfilesCommand.ts +++ b/clients/client-eks/src/commands/ListFargateProfilesCommand.ts @@ -69,8 +69,8 @@ export interface ListFargateProfilesCommandOutput extends ListFargateProfilesRes * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/ListIdentityProviderConfigsCommand.ts b/clients/client-eks/src/commands/ListIdentityProviderConfigsCommand.ts index b3119e1d5282..ef8189089c89 100644 --- a/clients/client-eks/src/commands/ListIdentityProviderConfigsCommand.ts +++ b/clients/client-eks/src/commands/ListIdentityProviderConfigsCommand.ts @@ -76,8 +76,8 @@ export interface ListIdentityProviderConfigsCommandOutput * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/ListNodegroupsCommand.ts b/clients/client-eks/src/commands/ListNodegroupsCommand.ts index df016af4a887..59a42c187f94 100644 --- a/clients/client-eks/src/commands/ListNodegroupsCommand.ts +++ b/clients/client-eks/src/commands/ListNodegroupsCommand.ts @@ -70,8 +70,8 @@ export interface ListNodegroupsCommandOutput extends ListNodegroupsResponse, __M * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/ListUpdatesCommand.ts b/clients/client-eks/src/commands/ListUpdatesCommand.ts index 6697e59b3791..0e8f6fc38a6f 100644 --- a/clients/client-eks/src/commands/ListUpdatesCommand.ts +++ b/clients/client-eks/src/commands/ListUpdatesCommand.ts @@ -71,8 +71,8 @@ export interface ListUpdatesCommandOutput extends ListUpdatesResponse, __Metadat * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/RegisterClusterCommand.ts b/clients/client-eks/src/commands/RegisterClusterCommand.ts index e692abec5eba..ee5ef3b3b9a1 100644 --- a/clients/client-eks/src/commands/RegisterClusterCommand.ts +++ b/clients/client-eks/src/commands/RegisterClusterCommand.ts @@ -38,15 +38,15 @@ export interface RegisterClusterCommandOutput extends RegisterClusterResponse, _ /** * @public *

Connects a Kubernetes cluster to the Amazon EKS control plane.

- *

Any Kubernetes cluster can be connected to the Amazon EKS control plane to - * view current information about the cluster and its nodes.

+ *

Any Kubernetes cluster can be connected to the Amazon EKS control plane to view + * current information about the cluster and its nodes.

*

Cluster connection requires two steps. First, send a * RegisterClusterRequest * to add it to the Amazon EKS * control plane.

*

Second, a Manifest containing the activationID and - * activationCode must be applied to the Kubernetes cluster through it's - * native provider to provide visibility.

+ * activationCode must be applied to the Kubernetes cluster through it's native + * provider to provide visibility.

*

After the Manifest is updated and applied, then the connected cluster is visible to * the Amazon EKS control plane. If the Manifest is not applied within three days, * then the connected cluster will no longer be visible and must be deregistered. See DeregisterCluster.

@@ -167,15 +167,16 @@ export interface RegisterClusterCommandOutput extends RegisterClusterResponse, _ * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) - *

You don't have permissions to perform the requested operation. The user or role that - * is making the request must have at least one IAM permissions policy - * attached that grants the required permissions. For more information, see Access - * Management in the IAM User Guide.

+ *

You don't have permissions to perform the requested operation. The IAM principal + * making the request must have at least one IAM permissions policy attached + * that grants the required permissions. For more information, see Access + * management in the IAM User Guide. + *

* * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/UpdateAddonCommand.ts b/clients/client-eks/src/commands/UpdateAddonCommand.ts index 34c6aa7ee30e..05b9bfeebe4f 100644 --- a/clients/client-eks/src/commands/UpdateAddonCommand.ts +++ b/clients/client-eks/src/commands/UpdateAddonCommand.ts @@ -89,8 +89,8 @@ export interface UpdateAddonCommandOutput extends UpdateAddonResponse, __Metadat * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/UpdateClusterConfigCommand.ts b/clients/client-eks/src/commands/UpdateClusterConfigCommand.ts index adf8559cc43d..298cfd76ed18 100644 --- a/clients/client-eks/src/commands/UpdateClusterConfigCommand.ts +++ b/clients/client-eks/src/commands/UpdateClusterConfigCommand.ts @@ -41,9 +41,9 @@ export interface UpdateClusterConfigCommandOutput extends UpdateClusterConfigRes * function during the update. The response output includes an update ID that you can use * to track the status of your cluster update with the DescribeUpdate API * operation.

- *

You can use this API operation to enable or disable exporting the Kubernetes control - * plane logs for your cluster to CloudWatch Logs. By default, cluster control plane - * logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the + *

You can use this API operation to enable or disable exporting the Kubernetes control plane + * logs for your cluster to CloudWatch Logs. By default, cluster control plane logs + * aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the * * Amazon EKS User Guide * .

@@ -134,8 +134,8 @@ export interface UpdateClusterConfigCommandOutput extends UpdateClusterConfigRes * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/UpdateClusterVersionCommand.ts b/clients/client-eks/src/commands/UpdateClusterVersionCommand.ts index 9ff1de43a705..d621ba0cc401 100644 --- a/clients/client-eks/src/commands/UpdateClusterVersionCommand.ts +++ b/clients/client-eks/src/commands/UpdateClusterVersionCommand.ts @@ -37,16 +37,16 @@ export interface UpdateClusterVersionCommandOutput extends UpdateClusterVersionR /** * @public - *

Updates an Amazon EKS cluster to the specified Kubernetes version. Your - * cluster continues to function during the update. The response output includes an update - * ID that you can use to track the status of your cluster update with the DescribeUpdate API operation.

+ *

Updates an Amazon EKS cluster to the specified Kubernetes version. Your cluster + * continues to function during the update. The response output includes an update ID that + * you can use to track the status of your cluster update with the DescribeUpdate API operation.

*

Cluster updates are asynchronous, and they should finish within a few minutes. During * an update, the cluster status moves to UPDATING (this status transition is * eventually consistent). When the update is complete (either Failed or * Successful), the cluster status moves to Active.

- *

If your cluster has managed node groups attached to it, all of your node groups’ - * Kubernetes versions must match the cluster’s Kubernetes version in order to update the - * cluster to a new Kubernetes version.

+ *

If your cluster has managed node groups attached to it, all of your node groups’ Kubernetes + * versions must match the cluster’s Kubernetes version in order to update the cluster to a new + * Kubernetes version.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -94,8 +94,8 @@ export interface UpdateClusterVersionCommandOutput extends UpdateClusterVersionR * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/UpdateEksAnywhereSubscriptionCommand.ts b/clients/client-eks/src/commands/UpdateEksAnywhereSubscriptionCommand.ts new file mode 100644 index 000000000000..3fe541350646 --- /dev/null +++ b/clients/client-eks/src/commands/UpdateEksAnywhereSubscriptionCommand.ts @@ -0,0 +1,200 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { EKSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EKSClient"; +import { UpdateEksAnywhereSubscriptionRequest, UpdateEksAnywhereSubscriptionResponse } from "../models/models_0"; +import { + de_UpdateEksAnywhereSubscriptionCommand, + se_UpdateEksAnywhereSubscriptionCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link UpdateEksAnywhereSubscriptionCommand}. + */ +export interface UpdateEksAnywhereSubscriptionCommandInput extends UpdateEksAnywhereSubscriptionRequest {} +/** + * @public + * + * The output of {@link UpdateEksAnywhereSubscriptionCommand}. + */ +export interface UpdateEksAnywhereSubscriptionCommandOutput + extends UpdateEksAnywhereSubscriptionResponse, + __MetadataBearer {} + +/** + * @public + *

Update an EKS Anywhere Subscription. Only auto renewal and tags can be updated after + * subscription creation.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EKSClient, UpdateEksAnywhereSubscriptionCommand } from "@aws-sdk/client-eks"; // ES Modules import + * // const { EKSClient, UpdateEksAnywhereSubscriptionCommand } = require("@aws-sdk/client-eks"); // CommonJS import + * const client = new EKSClient(config); + * const input = { // UpdateEksAnywhereSubscriptionRequest + * id: "STRING_VALUE", // required + * autoRenew: true || false, // required + * clientRequestToken: "STRING_VALUE", + * }; + * const command = new UpdateEksAnywhereSubscriptionCommand(input); + * const response = await client.send(command); + * // { // UpdateEksAnywhereSubscriptionResponse + * // subscription: { // EksAnywhereSubscription + * // id: "STRING_VALUE", + * // arn: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // effectiveDate: new Date("TIMESTAMP"), + * // expirationDate: new Date("TIMESTAMP"), + * // licenseQuantity: Number("int"), + * // licenseType: "Cluster", + * // term: { // EksAnywhereSubscriptionTerm + * // duration: Number("int"), + * // unit: "MONTHS", + * // }, + * // status: "STRING_VALUE", + * // autoRenew: true || false, + * // licenseArns: [ // StringList + * // "STRING_VALUE", + * // ], + * // tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }, + * // }; + * + * ``` + * + * @param UpdateEksAnywhereSubscriptionCommandInput - {@link UpdateEksAnywhereSubscriptionCommandInput} + * @returns {@link UpdateEksAnywhereSubscriptionCommandOutput} + * @see {@link UpdateEksAnywhereSubscriptionCommandInput} for command's `input` shape. + * @see {@link UpdateEksAnywhereSubscriptionCommandOutput} for command's `response` shape. + * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. + * + * @throws {@link ClientException} (client fault) + *

These errors are usually caused by a client action. Actions can include using an + * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

+ * + * @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 ResourceNotFoundException} (client fault) + *

The specified resource could not be found. You can view your available clusters with + * ListClusters. You can view your available managed node groups with + * ListNodegroups. Amazon EKS clusters and node groups are + * Region-specific.

+ * + * @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.

+ * + */ +export class UpdateEksAnywhereSubscriptionCommand extends $Command< + UpdateEksAnywhereSubscriptionCommandInput, + UpdateEksAnywhereSubscriptionCommandOutput, + EKSClientResolvedConfig +> { + // 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: UpdateEksAnywhereSubscriptionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: EKSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, UpdateEksAnywhereSubscriptionCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "EKSClient"; + const commandName = "UpdateEksAnywhereSubscriptionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AWSWesleyFrontend", + operation: "UpdateEksAnywhereSubscription", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: UpdateEksAnywhereSubscriptionCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_UpdateEksAnywhereSubscriptionCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_UpdateEksAnywhereSubscriptionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-eks/src/commands/UpdateNodegroupConfigCommand.ts b/clients/client-eks/src/commands/UpdateNodegroupConfigCommand.ts index 18ea6a9fe1b5..4166b66c4764 100644 --- a/clients/client-eks/src/commands/UpdateNodegroupConfigCommand.ts +++ b/clients/client-eks/src/commands/UpdateNodegroupConfigCommand.ts @@ -39,8 +39,8 @@ export interface UpdateNodegroupConfigCommandOutput extends UpdateNodegroupConfi * @public *

Updates an Amazon EKS managed node group configuration. Your node group * continues to function during the update. The response output includes an update ID that - * you can use to track the status of your node group update with the DescribeUpdate API operation. Currently you can update the Kubernetes - * labels for a node group or the scaling configuration.

+ * you can use to track the status of your node group update with the DescribeUpdate API operation. Currently you can update the Kubernetes labels + * for a node group or the scaling configuration.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -121,8 +121,8 @@ export interface UpdateNodegroupConfigCommandOutput extends UpdateNodegroupConfi * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/UpdateNodegroupVersionCommand.ts b/clients/client-eks/src/commands/UpdateNodegroupVersionCommand.ts index 554d3ee0a252..1a986b2fb5e2 100644 --- a/clients/client-eks/src/commands/UpdateNodegroupVersionCommand.ts +++ b/clients/client-eks/src/commands/UpdateNodegroupVersionCommand.ts @@ -51,8 +51,7 @@ export interface UpdateNodegroupVersionCommandOutput extends UpdateNodegroupVers * Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the * Amazon EKS User Guide. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the * Amazon EKS User Guide.

- *

You cannot roll back a node group to an earlier Kubernetes version or AMI - * version.

+ *

You cannot roll back a node group to an earlier Kubernetes version or AMI version.

*

When a node in a managed node group is terminated due to a scaling action or update, * the pods in that node are drained first. Amazon EKS attempts to drain the nodes * gracefully and will fail if it is unable to do so. You can force the update @@ -113,8 +112,8 @@ export interface UpdateNodegroupVersionCommandOutput extends UpdateNodegroupVers * * @throws {@link ClientException} (client fault) *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

* * @throws {@link InvalidParameterException} (client fault) *

The specified parameter is invalid. Review the available parameters for the API diff --git a/clients/client-eks/src/commands/index.ts b/clients/client-eks/src/commands/index.ts index be4f77aadbfc..4ff56af26c9b 100644 --- a/clients/client-eks/src/commands/index.ts +++ b/clients/client-eks/src/commands/index.ts @@ -3,10 +3,12 @@ export * from "./AssociateEncryptionConfigCommand"; export * from "./AssociateIdentityProviderConfigCommand"; export * from "./CreateAddonCommand"; export * from "./CreateClusterCommand"; +export * from "./CreateEksAnywhereSubscriptionCommand"; export * from "./CreateFargateProfileCommand"; export * from "./CreateNodegroupCommand"; export * from "./DeleteAddonCommand"; export * from "./DeleteClusterCommand"; +export * from "./DeleteEksAnywhereSubscriptionCommand"; export * from "./DeleteFargateProfileCommand"; export * from "./DeleteNodegroupCommand"; export * from "./DeregisterClusterCommand"; @@ -14,6 +16,7 @@ export * from "./DescribeAddonCommand"; export * from "./DescribeAddonConfigurationCommand"; export * from "./DescribeAddonVersionsCommand"; export * from "./DescribeClusterCommand"; +export * from "./DescribeEksAnywhereSubscriptionCommand"; export * from "./DescribeFargateProfileCommand"; export * from "./DescribeIdentityProviderConfigCommand"; export * from "./DescribeNodegroupCommand"; @@ -21,6 +24,7 @@ export * from "./DescribeUpdateCommand"; export * from "./DisassociateIdentityProviderConfigCommand"; export * from "./ListAddonsCommand"; export * from "./ListClustersCommand"; +export * from "./ListEksAnywhereSubscriptionsCommand"; export * from "./ListFargateProfilesCommand"; export * from "./ListIdentityProviderConfigsCommand"; export * from "./ListNodegroupsCommand"; @@ -32,5 +36,6 @@ export * from "./UntagResourceCommand"; export * from "./UpdateAddonCommand"; export * from "./UpdateClusterConfigCommand"; export * from "./UpdateClusterVersionCommand"; +export * from "./UpdateEksAnywhereSubscriptionCommand"; export * from "./UpdateNodegroupConfigCommand"; export * from "./UpdateNodegroupVersionCommand"; diff --git a/clients/client-eks/src/index.ts b/clients/client-eks/src/index.ts index 49db5876512d..cc6dae665dac 100644 --- a/clients/client-eks/src/index.ts +++ b/clients/client-eks/src/index.ts @@ -2,15 +2,14 @@ /* eslint-disable */ /** *

Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy - * for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain - * your own Kubernetes control plane. Kubernetes is an open-source system for automating - * the deployment, scaling, and management of containerized applications.

- *

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so - * you can use all the existing plugins and tooling from the Kubernetes community. - * Applications running on Amazon EKS are fully compatible with applications - * running on any standard Kubernetes environment, whether running in on-premises data - * centers or public clouds. This means that you can easily migrate any standard Kubernetes - * application to Amazon EKS without any code modification required.

+ * for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain your + * own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, + * scaling, and management of containerized applications.

+ *

Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you + * can use all the existing plugins and tooling from the Kubernetes community. Applications + * running on Amazon EKS are fully compatible with applications running on any + * standard Kubernetes environment, whether running in on-premises data centers or public + * clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.

* * @packageDocumentation */ diff --git a/clients/client-eks/src/models/models_0.ts b/clients/client-eks/src/models/models_0.ts index cf25355650c8..cecdfbee3200 100644 --- a/clients/client-eks/src/models/models_0.ts +++ b/clients/client-eks/src/models/models_0.ts @@ -5,10 +5,11 @@ import { EKSServiceException as __BaseException } from "./EKSServiceException"; /** * @public - *

You don't have permissions to perform the requested operation. The user or role that - * is making the request must have at least one IAM permissions policy - * attached that grants the required permissions. For more information, see Access - * Management in the IAM User Guide.

+ *

You don't have permissions to perform the requested operation. The IAM principal + * making the request must have at least one IAM permissions policy attached + * that grants the required permissions. For more information, see Access + * management in the IAM User Guide. + *

*/ export class AccessDeniedException extends __BaseException { readonly name: "AccessDeniedException" = "AccessDeniedException"; @@ -343,10 +344,12 @@ export type AMITypes = (typeof AMITypes)[keyof typeof AMITypes]; export interface Provider { /** * @public - *

Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same - * region as the cluster, and if the KMS key was created in a different account, the user - * must have access to the KMS key. For more information, see Allowing - * Users in Other Accounts to Use a KMS key in the Key Management Service Developer Guide.

+ *

Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be + * symmetric and created in the same Amazon Web Services Region as the cluster. If the + * KMS key was created in a different account, the IAM principal must + * have access to the KMS key. For more information, see Allowing + * users in other accounts to use a KMS key in the + * Key Management Service Developer Guide.

*/ keyArn?: string; } @@ -633,8 +636,8 @@ export interface AssociateEncryptionConfigResponse { /** * @public *

These errors are usually caused by a client action. Actions can include using an - * action or resource on behalf of a user that doesn't have permissions to use the action - * or resource or specifying an identifier that is not valid.

+ * action or resource on behalf of an IAM principal that doesn't have permissions to use + * the action or resource or specifying an identifier that is not valid.

*/ export class ClientException extends __BaseException { readonly name: "ClientException" = "ClientException"; @@ -652,6 +655,12 @@ export class ClientException extends __BaseException { nodegroupName?: string; addonName?: string; + /** + * @public + *

The Amazon EKS subscription ID with the exception.

+ */ + subscriptionId?: string; + /** * @internal */ @@ -665,6 +674,7 @@ export class ClientException extends __BaseException { this.clusterName = opts.clusterName; this.nodegroupName = opts.nodegroupName; this.addonName = opts.addonName; + this.subscriptionId = opts.subscriptionId; } } @@ -695,6 +705,12 @@ export class InvalidParameterException extends __BaseException { fargateProfileName?: string; addonName?: string; + /** + * @public + *

The Amazon EKS subscription ID with the exception.

+ */ + subscriptionId?: string; + /** * @internal */ @@ -709,6 +725,7 @@ export class InvalidParameterException extends __BaseException { this.nodegroupName = opts.nodegroupName; this.fargateProfileName = opts.fargateProfileName; this.addonName = opts.addonName; + this.subscriptionId = opts.subscriptionId; } } @@ -733,6 +750,12 @@ export class InvalidRequestException extends __BaseException { nodegroupName?: string; addonName?: string; + /** + * @public + *

The Amazon EKS subscription ID with the exception.

+ */ + subscriptionId?: string; + /** * @internal */ @@ -746,6 +769,7 @@ export class InvalidRequestException extends __BaseException { this.clusterName = opts.clusterName; this.nodegroupName = opts.nodegroupName; this.addonName = opts.addonName; + this.subscriptionId = opts.subscriptionId; } } @@ -814,6 +838,12 @@ export class ResourceNotFoundException extends __BaseException { fargateProfileName?: string; addonName?: string; + /** + * @public + *

The Amazon EKS subscription ID with the exception.

+ */ + subscriptionId?: string; + /** * @internal */ @@ -828,6 +858,7 @@ export class ResourceNotFoundException extends __BaseException { this.nodegroupName = opts.nodegroupName; this.fargateProfileName = opts.fargateProfileName; this.addonName = opts.addonName; + this.subscriptionId = opts.subscriptionId; } } @@ -851,6 +882,12 @@ export class ServerException extends __BaseException { nodegroupName?: string; addonName?: string; + /** + * @public + *

The Amazon EKS subscription ID with the exception.

+ */ + subscriptionId?: string; + /** * @internal */ @@ -864,6 +901,7 @@ export class ServerException extends __BaseException { this.clusterName = opts.clusterName; this.nodegroupName = opts.nodegroupName; this.addonName = opts.addonName; + this.subscriptionId = opts.subscriptionId; } } @@ -1082,8 +1120,11 @@ export interface CreateAddonRequest { * *
  • *

    - * Preserve – Not supported. You can set - * this value when updating an add-on though. For more information, see UpdateAddon.

    + * Preserve – This is similar to the NONE + * option. If the self-managed version of the add-on is installed on your cluster + * Amazon EKS doesn't change the add-on resource properties. Creation + * of the add-on might fail if conflicts are detected. This option works + * differently during the update operation. For more information, see UpdateAddon.

    *
  • * *

    If you don't currently have the self-managed version of the add-on installed on your @@ -1149,15 +1190,16 @@ export type IpFamily = (typeof IpFamily)[keyof typeof IpFamily]; export interface KubernetesNetworkConfigRequest { /** * @public - *

    Don't specify a value if you select ipv6 for ipFamily. The CIDR block to assign Kubernetes service IP addresses from. - * If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 - * or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not - * overlap with resources in other networks that are peered or connected to your VPC. The - * block must meet the following requirements:

    + *

    Don't specify a value if you select ipv6 for ipFamily. The CIDR block to assign Kubernetes service IP addresses from. If + * you don't specify a block, Kubernetes assigns addresses from either the + * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend + * that you specify a block that does not overlap with resources in other networks that are + * peered or connected to your VPC. The block must meet the following requirements:

    *
      *
    • - *

      Within one of the following private IP address blocks: 10.0.0.0/8, - * 172.16.0.0/12, or 192.168.0.0/16.

      + *

      Within one of the following private IP address blocks: + * 10.0.0.0/8, 172.16.0.0/12, or + * 192.168.0.0/16.

      *
    • *
    • *

      Doesn't overlap with any CIDR block assigned to the VPC that you selected for @@ -1176,19 +1218,21 @@ export interface KubernetesNetworkConfigRequest { /** * @public - *

      Specify which IP family is used to assign Kubernetes pod and service IP addresses. If - * you don't specify a value, ipv4 is used by default. You can only specify an - * IP family when you create a cluster and can't change this value once the cluster is + *

      Specify which IP family is used to assign Kubernetes pod and service IP addresses. If you + * don't specify a value, ipv4 is used by default. You can only specify an IP + * family when you create a cluster and can't change this value once the cluster is * created. If you specify ipv6, the VPC and subnets that you specify for - * cluster creation must have both IPv4 and IPv6 CIDR blocks assigned to them. You can't - * specify ipv6 for clusters in China Regions.

      - *

      You can only specify ipv6 for 1.21 and later clusters that use version - * 1.10.1 or later of the Amazon VPC CNI add-on. If you specify ipv6, then ensure - * that your VPC meets the requirements listed in the considerations listed in Assigning IPv6 - * addresses to pods and services in the Amazon EKS User Guide. - * Kubernetes assigns services IPv6 addresses from the unique local address range - * (fc00::/7). You can't specify a custom IPv6 CIDR block. Pod addresses are assigned from - * the subnet's IPv6 CIDR.

      + * cluster creation must have both IPv4 and IPv6 CIDR blocks + * assigned to them. You can't specify ipv6 for clusters in China + * Regions.

      + *

      You can only specify ipv6 for 1.21 and later clusters that + * use version 1.10.1 or later of the Amazon VPC CNI add-on. If you specify + * ipv6, then ensure that your VPC meets the requirements listed in the + * considerations listed in Assigning IPv6 addresses to pods and + * services in the Amazon EKS User Guide. Kubernetes assigns services + * IPv6 addresses from the unique local address range + * (fc00::/7). You can't specify a custom IPv6 CIDR block. + * Pod addresses are assigned from the subnet's IPv6 CIDR.

      */ ipFamily?: IpFamily; } @@ -1246,8 +1290,7 @@ export interface Logging { * @public *

      The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see * Capacity - * considerations in the Amazon EKS User Guide - *

      + * considerations in the Amazon EKS User Guide.

      */ export interface ControlPlanePlacementRequest { /** @@ -1323,12 +1366,12 @@ export interface VpcConfigRequest { /** * @public - *

      Set this value to false to disable public access to your cluster's - * Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes - * API server can only receive requests from within the cluster VPC. The default value for - * this parameter is true, which enables public access for your Kubernetes API - * server. For more information, see Amazon EKS cluster endpoint access control in the - * + *

      Set this value to false to disable public access to your cluster's Kubernetes + * API server endpoint. If you disable public access, your cluster's Kubernetes API server can + * only receive requests from within the cluster VPC. The default value for this parameter + * is true, which enables public access for your Kubernetes API server. For more + * information, see Amazon EKS cluster endpoint access control in + * the * Amazon EKS User Guide * .

      */ @@ -1336,14 +1379,14 @@ export interface VpcConfigRequest { /** * @public - *

      Set this value to true to enable private access for your cluster's - * Kubernetes API server endpoint. If you enable private access, Kubernetes API requests - * from within your cluster's VPC use the private VPC endpoint. The default value for this - * parameter is false, which disables private access for your Kubernetes API - * server. If you disable private access and you have nodes or Fargate - * pods in the cluster, then ensure that publicAccessCidrs includes the - * necessary CIDR blocks for communication with the nodes or Fargate pods. - * For more information, see Amazon EKS cluster endpoint access control in + *

      Set this value to true to enable private access for your cluster's Kubernetes + * API server endpoint. If you enable private access, Kubernetes API requests from within your + * cluster's VPC use the private VPC endpoint. The default value for this parameter is + * false, which disables private access for your Kubernetes API server. If you + * disable private access and you have nodes or Fargate pods in the + * cluster, then ensure that publicAccessCidrs includes the necessary CIDR + * blocks for communication with the nodes or Fargate pods. For more + * information, see Amazon EKS cluster endpoint access control in * the * Amazon EKS User Guide * .

      @@ -1377,8 +1420,8 @@ export interface CreateClusterRequest { /** * @public - *

      The desired Kubernetes version for your cluster. If you don't specify a value here, - * the default version available in Amazon EKS is used.

      + *

      The desired Kubernetes version for your cluster. If you don't specify a value here, the + * default version available in Amazon EKS is used.

      * *

      The default version might not be the latest version available.

      *
      @@ -1387,9 +1430,9 @@ export interface CreateClusterRequest { /** * @public - *

      The Amazon Resource Name (ARN) of the IAM role that provides permissions for the - * Kubernetes control plane to make calls to Amazon Web Services API operations on your - * behalf. For more information, see Amazon EKS Service IAM Role in the + *

      The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes + * control plane to make calls to Amazon Web Services API operations on your behalf. For + * more information, see Amazon EKS Service IAM Role in the * Amazon EKS User Guide * .

      */ @@ -1398,11 +1441,12 @@ export interface CreateClusterRequest { /** * @public *

      The VPC configuration that's used by the cluster control plane. Amazon EKS VPC - * resources have specific requirements to work properly with Kubernetes. For more - * information, see Cluster VPC Considerations and Cluster Security - * Group Considerations in the Amazon EKS User Guide. You must specify at least two - * subnets. You can specify up to five security groups. However, we recommend that you use - * a dedicated security group for your cluster control plane.

      + * resources have specific requirements to work properly with Kubernetes. For more information, + * see Cluster VPC + * Considerations and Cluster Security Group Considerations in the + * Amazon EKS User Guide. You must specify at least two subnets. You can specify up to five + * security groups. However, we recommend that you use a dedicated security group for your + * cluster control plane.

      */ resourcesVpcConfig: VpcConfigRequest | undefined; @@ -1414,9 +1458,7 @@ export interface CreateClusterRequest { /** * @public - *

      Enable or disable exporting the Kubernetes control plane logs for your cluster to - * CloudWatch Logs. By default, cluster control plane logs aren't exported to - * CloudWatch Logs. For more information, see Amazon EKS Cluster control plane logs in the + *

      Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster control plane logs in the * * Amazon EKS User Guide * .

      @@ -1613,8 +1655,8 @@ export interface Identity { /** * @public - *

      The Kubernetes network configuration for the cluster. The response contains a value - * for serviceIpv6Cidr or serviceIpv4Cidr, but not both.

      + *

      The Kubernetes network configuration for the cluster. The response contains a value for + * serviceIpv6Cidr or serviceIpv4Cidr, but not both.

      */ export interface KubernetesNetworkConfigResponse { /** @@ -1633,9 +1675,9 @@ export interface KubernetesNetworkConfigResponse { *

      The CIDR block that Kubernetes pod and service IP addresses are assigned from if you * created a 1.21 or later cluster with version 1.10.1 or later of the Amazon VPC CNI add-on and * specified ipv6 for ipFamily when you - * created the cluster. Kubernetes assigns service addresses from the unique local address - * range (fc00::/7) because you can't specify a custom IPv6 CIDR block when - * you create the cluster.

      + * created the cluster. Kubernetes assigns service addresses from the unique local address range + * (fc00::/7) because you can't specify a custom IPv6 CIDR block when you + * create the cluster.

      */ serviceIpv6Cidr?: string; @@ -1708,8 +1750,7 @@ export interface VpcConfigResponse { /** * @public *

      The security groups associated with the cross-account elastic network interfaces that - * are used to allow communication between your nodes and the Kubernetes control - * plane.

      + * are used to allow communication between your nodes and the Kubernetes control plane.

      */ securityGroupIds?: string[]; @@ -1739,8 +1780,8 @@ export interface VpcConfigResponse { /** * @public *

      This parameter indicates whether the Amazon EKS private API server endpoint is - * enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes - * API requests that originate from within your cluster's VPC use the private VPC endpoint + * enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes API + * requests that originate from within your cluster's VPC use the private VPC endpoint * instead of traversing the internet. If this value is disabled and you have nodes or * Fargate pods in the cluster, then ensure that * publicAccessCidrs includes the necessary CIDR blocks for communication @@ -1820,18 +1861,18 @@ export interface Cluster { /** * @public - *

      The Amazon Resource Name (ARN) of the IAM role that provides permissions for the - * Kubernetes control plane to make calls to Amazon Web Services API operations on your - * behalf.

      + *

      The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes + * control plane to make calls to Amazon Web Services API operations on your behalf.

      */ roleArn?: string; /** * @public *

      The VPC configuration used by the cluster control plane. Amazon EKS VPC - * resources have specific requirements to work properly with Kubernetes. For more - * information, see Cluster VPC Considerations and Cluster Security - * Group Considerations in the Amazon EKS User Guide.

      + * resources have specific requirements to work properly with Kubernetes. For more information, + * see Cluster VPC + * Considerations and Cluster Security Group Considerations in the + * Amazon EKS User Guide.

      */ resourcesVpcConfig?: VpcConfigResponse; @@ -1954,6 +1995,12 @@ export class ResourceLimitExceededException extends __BaseException { */ nodegroupName?: string; + /** + * @public + *

      The Amazon EKS subscription ID with the exception.

      + */ + subscriptionId?: string; + /** * @internal */ @@ -1966,6 +2013,7 @@ export class ResourceLimitExceededException extends __BaseException { Object.setPrototypeOf(this, ResourceLimitExceededException.prototype); this.clusterName = opts.clusterName; this.nodegroupName = opts.nodegroupName; + this.subscriptionId = opts.subscriptionId; } } @@ -2034,6 +2082,210 @@ export class UnsupportedAvailabilityZoneException extends __BaseException { } } +/** + * @public + * @enum + */ +export const EksAnywhereSubscriptionLicenseType = { + Cluster: "Cluster", +} as const; + +/** + * @public + */ +export type EksAnywhereSubscriptionLicenseType = + (typeof EksAnywhereSubscriptionLicenseType)[keyof typeof EksAnywhereSubscriptionLicenseType]; + +/** + * @public + * @enum + */ +export const EksAnywhereSubscriptionTermUnit = { + MONTHS: "MONTHS", +} as const; + +/** + * @public + */ +export type EksAnywhereSubscriptionTermUnit = + (typeof EksAnywhereSubscriptionTermUnit)[keyof typeof EksAnywhereSubscriptionTermUnit]; + +/** + * @public + *

      An object representing the term duration and term unit type of your subscription. This + * determines the term length of your subscription. Valid values are MONTHS for term unit + * and 12 or 36 for term duration, indicating a 12 month or 36 month subscription.

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

      The duration of the subscription term. Valid values are 12 and 36, indicating a 12 month or 36 month subscription.

      + */ + duration?: number; + + /** + * @public + *

      The term unit of the subscription. Valid value is MONTHS.

      + */ + unit?: EksAnywhereSubscriptionTermUnit; +} + +/** + * @public + */ +export interface CreateEksAnywhereSubscriptionRequest { + /** + * @public + *

      The unique name for your subscription. It must be unique in your Amazon Web Services account in the + * Amazon Web Services Region you're creating the subscription in. The name can contain only alphanumeric + * characters (case-sensitive), hyphens, and underscores. It must start with an alphabetic + * character and can't be longer than 100 characters.

      + */ + name: string | undefined; + + /** + * @public + *

      An object representing the term duration and term unit type of your subscription. This + * determines the term length of your subscription. Valid values are MONTHS for term unit + * and 12 or 36 for term duration, indicating a 12 month or 36 month subscription. This + * value cannot be changed after creating the subscription.

      + */ + term: EksAnywhereSubscriptionTerm | undefined; + + /** + * @public + *

      The number of licenses to purchase with the subscription. Valid values are between 1 + * and 1000. This value cannot be changed after creating the subscription.

      + */ + licenseQuantity?: number; + + /** + * @public + *

      The license type for all licenses in the subscription. Valid value is CLUSTER. With + * the CLUSTER license type, each license covers support for a single EKS Anywhere + * cluster.

      + */ + licenseType?: EksAnywhereSubscriptionLicenseType; + + /** + * @public + *

      A boolean indicating whether the subscription auto renews at the end of the + * term.

      + */ + autoRenew?: boolean; + + /** + * @public + *

      Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

      + */ + clientRequestToken?: string; + + /** + * @public + *

      The metadata for a subscription to assist with categorization and organization. Each + * tag consists of a key and an optional value. Subscription tags do not propagate to any + * other resources associated with the subscription.

      + */ + tags?: Record; +} + +/** + * @public + *

      An EKS Anywhere subscription authorizing the customer to support for licensed clusters + * and access to EKS Anywhere Curated Packages.

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

      UUID identifying a subscription.

      + */ + id?: string; + + /** + * @public + *

      The Amazon Resource Name (ARN) for the subscription.

      + */ + arn?: string; + + /** + * @public + *

      The Unix timestamp in seconds for when the subscription was created.

      + */ + createdAt?: Date; + + /** + * @public + *

      The Unix timestamp in seconds for when the subscription is effective.

      + */ + effectiveDate?: Date; + + /** + * @public + *

      The Unix timestamp in seconds for when the subscription will expire or auto renew, + * depending on the auto renew configuration of the subscription object.

      + */ + expirationDate?: Date; + + /** + * @public + *

      The number of licenses included in a subscription. Valid values are between 1 and + * 1000.

      + */ + licenseQuantity?: number; + + /** + * @public + *

      The type of licenses included in the subscription. Valid value is CLUSTER. With the + * CLUSTER license type, each license covers support for a single EKS Anywhere + * cluster.

      + */ + licenseType?: EksAnywhereSubscriptionLicenseType; + + /** + * @public + *

      An EksAnywhereSubscriptionTerm object.

      + */ + term?: EksAnywhereSubscriptionTerm; + + /** + * @public + *

      The status of a subscription.

      + */ + status?: string; + + /** + * @public + *

      A boolean indicating whether or not a subscription will auto renew when it + * expires.

      + */ + autoRenew?: boolean; + + /** + * @public + *

      License Manager License ARNs associated with the subscription.

      + */ + licenseArns?: string[]; + + /** + * @public + *

      The metadata for a subscription to assist with categorization and organization. Each + * tag consists of a key and an optional value. Subscription tags do not propagate to any + * other resources associated with the subscription.

      + */ + tags?: Record; +} + +/** + * @public + */ +export interface CreateEksAnywhereSubscriptionResponse { + /** + * @public + *

      The full description of the subscription.

      + */ + subscription?: EksAnywhereSubscription; +} + /** * @public *

      An object representing an Fargate profile selector.

      @@ -2047,8 +2299,8 @@ export interface FargateProfileSelector { /** * @public - *

      The Kubernetes labels that the selector should match. A pod must contain all of the - * labels that are specified in the selector for it to be considered a match.

      + *

      The Kubernetes labels that the selector should match. A pod must contain all of the labels + * that are specified in the selector for it to be considered a match.

      */ labels?: Record; } @@ -2476,9 +2728,8 @@ export interface CreateNodegroupRequest { /** * @public - *

      The remote access configuration to use with your node group. - * For Linux, the protocol is SSH. For Windows, the protocol is RDP. - * If you specify launchTemplate, then don't specify + *

      The remote access configuration to use with your node group. For Linux, the protocol + * is SSH. For Windows, the protocol is RDP. If you specify launchTemplate, then don't specify * remoteAccess, or the node group deployment will fail. * For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      */ @@ -2510,8 +2761,8 @@ export interface CreateNodegroupRequest { /** * @public - *

      The Kubernetes taints to be applied to the nodes in the node group. For more - * information, see Node taints on + *

      The Kubernetes taints to be applied to the nodes in the node group. For more information, + * see Node taints on * managed node groups.

      */ taints?: Taint[]; @@ -2555,10 +2806,10 @@ export interface CreateNodegroupRequest { /** * @public - *

      The Kubernetes version to use for your managed nodes. By default, the Kubernetes - * version of the cluster is used, and this is the only accepted specified value. - * If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version, - * or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      + *

      The Kubernetes version to use for your managed nodes. By default, the Kubernetes version of the + * cluster is used, and this is the only accepted specified value. If you specify launchTemplate, + * and your launch template uses a custom AMI, then don't specify version, or the node group + * deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      */ version?: string; @@ -2918,8 +3169,8 @@ export interface Nodegroup { /** * @public - *

      The Kubernetes taints to be applied to the nodes in the node group when they are - * created. Effect is one of No_Schedule, Prefer_No_Schedule, or + *

      The Kubernetes taints to be applied to the nodes in the node group when they are created. + * Effect is one of No_Schedule, Prefer_No_Schedule, or * No_Execute. Kubernetes taints can be used together with tolerations to * control how workloads are scheduled to your nodes. For more information, see Node taints on managed node groups.

      */ @@ -3040,6 +3291,28 @@ export interface DeleteClusterResponse { cluster?: Cluster; } +/** + * @public + */ +export interface DeleteEksAnywhereSubscriptionRequest { + /** + * @public + *

      The ID of the subscription.

      + */ + id: string | undefined; +} + +/** + * @public + */ +export interface DeleteEksAnywhereSubscriptionResponse { + /** + * @public + *

      The full description of the subscription to be deleted.

      + */ + subscription?: EksAnywhereSubscription; +} + /** * @public */ @@ -3304,6 +3577,28 @@ export interface DescribeClusterResponse { cluster?: Cluster; } +/** + * @public + */ +export interface DescribeEksAnywhereSubscriptionRequest { + /** + * @public + *

      The ID of the subscription.

      + */ + id: string | undefined; +} + +/** + * @public + */ +export interface DescribeEksAnywhereSubscriptionResponse { + /** + * @public + *

      The full description of the subscription.

      + */ + subscription?: EksAnywhereSubscription; +} + /** * @public */ @@ -3648,7 +3943,7 @@ export interface ListAddonsRequest { export interface ListAddonsResponse { /** * @public - *

      A list of available add-ons.

      + *

      A list of installed add-ons.

      */ addons?: string[]; @@ -3726,6 +4021,78 @@ export interface ListClustersResponse { nextToken?: string; } +/** + * @public + * @enum + */ +export const EksAnywhereSubscriptionStatus = { + ACTIVE: "ACTIVE", + CREATING: "CREATING", + DELETING: "DELETING", + EXPIRED: "EXPIRED", + EXPIRING: "EXPIRING", + UPDATING: "UPDATING", +} as const; + +/** + * @public + */ +export type EksAnywhereSubscriptionStatus = + (typeof EksAnywhereSubscriptionStatus)[keyof typeof EksAnywhereSubscriptionStatus]; + +/** + * @public + */ +export interface ListEksAnywhereSubscriptionsRequest { + /** + * @public + *

      The maximum number of cluster results returned by ListEksAnywhereSubscriptions in + * paginated output. When you use this parameter, ListEksAnywhereSubscriptions returns only + * maxResults results in a single page along with a nextToken response element. You can see + * the remaining results of the initial request by sending another + * ListEksAnywhereSubscriptions request with the returned nextToken value. This value can + * be between 1 and 100. If you don't use this parameter, ListEksAnywhereSubscriptions + * returns up to 10 results and a nextToken value if applicable.

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

      The nextToken value to include in a future ListEksAnywhereSubscriptions request. When + * the results of a ListEksAnywhereSubscriptions request exceed maxResults, you can use + * this value to retrieve the next page of results. This value is null when there are no + * more results to return.

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

      An array of subscription statuses to filter on.

      + */ + includeStatus?: EksAnywhereSubscriptionStatus[]; +} + +/** + * @public + */ +export interface ListEksAnywhereSubscriptionsResponse { + /** + * @public + *

      A list of all subscription objects in the region, filtered by includeStatus and + * paginated by nextToken and maxResults.

      + */ + subscriptions?: EksAnywhereSubscription[]; + + /** + * @public + *

      The nextToken value to include in a future ListEksAnywhereSubscriptions request. When + * the results of a ListEksAnywhereSubscriptions request exceed maxResults, you can use + * this value to retrieve the next page of results. This value is null when there are no + * more results to return.

      + */ + nextToken?: string; +} + /** * @public */ @@ -4286,9 +4653,7 @@ export interface UpdateClusterConfigRequest { /** * @public - *

      Enable or disable exporting the Kubernetes control plane logs for your cluster to - * CloudWatch Logs. By default, cluster control plane logs aren't exported to - * CloudWatch Logs. For more information, see Amazon EKS cluster control plane logs in the + *

      Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS cluster control plane logs in the * * Amazon EKS User Guide * .

      @@ -4354,6 +4719,40 @@ export interface UpdateClusterVersionResponse { update?: Update; } +/** + * @public + */ +export interface UpdateEksAnywhereSubscriptionRequest { + /** + * @public + *

      + */ + id: string | undefined; + + /** + * @public + *

      A boolean indicating whether or not to automatically renew the subscription.

      + */ + autoRenew: boolean | undefined; + + /** + * @public + *

      Unique, case-sensitive identifier to ensure the idempotency of the request.

      + */ + clientRequestToken?: string; +} + +/** + * @public + */ +export interface UpdateEksAnywhereSubscriptionResponse { + /** + * @public + *

      The full description of the updated subscription.

      + */ + subscription?: EksAnywhereSubscription; +} + /** * @public *

      An object representing a Kubernetes label change for a managed node group.

      @@ -4411,15 +4810,14 @@ export interface UpdateNodegroupConfigRequest { /** * @public - *

      The Kubernetes labels to be applied to the nodes in the node group after the - * update.

      + *

      The Kubernetes labels to be applied to the nodes in the node group after the update.

      */ labels?: UpdateLabelsPayload; /** * @public - *

      The Kubernetes taints to be applied to the nodes in the node group after the update. - * For more information, see Node taints on + *

      The Kubernetes taints to be applied to the nodes in the node group after the update. For + * more information, see Node taints on * managed node groups.

      */ taints?: UpdateTaintsPayload; @@ -4474,12 +4872,11 @@ export interface UpdateNodegroupVersionRequest { /** * @public - *

      The Kubernetes version to update to. If no version is specified, then the Kubernetes - * version of the node group does not change. You can specify the Kubernetes version of the - * cluster to update the node group to the latest AMI version of the cluster's Kubernetes - * version. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify - * version, or the node group update will fail. - * For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      + *

      The Kubernetes version to update to. If no version is specified, then the Kubernetes version of + * the node group does not change. You can specify the Kubernetes version of the cluster to + * update the node group to the latest AMI version of the cluster's Kubernetes version. + * If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version, + * or the node group update will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      */ version?: string; diff --git a/clients/client-eks/src/protocols/Aws_restJson1.ts b/clients/client-eks/src/protocols/Aws_restJson1.ts index 424c44eef075..b5ee8056c7b8 100644 --- a/clients/client-eks/src/protocols/Aws_restJson1.ts +++ b/clients/client-eks/src/protocols/Aws_restJson1.ts @@ -4,6 +4,7 @@ import { _json, collectBody, decorateServiceException as __decorateServiceException, + expectBoolean as __expectBoolean, expectInt32 as __expectInt32, expectNonNull as __expectNonNull, expectNumber as __expectNumber, @@ -33,6 +34,10 @@ import { } from "../commands/AssociateIdentityProviderConfigCommand"; import { CreateAddonCommandInput, CreateAddonCommandOutput } from "../commands/CreateAddonCommand"; import { CreateClusterCommandInput, CreateClusterCommandOutput } from "../commands/CreateClusterCommand"; +import { + CreateEksAnywhereSubscriptionCommandInput, + CreateEksAnywhereSubscriptionCommandOutput, +} from "../commands/CreateEksAnywhereSubscriptionCommand"; import { CreateFargateProfileCommandInput, CreateFargateProfileCommandOutput, @@ -40,6 +45,10 @@ import { import { CreateNodegroupCommandInput, CreateNodegroupCommandOutput } from "../commands/CreateNodegroupCommand"; import { DeleteAddonCommandInput, DeleteAddonCommandOutput } from "../commands/DeleteAddonCommand"; import { DeleteClusterCommandInput, DeleteClusterCommandOutput } from "../commands/DeleteClusterCommand"; +import { + DeleteEksAnywhereSubscriptionCommandInput, + DeleteEksAnywhereSubscriptionCommandOutput, +} from "../commands/DeleteEksAnywhereSubscriptionCommand"; import { DeleteFargateProfileCommandInput, DeleteFargateProfileCommandOutput, @@ -56,6 +65,10 @@ import { DescribeAddonVersionsCommandOutput, } from "../commands/DescribeAddonVersionsCommand"; import { DescribeClusterCommandInput, DescribeClusterCommandOutput } from "../commands/DescribeClusterCommand"; +import { + DescribeEksAnywhereSubscriptionCommandInput, + DescribeEksAnywhereSubscriptionCommandOutput, +} from "../commands/DescribeEksAnywhereSubscriptionCommand"; import { DescribeFargateProfileCommandInput, DescribeFargateProfileCommandOutput, @@ -72,6 +85,10 @@ import { } from "../commands/DisassociateIdentityProviderConfigCommand"; import { ListAddonsCommandInput, ListAddonsCommandOutput } from "../commands/ListAddonsCommand"; import { ListClustersCommandInput, ListClustersCommandOutput } from "../commands/ListClustersCommand"; +import { + ListEksAnywhereSubscriptionsCommandInput, + ListEksAnywhereSubscriptionsCommandOutput, +} from "../commands/ListEksAnywhereSubscriptionsCommand"; import { ListFargateProfilesCommandInput, ListFargateProfilesCommandOutput, @@ -98,6 +115,10 @@ import { UpdateClusterVersionCommandInput, UpdateClusterVersionCommandOutput, } from "../commands/UpdateClusterVersionCommand"; +import { + UpdateEksAnywhereSubscriptionCommandInput, + UpdateEksAnywhereSubscriptionCommandOutput, +} from "../commands/UpdateEksAnywhereSubscriptionCommand"; import { UpdateNodegroupConfigCommandInput, UpdateNodegroupConfigCommandOutput, @@ -116,6 +137,8 @@ import { ConnectorConfigRequest, ConnectorConfigResponse, ControlPlanePlacementRequest, + EksAnywhereSubscription, + EksAnywhereSubscriptionTerm, EncryptionConfig, FargateProfile, FargateProfileSelector, @@ -291,6 +314,42 @@ export const se_CreateClusterCommand = async ( }); }; +/** + * serializeAws_restJson1CreateEksAnywhereSubscriptionCommand + */ +export const se_CreateEksAnywhereSubscriptionCommand = async ( + input: CreateEksAnywhereSubscriptionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/eks-anywhere-subscriptions"; + let body: any; + body = JSON.stringify( + take(input, { + autoRenew: [], + clientRequestToken: [true, (_) => _ ?? generateIdempotencyToken()], + licenseQuantity: [], + licenseType: [], + name: [], + tags: (_) => _json(_), + term: (_) => _json(_), + }) + ); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + /** * serializeAws_restJson1CreateFargateProfileCommand */ @@ -427,6 +486,30 @@ export const se_DeleteClusterCommand = async ( }); }; +/** + * serializeAws_restJson1DeleteEksAnywhereSubscriptionCommand + */ +export const se_DeleteEksAnywhereSubscriptionCommand = async ( + input: DeleteEksAnywhereSubscriptionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/eks-anywhere-subscriptions/{id}"; + resolvedPath = __resolvedPath(resolvedPath, input, "id", () => input.id!, "{id}", false); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + /** * serializeAws_restJson1DeleteFargateProfileCommand */ @@ -627,6 +710,30 @@ export const se_DescribeClusterCommand = async ( }); }; +/** + * serializeAws_restJson1DescribeEksAnywhereSubscriptionCommand + */ +export const se_DescribeEksAnywhereSubscriptionCommand = async ( + input: DescribeEksAnywhereSubscriptionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/eks-anywhere-subscriptions/{id}"; + resolvedPath = __resolvedPath(resolvedPath, input, "id", () => input.id!, "{id}", false); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + /** * serializeAws_restJson1DescribeFargateProfileCommand */ @@ -845,6 +952,38 @@ export const se_ListClustersCommand = async ( }); }; +/** + * serializeAws_restJson1ListEksAnywhereSubscriptionsCommand + */ +export const se_ListEksAnywhereSubscriptionsCommand = async ( + input: ListEksAnywhereSubscriptionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + const resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/eks-anywhere-subscriptions"; + const query: any = map({ + maxResults: [() => input.maxResults !== void 0, () => input.maxResults!.toString()], + nextToken: [, input.nextToken!], + includeStatus: [ + () => input.includeStatus !== void 0, + () => (input.includeStatus! || []).map((_entry) => _entry as any), + ], + }); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + /** * serializeAws_restJson1ListFargateProfilesCommand */ @@ -1179,6 +1318,38 @@ export const se_UpdateClusterVersionCommand = async ( }); }; +/** + * serializeAws_restJson1UpdateEksAnywhereSubscriptionCommand + */ +export const se_UpdateEksAnywhereSubscriptionCommand = async ( + input: UpdateEksAnywhereSubscriptionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/eks-anywhere-subscriptions/{id}"; + resolvedPath = __resolvedPath(resolvedPath, input, "id", () => input.id!, "{id}", false); + let body: any; + body = JSON.stringify( + take(input, { + autoRenew: [], + clientRequestToken: [true, (_) => _ ?? generateIdempotencyToken()], + }) + ); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + /** * serializeAws_restJson1UpdateNodegroupConfigCommand */ @@ -1519,6 +1690,65 @@ const de_CreateClusterCommandError = async ( } }; +/** + * deserializeAws_restJson1CreateEksAnywhereSubscriptionCommand + */ +export const de_CreateEksAnywhereSubscriptionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CreateEksAnywhereSubscriptionCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + subscription: (_) => de_EksAnywhereSubscription(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1CreateEksAnywhereSubscriptionCommandError + */ +const de_CreateEksAnywhereSubscriptionCommandError = 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 "ClientException": + case "com.amazonaws.eks#ClientException": + throw await de_ClientExceptionRes(parsedOutput, context); + case "InvalidParameterException": + case "com.amazonaws.eks#InvalidParameterException": + throw await de_InvalidParameterExceptionRes(parsedOutput, context); + case "ResourceLimitExceededException": + case "com.amazonaws.eks#ResourceLimitExceededException": + throw await de_ResourceLimitExceededExceptionRes(parsedOutput, context); + case "ServerException": + case "com.amazonaws.eks#ServerException": + throw await de_ServerExceptionRes(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.eks#ServiceUnavailableException": + throw await de_ServiceUnavailableExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1CreateFargateProfileCommand */ @@ -1764,6 +1994,62 @@ const de_DeleteClusterCommandError = async ( } }; +/** + * deserializeAws_restJson1DeleteEksAnywhereSubscriptionCommand + */ +export const de_DeleteEksAnywhereSubscriptionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_DeleteEksAnywhereSubscriptionCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + subscription: (_) => de_EksAnywhereSubscription(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1DeleteEksAnywhereSubscriptionCommandError + */ +const de_DeleteEksAnywhereSubscriptionCommandError = 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 "ClientException": + case "com.amazonaws.eks#ClientException": + throw await de_ClientExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.eks#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.eks#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ServerException": + case "com.amazonaws.eks#ServerException": + throw await de_ServerExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1DeleteFargateProfileCommand */ @@ -2168,6 +2454,62 @@ const de_DescribeClusterCommandError = async ( } }; +/** + * deserializeAws_restJson1DescribeEksAnywhereSubscriptionCommand + */ +export const de_DescribeEksAnywhereSubscriptionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_DescribeEksAnywhereSubscriptionCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + subscription: (_) => de_EksAnywhereSubscription(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1DescribeEksAnywhereSubscriptionCommandError + */ +const de_DescribeEksAnywhereSubscriptionCommandError = 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 "ClientException": + case "com.amazonaws.eks#ClientException": + throw await de_ClientExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.eks#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ServerException": + case "com.amazonaws.eks#ServerException": + throw await de_ServerExceptionRes(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.eks#ServiceUnavailableException": + throw await de_ServiceUnavailableExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1DescribeFargateProfileCommand */ @@ -2577,6 +2919,63 @@ const de_ListClustersCommandError = async ( } }; +/** + * deserializeAws_restJson1ListEksAnywhereSubscriptionsCommand + */ +export const de_ListEksAnywhereSubscriptionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_ListEksAnywhereSubscriptionsCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + nextToken: __expectString, + subscriptions: (_) => de_EksAnywhereSubscriptionList(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1ListEksAnywhereSubscriptionsCommandError + */ +const de_ListEksAnywhereSubscriptionsCommandError = 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 "ClientException": + case "com.amazonaws.eks#ClientException": + throw await de_ClientExceptionRes(parsedOutput, context); + case "InvalidParameterException": + case "com.amazonaws.eks#InvalidParameterException": + throw await de_InvalidParameterExceptionRes(parsedOutput, context); + case "ServerException": + case "com.amazonaws.eks#ServerException": + throw await de_ServerExceptionRes(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.eks#ServiceUnavailableException": + throw await de_ServiceUnavailableExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1ListFargateProfilesCommand */ @@ -3207,6 +3606,65 @@ const de_UpdateClusterVersionCommandError = async ( } }; +/** + * deserializeAws_restJson1UpdateEksAnywhereSubscriptionCommand + */ +export const de_UpdateEksAnywhereSubscriptionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_UpdateEksAnywhereSubscriptionCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + subscription: (_) => de_EksAnywhereSubscription(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1UpdateEksAnywhereSubscriptionCommandError + */ +const de_UpdateEksAnywhereSubscriptionCommandError = 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 "ClientException": + case "com.amazonaws.eks#ClientException": + throw await de_ClientExceptionRes(parsedOutput, context); + case "InvalidParameterException": + case "com.amazonaws.eks#InvalidParameterException": + throw await de_InvalidParameterExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.eks#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.eks#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ServerException": + case "com.amazonaws.eks#ServerException": + throw await de_ServerExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1UpdateNodegroupConfigCommand */ @@ -3380,6 +3838,7 @@ const de_ClientExceptionRes = async (parsedOutput: any, context: __SerdeContext) clusterName: __expectString, message: __expectString, nodegroupName: __expectString, + subscriptionId: __expectString, }); Object.assign(contents, doc); const exception = new ClientException({ @@ -3404,6 +3863,7 @@ const de_InvalidParameterExceptionRes = async ( fargateProfileName: __expectString, message: __expectString, nodegroupName: __expectString, + subscriptionId: __expectString, }); Object.assign(contents, doc); const exception = new InvalidParameterException({ @@ -3427,6 +3887,7 @@ const de_InvalidRequestExceptionRes = async ( clusterName: __expectString, message: __expectString, nodegroupName: __expectString, + subscriptionId: __expectString, }); Object.assign(contents, doc); const exception = new InvalidRequestException({ @@ -3489,6 +3950,7 @@ const de_ResourceLimitExceededExceptionRes = async ( clusterName: __expectString, message: __expectString, nodegroupName: __expectString, + subscriptionId: __expectString, }); Object.assign(contents, doc); const exception = new ResourceLimitExceededException({ @@ -3513,6 +3975,7 @@ const de_ResourceNotFoundExceptionRes = async ( fargateProfileName: __expectString, message: __expectString, nodegroupName: __expectString, + subscriptionId: __expectString, }); Object.assign(contents, doc); const exception = new ResourceNotFoundException({ @@ -3553,6 +4016,7 @@ const de_ServerExceptionRes = async (parsedOutput: any, context: __SerdeContext) clusterName: __expectString, message: __expectString, nodegroupName: __expectString, + subscriptionId: __expectString, }); Object.assign(contents, doc); const exception = new ServerException({ @@ -3609,6 +4073,8 @@ const de_UnsupportedAvailabilityZoneExceptionRes = async ( // se_ControlPlanePlacementRequest omitted. +// se_EksAnywhereSubscriptionTerm omitted. + // se_EncryptionConfig omitted. // se_EncryptionConfigList omitted. @@ -3760,6 +4226,40 @@ const de_ConnectorConfigResponse = (output: any, context: __SerdeContext): Conne // de_ControlPlanePlacementResponse omitted. +/** + * deserializeAws_restJson1EksAnywhereSubscription + */ +const de_EksAnywhereSubscription = (output: any, context: __SerdeContext): EksAnywhereSubscription => { + return take(output, { + arn: __expectString, + autoRenew: __expectBoolean, + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + effectiveDate: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expirationDate: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + id: __expectString, + licenseArns: _json, + licenseQuantity: __expectInt32, + licenseType: __expectString, + status: __expectString, + tags: _json, + term: _json, + }) as any; +}; + +/** + * deserializeAws_restJson1EksAnywhereSubscriptionList + */ +const de_EksAnywhereSubscriptionList = (output: any, context: __SerdeContext): EksAnywhereSubscription[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_EksAnywhereSubscription(entry, context); + }); + return retVal; +}; + +// de_EksAnywhereSubscriptionTerm omitted. + // de_EncryptionConfig omitted. // de_EncryptionConfigList omitted. diff --git a/codegen/sdk-codegen/aws-models/eks.json b/codegen/sdk-codegen/aws-models/eks.json index 06910d6307e6..7543a14cf2fc 100644 --- a/codegen/sdk-codegen/aws-models/eks.json +++ b/codegen/sdk-codegen/aws-models/eks.json @@ -122,6 +122,9 @@ { "target": "com.amazonaws.eks#CreateCluster" }, + { + "target": "com.amazonaws.eks#CreateEksAnywhereSubscription" + }, { "target": "com.amazonaws.eks#CreateFargateProfile" }, @@ -134,6 +137,9 @@ { "target": "com.amazonaws.eks#DeleteCluster" }, + { + "target": "com.amazonaws.eks#DeleteEksAnywhereSubscription" + }, { "target": "com.amazonaws.eks#DeleteFargateProfile" }, @@ -155,6 +161,9 @@ { "target": "com.amazonaws.eks#DescribeCluster" }, + { + "target": "com.amazonaws.eks#DescribeEksAnywhereSubscription" + }, { "target": "com.amazonaws.eks#DescribeFargateProfile" }, @@ -176,6 +185,9 @@ { "target": "com.amazonaws.eks#ListClusters" }, + { + "target": "com.amazonaws.eks#ListEksAnywhereSubscriptions" + }, { "target": "com.amazonaws.eks#ListFargateProfiles" }, @@ -209,6 +221,9 @@ { "target": "com.amazonaws.eks#UpdateClusterVersion" }, + { + "target": "com.amazonaws.eks#UpdateEksAnywhereSubscription" + }, { "target": "com.amazonaws.eks#UpdateNodegroupConfig" }, @@ -228,7 +243,7 @@ "name": "eks" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

      Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy\n for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain\n your own Kubernetes control plane. Kubernetes is an open-source system for automating\n the deployment, scaling, and management of containerized applications.

      \n

      Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so\n you can use all the existing plugins and tooling from the Kubernetes community.\n Applications running on Amazon EKS are fully compatible with applications\n running on any standard Kubernetes environment, whether running in on-premises data\n centers or public clouds. This means that you can easily migrate any standard Kubernetes\n application to Amazon EKS without any code modification required.

      ", + "smithy.api#documentation": "

      Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy\n for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain your\n own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment,\n scaling, and management of containerized applications.

      \n

      Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you\n can use all the existing plugins and tooling from the Kubernetes community. Applications\n running on Amazon EKS are fully compatible with applications running on any\n standard Kubernetes environment, whether running in on-premises data centers or public\n clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.

      ", "smithy.api#title": "Amazon Elastic Kubernetes Service", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -1269,7 +1284,7 @@ } }, "traits": { - "smithy.api#documentation": "

      You don't have permissions to perform the requested operation. The user or role that\n is making the request must have at least one IAM permissions policy\n attached that grants the required permissions. For more information, see Access\n Management in the IAM User Guide.

      ", + "smithy.api#documentation": "

      You don't have permissions to perform the requested operation. The IAM principal\n making the request must have at least one IAM permissions policy attached\n that grants the required permissions. For more information, see Access\n management in the IAM User Guide.\n

      ", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -1877,12 +1892,18 @@ "addonName": { "target": "com.amazonaws.eks#String" }, + "subscriptionId": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

      The Amazon EKS subscription ID with the exception.

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

      These errors are usually caused by a client action. Actions can include using an\n action or resource on behalf of a user that doesn't have permissions to use the action\n or resource or specifying an identifier that is not valid.

      ", + "smithy.api#documentation": "

      These errors are usually caused by a client action. Actions can include using an\n action or resource on behalf of an IAM principal that doesn't have permissions to use\n the action or resource or specifying an identifier that is not valid.

      ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1923,13 +1944,13 @@ "roleArn": { "target": "com.amazonaws.eks#String", "traits": { - "smithy.api#documentation": "

      The Amazon Resource Name (ARN) of the IAM role that provides permissions for the\n Kubernetes control plane to make calls to Amazon Web Services API operations on your\n behalf.

      " + "smithy.api#documentation": "

      The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes\n control plane to make calls to Amazon Web Services API operations on your behalf.

      " } }, "resourcesVpcConfig": { "target": "com.amazonaws.eks#VpcConfigResponse", "traits": { - "smithy.api#documentation": "

      The VPC configuration used by the cluster control plane. Amazon EKS VPC\n resources have specific requirements to work properly with Kubernetes. For more\n information, see Cluster VPC Considerations and Cluster Security\n Group Considerations in the Amazon EKS User Guide.

      " + "smithy.api#documentation": "

      The VPC configuration used by the cluster control plane. Amazon EKS VPC\n resources have specific requirements to work properly with Kubernetes. For more information,\n see Cluster VPC\n Considerations and Cluster Security Group Considerations in the\n Amazon EKS User Guide.

      " } }, "kubernetesNetworkConfig": { @@ -2394,7 +2415,7 @@ } }, "traits": { - "smithy.api#documentation": "

      The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see\n Capacity\n considerations in the Amazon EKS User Guide\n

      " + "smithy.api#documentation": "

      The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see\n Capacity\n considerations in the Amazon EKS User Guide.

      " } }, "com.amazonaws.eks#ControlPlanePlacementResponse": { @@ -2481,7 +2502,7 @@ "resolveConflicts": { "target": "com.amazonaws.eks#ResolveConflicts", "traits": { - "smithy.api#documentation": "

      How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are\n handled based on the value you choose:

      \n
        \n
      • \n

        \n None – If the self-managed version of\n the add-on is installed on your cluster, Amazon EKS doesn't change the\n value. Creation of the add-on might fail.

        \n
      • \n
      • \n

        \n Overwrite – If the self-managed\n version of the add-on is installed on your cluster and the Amazon EKS\n default value is different than the existing value, Amazon EKS changes\n the value to the Amazon EKS default value.

        \n
      • \n
      • \n

        \n Preserve – Not supported. You can set\n this value when updating an add-on though. For more information, see UpdateAddon.

        \n
      • \n
      \n

      If you don't currently have the self-managed version of the add-on installed on your\n cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values\n to default values, regardless of the option that you specify.

      " + "smithy.api#documentation": "

      How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are\n handled based on the value you choose:

      \n
        \n
      • \n

        \n None – If the self-managed version of\n the add-on is installed on your cluster, Amazon EKS doesn't change the\n value. Creation of the add-on might fail.

        \n
      • \n
      • \n

        \n Overwrite – If the self-managed\n version of the add-on is installed on your cluster and the Amazon EKS\n default value is different than the existing value, Amazon EKS changes\n the value to the Amazon EKS default value.

        \n
      • \n
      • \n

        \n Preserve – This is similar to the NONE\n option. If the self-managed version of the add-on is installed on your cluster\n Amazon EKS doesn't change the add-on resource properties. Creation\n of the add-on might fail if conflicts are detected. This option works\n differently during the update operation. For more information, see UpdateAddon.

        \n
      • \n
      \n

      If you don't currently have the self-managed version of the add-on installed on your\n cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values\n to default values, regardless of the option that you specify.

      " } }, "clientRequestToken": { @@ -2551,7 +2572,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Creates an Amazon EKS control plane.

      \n

      The Amazon EKS control plane consists of control plane instances that run the\n Kubernetes software, such as etcd and the API server. The control plane\n runs in an account managed by Amazon Web Services, and the Kubernetes API is exposed by\n the Amazon EKS API server endpoint. Each Amazon EKS cluster control\n plane is single tenant and unique. It runs on its own set of Amazon EC2\n instances.

      \n

      The cluster control plane is provisioned across multiple Availability Zones and\n fronted by an Elastic Load Balancing\n Network Load Balancer. Amazon EKS also provisions elastic network interfaces in\n your VPC subnets to provide connectivity from the control plane instances to the nodes\n (for example, to support kubectl exec, logs, and\n proxy data flows).

      \n

      Amazon EKS nodes run in your Amazon Web Services account and connect to your\n cluster's control plane over the Kubernetes API server endpoint and a certificate file\n that is created for your cluster.

      \n

      In most cases, it takes several minutes to create a cluster. After you create an\n Amazon EKS cluster, you must configure your Kubernetes tooling to\n communicate with the API server and launch nodes into your cluster. For more\n information, see Managing Cluster Authentication and Launching\n Amazon EKS nodes in the Amazon EKS User Guide.

      ", + "smithy.api#documentation": "

      Creates an Amazon EKS control plane.

      \n

      The Amazon EKS control plane consists of control plane instances that run the\n Kubernetes software, such as etcd and the API server. The control plane runs in\n an account managed by Amazon Web Services, and the Kubernetes API is exposed by the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is\n single tenant and unique. It runs on its own set of Amazon EC2 instances.

      \n

      The cluster control plane is provisioned across multiple Availability Zones and\n fronted by an Elastic Load Balancing\n Network Load Balancer. Amazon EKS also provisions elastic network interfaces in\n your VPC subnets to provide connectivity from the control plane instances to the nodes\n (for example, to support kubectl exec, logs, and\n proxy data flows).

      \n

      Amazon EKS nodes run in your Amazon Web Services account and connect to your\n cluster's control plane over the Kubernetes API server endpoint and a certificate file that\n is created for your cluster.

      \n

      In most cases, it takes several minutes to create a cluster. After you create an\n Amazon EKS cluster, you must configure your Kubernetes tooling to communicate\n with the API server and launch nodes into your cluster. For more information, see Managing Cluster\n Authentication and Launching Amazon EKS nodes in the\n Amazon EKS User Guide.

      ", "smithy.api#examples": [ { "title": "To create a new cluster", @@ -2589,20 +2610,20 @@ "version": { "target": "com.amazonaws.eks#String", "traits": { - "smithy.api#documentation": "

      The desired Kubernetes version for your cluster. If you don't specify a value here,\n the default version available in Amazon EKS is used.

      \n \n

      The default version might not be the latest version available.

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

      The desired Kubernetes version for your cluster. If you don't specify a value here, the\n default version available in Amazon EKS is used.

      \n \n

      The default version might not be the latest version available.

      \n
      " } }, "roleArn": { "target": "com.amazonaws.eks#String", "traits": { - "smithy.api#documentation": "

      The Amazon Resource Name (ARN) of the IAM role that provides permissions for the\n Kubernetes control plane to make calls to Amazon Web Services API operations on your\n behalf. For more information, see Amazon EKS Service IAM Role in the \n Amazon EKS User Guide\n .

      ", + "smithy.api#documentation": "

      The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes\n control plane to make calls to Amazon Web Services API operations on your behalf. For\n more information, see Amazon EKS Service IAM Role in the \n Amazon EKS User Guide\n .

      ", "smithy.api#required": {} } }, "resourcesVpcConfig": { "target": "com.amazonaws.eks#VpcConfigRequest", "traits": { - "smithy.api#documentation": "

      The VPC configuration that's used by the cluster control plane. Amazon EKS VPC\n resources have specific requirements to work properly with Kubernetes. For more\n information, see Cluster VPC Considerations and Cluster Security\n Group Considerations in the Amazon EKS User Guide. You must specify at least two\n subnets. You can specify up to five security groups. However, we recommend that you use\n a dedicated security group for your cluster control plane.

      ", + "smithy.api#documentation": "

      The VPC configuration that's used by the cluster control plane. Amazon EKS VPC\n resources have specific requirements to work properly with Kubernetes. For more information,\n see Cluster VPC\n Considerations and Cluster Security Group Considerations in the\n Amazon EKS User Guide. You must specify at least two subnets. You can specify up to five\n security groups. However, we recommend that you use a dedicated security group for your\n cluster control plane.

      ", "smithy.api#required": {} } }, @@ -2615,7 +2636,7 @@ "logging": { "target": "com.amazonaws.eks#Logging", "traits": { - "smithy.api#documentation": "

      Enable or disable exporting the Kubernetes control plane logs for your cluster to\n CloudWatch Logs. By default, cluster control plane logs aren't exported to\n CloudWatch Logs. For more information, see Amazon EKS Cluster control plane logs in the\n \n Amazon EKS User Guide\n .

      \n \n

      CloudWatch Logs ingestion, archive storage, and data scanning rates apply to\n exported control plane logs. For more information, see CloudWatch\n Pricing.

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

      Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster control plane logs in the\n \n Amazon EKS User Guide\n .

      \n \n

      CloudWatch Logs ingestion, archive storage, and data scanning rates apply to\n exported control plane logs. For more information, see CloudWatch\n Pricing.

      \n
      " } }, "clientRequestToken": { @@ -2662,6 +2683,109 @@ "smithy.api#output": {} } }, + "com.amazonaws.eks#CreateEksAnywhereSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.eks#CreateEksAnywhereSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.eks#CreateEksAnywhereSubscriptionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.eks#ClientException" + }, + { + "target": "com.amazonaws.eks#InvalidParameterException" + }, + { + "target": "com.amazonaws.eks#ResourceLimitExceededException" + }, + { + "target": "com.amazonaws.eks#ServerException" + }, + { + "target": "com.amazonaws.eks#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

      Creates an EKS Anywhere subscription. When a subscription is created, it is a contract\n agreement for the length of the term specified in the request. Licenses that are used to\n validate support are provisioned in Amazon Web Services License Manager and the caller account is\n granted access to EKS Anywhere Curated Packages.

      ", + "smithy.api#http": { + "method": "POST", + "uri": "/eks-anywhere-subscriptions", + "code": 200 + } + } + }, + "com.amazonaws.eks#CreateEksAnywhereSubscriptionRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.eks#EksAnywhereSubscriptionName", + "traits": { + "smithy.api#documentation": "

      The unique name for your subscription. It must be unique in your Amazon Web Services account in the\n Amazon Web Services Region you're creating the subscription in. The name can contain only alphanumeric\n characters (case-sensitive), hyphens, and underscores. It must start with an alphabetic\n character and can't be longer than 100 characters.

      ", + "smithy.api#required": {} + } + }, + "term": { + "target": "com.amazonaws.eks#EksAnywhereSubscriptionTerm", + "traits": { + "smithy.api#documentation": "

      An object representing the term duration and term unit type of your subscription. This\n determines the term length of your subscription. Valid values are MONTHS for term unit\n and 12 or 36 for term duration, indicating a 12 month or 36 month subscription. This\n value cannot be changed after creating the subscription.

      ", + "smithy.api#required": {} + } + }, + "licenseQuantity": { + "target": "com.amazonaws.eks#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

      The number of licenses to purchase with the subscription. Valid values are between 1\n and 1000. This value cannot be changed after creating the subscription.

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

      The license type for all licenses in the subscription. Valid value is CLUSTER. With\n the CLUSTER license type, each license covers support for a single EKS Anywhere\n cluster.

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

      A boolean indicating whether the subscription auto renews at the end of the\n term.

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

      Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

      ", + "smithy.api#idempotencyToken": {} + } + }, + "tags": { + "target": "com.amazonaws.eks#TagMap", + "traits": { + "smithy.api#documentation": "

      The metadata for a subscription to assist with categorization and organization. Each\n tag consists of a key and an optional value. Subscription tags do not propagate to any\n other resources associated with the subscription.

      " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.eks#CreateEksAnywhereSubscriptionResponse": { + "type": "structure", + "members": { + "subscription": { + "target": "com.amazonaws.eks#EksAnywhereSubscription", + "traits": { + "smithy.api#documentation": "

      The full description of the subscription.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.eks#CreateFargateProfile": { "type": "operation", "input": { @@ -2691,7 +2815,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Creates an Fargate profile for your Amazon EKS cluster. You\n must have at least one Fargate profile in a cluster to be able to run\n pods on Fargate.

      \n

      The Fargate profile allows an administrator to declare which pods run\n on Fargate and specify which pods run on which Fargate\n profile. This declaration is done through the profile’s selectors. Each profile can have\n up to five selectors that contain a namespace and labels. A namespace is required for\n every selector. The label field consists of multiple optional key-value pairs. Pods that\n match the selectors are scheduled on Fargate. If a to-be-scheduled pod\n matches any of the selectors in the Fargate profile, then that pod is run\n on Fargate.

      \n

      When you create a Fargate profile, you must specify a pod execution\n role to use with the pods that are scheduled with the profile. This role is added to the\n cluster's Kubernetes Role Based Access Control (RBAC) for authorization so that the\n kubelet that is running on the Fargate infrastructure\n can register with your Amazon EKS cluster so that it can appear in your cluster\n as a node. The pod execution role also provides IAM permissions to the\n Fargate infrastructure to allow read access to Amazon ECR\n image repositories. For more information, see Pod\n Execution Role in the Amazon EKS User Guide.

      \n

      Fargate profiles are immutable. However, you can create a new updated\n profile to replace an existing profile and then delete the original after the updated\n profile has finished creating.

      \n

      If any Fargate profiles in a cluster are in the DELETING\n status, you must wait for that Fargate profile to finish deleting before\n you can create any other profiles in that cluster.

      \n

      For more information, see Fargate Profile in the\n Amazon EKS User Guide.

      ", + "smithy.api#documentation": "

      Creates an Fargate profile for your Amazon EKS cluster. You\n must have at least one Fargate profile in a cluster to be able to run\n pods on Fargate.

      \n

      The Fargate profile allows an administrator to declare which pods run\n on Fargate and specify which pods run on which Fargate\n profile. This declaration is done through the profile’s selectors. Each profile can have\n up to five selectors that contain a namespace and labels. A namespace is required for\n every selector. The label field consists of multiple optional key-value pairs. Pods that\n match the selectors are scheduled on Fargate. If a to-be-scheduled pod\n matches any of the selectors in the Fargate profile, then that pod is run\n on Fargate.

      \n

      When you create a Fargate profile, you must specify a pod execution\n role to use with the pods that are scheduled with the profile. This role is added to the\n cluster's Kubernetes Role Based\n Access Control (RBAC) for authorization so that the kubelet\n that is running on the Fargate infrastructure can register with your\n Amazon EKS cluster so that it can appear in your cluster as a node. The pod\n execution role also provides IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image repositories. For\n more information, see Pod Execution Role in the Amazon EKS User Guide.

      \n

      Fargate profiles are immutable. However, you can create a new updated\n profile to replace an existing profile and then delete the original after the updated\n profile has finished creating.

      \n

      If any Fargate profiles in a cluster are in the DELETING\n status, you must wait for that Fargate profile to finish deleting before\n you can create any other profiles in that cluster.

      \n

      For more information, see Fargate Profile in the\n Amazon EKS User Guide.

      ", "smithy.api#http": { "method": "POST", "uri": "/clusters/{clusterName}/fargate-profiles", @@ -2800,7 +2924,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Creates a managed node group for an Amazon EKS cluster. You can only create a\n node group for your cluster that is equal to the current Kubernetes version for the\n cluster. All node groups are created with the latest AMI release version for the\n respective minor Kubernetes version of the cluster, unless you deploy a custom AMI using\n a launch template. For more information about using launch templates, see Launch\n template support.

      \n

      An Amazon EKS managed node group is an Amazon EC2\n Auto Scaling group and associated Amazon EC2 instances that are managed by\n Amazon Web Services for an Amazon EKS cluster. For more information, see\n Managed node groups in the Amazon EKS User Guide.

      \n \n

      Windows AMI types are only supported for commercial Regions that support Windows\n Amazon EKS.

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

      Creates a managed node group for an Amazon EKS cluster. You can only create a\n node group for your cluster that is equal to the current Kubernetes version for the\n cluster.

      \n

      An Amazon EKS managed node group is an Amazon EC2\n Auto Scaling group and associated Amazon EC2 instances that are managed by\n Amazon Web Services for an Amazon EKS cluster. For more information, see\n Managed node groups in the Amazon EKS User Guide.

      \n \n

      Windows AMI types are only supported for commercial Regions that support Windows\n Amazon EKS.

      \n
      ", "smithy.api#http": { "method": "POST", "uri": "/clusters/{clusterName}/node-groups", @@ -2860,7 +2984,7 @@ "remoteAccess": { "target": "com.amazonaws.eks#RemoteAccessConfig", "traits": { - "smithy.api#documentation": "

      The remote access configuration to use with your node group.\n For Linux, the protocol is SSH. For Windows, the protocol is RDP.\n If you specify launchTemplate, then don't specify \n remoteAccess, or the node group deployment will fail.\n For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      " + "smithy.api#documentation": "

      The remote access configuration to use with your node group. For Linux, the protocol\n is SSH. For Windows, the protocol is RDP. If you specify launchTemplate, then don't specify \n remoteAccess, or the node group deployment will fail.\n For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      " } }, "nodeRole": { @@ -2879,7 +3003,7 @@ "taints": { "target": "com.amazonaws.eks#taintsList", "traits": { - "smithy.api#documentation": "

      The Kubernetes taints to be applied to the nodes in the node group. For more\n information, see Node taints on\n managed node groups.

      " + "smithy.api#documentation": "

      The Kubernetes taints to be applied to the nodes in the node group. For more information,\n see Node taints on\n managed node groups.

      " } }, "tags": { @@ -2916,7 +3040,7 @@ "version": { "target": "com.amazonaws.eks#String", "traits": { - "smithy.api#documentation": "

      The Kubernetes version to use for your managed nodes. By default, the Kubernetes\n version of the cluster is used, and this is the only accepted specified value.\n If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version,\n or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      " + "smithy.api#documentation": "

      The Kubernetes version to use for your managed nodes. By default, the Kubernetes version of the\n cluster is used, and this is the only accepted specified value. If you specify launchTemplate,\n and your launch template uses a custom AMI, then don't specify version, or the node group \n deployment will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      " } }, "releaseVersion": { @@ -3095,6 +3219,67 @@ "smithy.api#output": {} } }, + "com.amazonaws.eks#DeleteEksAnywhereSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.eks#DeleteEksAnywhereSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.eks#DeleteEksAnywhereSubscriptionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.eks#ClientException" + }, + { + "target": "com.amazonaws.eks#InvalidRequestException" + }, + { + "target": "com.amazonaws.eks#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.eks#ServerException" + } + ], + "traits": { + "smithy.api#documentation": "

      Deletes an expired / inactive subscription. Deleting inactive subscriptions removes\n them from the Amazon Web Services Management Console view and from list/describe API responses.\n Subscriptions can only be cancelled within 7 days of creation, and are cancelled by\n creating a ticket in the Amazon Web Services Support Center.

      ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/eks-anywhere-subscriptions/{id}", + "code": 200 + } + } + }, + "com.amazonaws.eks#DeleteEksAnywhereSubscriptionRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

      The ID of the subscription.

      ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.eks#DeleteEksAnywhereSubscriptionResponse": { + "type": "structure", + "members": { + "subscription": { + "target": "com.amazonaws.eks#EksAnywhereSubscription", + "traits": { + "smithy.api#documentation": "

      The full description of the subscription to be deleted.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.eks#DeleteFargateProfile": { "type": "operation", "input": { @@ -3795,6 +3980,67 @@ "smithy.api#output": {} } }, + "com.amazonaws.eks#DescribeEksAnywhereSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.eks#DescribeEksAnywhereSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.eks#DescribeEksAnywhereSubscriptionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.eks#ClientException" + }, + { + "target": "com.amazonaws.eks#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.eks#ServerException" + }, + { + "target": "com.amazonaws.eks#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

      Returns descriptive information about a subscription.

      ", + "smithy.api#http": { + "method": "GET", + "uri": "/eks-anywhere-subscriptions/{id}", + "code": 200 + } + } + }, + "com.amazonaws.eks#DescribeEksAnywhereSubscriptionRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

      The ID of the subscription.

      ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.eks#DescribeEksAnywhereSubscriptionResponse": { + "type": "structure", + "members": { + "subscription": { + "target": "com.amazonaws.eks#EksAnywhereSubscription", + "traits": { + "smithy.api#documentation": "

      The full description of the subscription.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.eks#DescribeFargateProfile": { "type": "operation", "input": { @@ -4215,7 +4461,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Disassociates an identity provider configuration from a cluster. If you disassociate\n an identity provider from your cluster, users included in the provider can no longer\n access the cluster. However, you can still access the cluster with Amazon Web Services\n IAM users.

      ", + "smithy.api#documentation": "

      Disassociates an identity provider configuration from a cluster. If you disassociate\n an identity provider from your cluster, users included in the provider can no longer\n access the cluster. However, you can still access the cluster with\n IAM principals.

      ", "smithy.api#http": { "method": "POST", "uri": "/clusters/{clusterName}/identity-provider-configs/disassociate", @@ -4264,6 +4510,194 @@ "smithy.api#output": {} } }, + "com.amazonaws.eks#EksAnywhereSubscription": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

      UUID identifying a subscription.

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

      The Amazon Resource Name (ARN) for the subscription.

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

      The Unix timestamp in seconds for when the subscription was created.

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

      The Unix timestamp in seconds for when the subscription is effective.

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

      The Unix timestamp in seconds for when the subscription will expire or auto renew,\n depending on the auto renew configuration of the subscription object.

      " + } + }, + "licenseQuantity": { + "target": "com.amazonaws.eks#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

      The number of licenses included in a subscription. Valid values are between 1 and\n 1000.

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

      The type of licenses included in the subscription. Valid value is CLUSTER. With the\n CLUSTER license type, each license covers support for a single EKS Anywhere\n cluster.

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

      An EksAnywhereSubscriptionTerm object.

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

      The status of a subscription.

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

      A boolean indicating whether or not a subscription will auto renew when it\n expires.

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

      License Manager License ARNs associated with the subscription.

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

      The metadata for a subscription to assist with categorization and organization. Each\n tag consists of a key and an optional value. Subscription tags do not propagate to any\n other resources associated with the subscription.

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

      An EKS Anywhere subscription authorizing the customer to support for licensed clusters\n and access to EKS Anywhere Curated Packages.

      " + } + }, + "com.amazonaws.eks#EksAnywhereSubscriptionLicenseType": { + "type": "enum", + "members": { + "Cluster": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Cluster" + } + } + } + }, + "com.amazonaws.eks#EksAnywhereSubscriptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.eks#EksAnywhereSubscription" + } + }, + "com.amazonaws.eks#EksAnywhereSubscriptionName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + }, + "smithy.api#pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*$" + } + }, + "com.amazonaws.eks#EksAnywhereSubscriptionStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "EXPIRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPIRING" + } + }, + "EXPIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXPIRED" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + } + } + }, + "com.amazonaws.eks#EksAnywhereSubscriptionStatusValues": { + "type": "list", + "member": { + "target": "com.amazonaws.eks#EksAnywhereSubscriptionStatus" + } + }, + "com.amazonaws.eks#EksAnywhereSubscriptionTerm": { + "type": "structure", + "members": { + "duration": { + "target": "com.amazonaws.eks#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

      The duration of the subscription term. Valid values are 12 and 36, indicating a 12 month or 36 month subscription.

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

      The term unit of the subscription. Valid value is MONTHS.

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

      An object representing the term duration and term unit type of your subscription. This\n determines the term length of your subscription. Valid values are MONTHS for term unit\n and 12 or 36 for term duration, indicating a 12 month or 36 month subscription.

      " + } + }, + "com.amazonaws.eks#EksAnywhereSubscriptionTermUnit": { + "type": "enum", + "members": { + "MONTHS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONTHS" + } + } + } + }, "com.amazonaws.eks#EncryptionConfig": { "type": "structure", "members": { @@ -4518,7 +4952,7 @@ "labels": { "target": "com.amazonaws.eks#FargateProfileLabel", "traits": { - "smithy.api#documentation": "

      The Kubernetes labels that the selector should match. A pod must contain all of the\n labels that are specified in the selector for it to be considered a match.

      " + "smithy.api#documentation": "

      The Kubernetes labels that the selector should match. A pod must contain all of the labels\n that are specified in the selector for it to be considered a match.

      " } } }, @@ -4638,6 +5072,12 @@ "target": "com.amazonaws.eks#String" } }, + "com.amazonaws.eks#Integer": { + "type": "integer", + "traits": { + "smithy.api#default": 0 + } + }, "com.amazonaws.eks#InvalidParameterException": { "type": "structure", "members": { @@ -4662,6 +5102,12 @@ "addonName": { "target": "com.amazonaws.eks#String" }, + "subscriptionId": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

      The Amazon EKS subscription ID with the exception.

      " + } + }, "message": { "target": "com.amazonaws.eks#String" } @@ -4690,6 +5136,12 @@ "addonName": { "target": "com.amazonaws.eks#String" }, + "subscriptionId": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

      The Amazon EKS subscription ID with the exception.

      " + } + }, "message": { "target": "com.amazonaws.eks#String" } @@ -4755,13 +5207,13 @@ "serviceIpv4Cidr": { "target": "com.amazonaws.eks#String", "traits": { - "smithy.api#documentation": "

      Don't specify a value if you select ipv6 for ipFamily. The CIDR block to assign Kubernetes service IP addresses from.\n If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16\n or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not\n overlap with resources in other networks that are peered or connected to your VPC. The\n block must meet the following requirements:

      \n
        \n
      • \n

        Within one of the following private IP address blocks: 10.0.0.0/8,\n 172.16.0.0/12, or 192.168.0.0/16.

        \n
      • \n
      • \n

        Doesn't overlap with any CIDR block assigned to the VPC that you selected for\n VPC.

        \n
      • \n
      • \n

        Between /24 and /12.

        \n
      • \n
      \n \n

      You can only specify a custom CIDR block when you create a cluster and can't\n change this value once the cluster is created.

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

      Don't specify a value if you select ipv6 for ipFamily. The CIDR block to assign Kubernetes service IP addresses from. If\n you don't specify a block, Kubernetes assigns addresses from either the\n 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend\n that you specify a block that does not overlap with resources in other networks that are\n peered or connected to your VPC. The block must meet the following requirements:

      \n
        \n
      • \n

        Within one of the following private IP address blocks:\n 10.0.0.0/8, 172.16.0.0/12, or\n 192.168.0.0/16.

        \n
      • \n
      • \n

        Doesn't overlap with any CIDR block assigned to the VPC that you selected for\n VPC.

        \n
      • \n
      • \n

        Between /24 and /12.

        \n
      • \n
      \n \n

      You can only specify a custom CIDR block when you create a cluster and can't\n change this value once the cluster is created.

      \n
      " } }, "ipFamily": { "target": "com.amazonaws.eks#IpFamily", "traits": { - "smithy.api#documentation": "

      Specify which IP family is used to assign Kubernetes pod and service IP addresses. If\n you don't specify a value, ipv4 is used by default. You can only specify an\n IP family when you create a cluster and can't change this value once the cluster is\n created. If you specify ipv6, the VPC and subnets that you specify for\n cluster creation must have both IPv4 and IPv6 CIDR blocks assigned to them. You can't\n specify ipv6 for clusters in China Regions.

      \n

      You can only specify ipv6 for 1.21 and later clusters that use version\n 1.10.1 or later of the Amazon VPC CNI add-on. If you specify ipv6, then ensure\n that your VPC meets the requirements listed in the considerations listed in Assigning IPv6\n addresses to pods and services in the Amazon EKS User Guide.\n Kubernetes assigns services IPv6 addresses from the unique local address range\n (fc00::/7). You can't specify a custom IPv6 CIDR block. Pod addresses are assigned from\n the subnet's IPv6 CIDR.

      " + "smithy.api#documentation": "

      Specify which IP family is used to assign Kubernetes pod and service IP addresses. If you\n don't specify a value, ipv4 is used by default. You can only specify an IP\n family when you create a cluster and can't change this value once the cluster is\n created. If you specify ipv6, the VPC and subnets that you specify for\n cluster creation must have both IPv4 and IPv6 CIDR blocks\n assigned to them. You can't specify ipv6 for clusters in China\n Regions.

      \n

      You can only specify ipv6 for 1.21 and later clusters that\n use version 1.10.1 or later of the Amazon VPC CNI add-on. If you specify\n ipv6, then ensure that your VPC meets the requirements listed in the\n considerations listed in Assigning IPv6 addresses to pods and\n services in the Amazon EKS User Guide. Kubernetes assigns services\n IPv6 addresses from the unique local address range\n (fc00::/7). You can't specify a custom IPv6 CIDR block.\n Pod addresses are assigned from the subnet's IPv6 CIDR.

      " } } }, @@ -4781,7 +5233,7 @@ "serviceIpv6Cidr": { "target": "com.amazonaws.eks#String", "traits": { - "smithy.api#documentation": "

      The CIDR block that Kubernetes pod and service IP addresses are assigned from if you\n created a 1.21 or later cluster with version 1.10.1 or later of the Amazon VPC CNI add-on and\n specified ipv6 for ipFamily when you\n created the cluster. Kubernetes assigns service addresses from the unique local address\n range (fc00::/7) because you can't specify a custom IPv6 CIDR block when\n you create the cluster.

      " + "smithy.api#documentation": "

      The CIDR block that Kubernetes pod and service IP addresses are assigned from if you\n created a 1.21 or later cluster with version 1.10.1 or later of the Amazon VPC CNI add-on and\n specified ipv6 for ipFamily when you\n created the cluster. Kubernetes assigns service addresses from the unique local address range\n (fc00::/7) because you can't specify a custom IPv6 CIDR block when you\n create the cluster.

      " } }, "ipFamily": { @@ -4792,7 +5244,7 @@ } }, "traits": { - "smithy.api#documentation": "

      The Kubernetes network configuration for the cluster. The response contains a value\n for serviceIpv6Cidr or serviceIpv4Cidr, but not both.

      " + "smithy.api#documentation": "

      The Kubernetes network configuration for the cluster. The response contains a value for\n serviceIpv6Cidr or serviceIpv4Cidr, but not both.

      " } }, "com.amazonaws.eks#LaunchTemplateSpecification": { @@ -4847,7 +5299,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Lists the available add-ons.

      ", + "smithy.api#documentation": "

      Lists the installed add-ons.

      ", "smithy.api#http": { "method": "GET", "uri": "/clusters/{clusterName}/addons", @@ -4906,7 +5358,7 @@ "addons": { "target": "com.amazonaws.eks#StringList", "traits": { - "smithy.api#documentation": "

      A list of available add-ons.

      " + "smithy.api#documentation": "

      A list of installed add-ons.

      " } }, "nextToken": { @@ -5024,6 +5476,95 @@ "smithy.api#output": {} } }, + "com.amazonaws.eks#ListEksAnywhereSubscriptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.eks#ListEksAnywhereSubscriptionsRequest" + }, + "output": { + "target": "com.amazonaws.eks#ListEksAnywhereSubscriptionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.eks#ClientException" + }, + { + "target": "com.amazonaws.eks#InvalidParameterException" + }, + { + "target": "com.amazonaws.eks#ServerException" + }, + { + "target": "com.amazonaws.eks#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

      Displays the full description of the subscription.

      ", + "smithy.api#http": { + "method": "GET", + "uri": "/eks-anywhere-subscriptions", + "code": 200 + } + } + }, + "com.amazonaws.eks#ListEksAnywhereSubscriptionsRequest": { + "type": "structure", + "members": { + "maxResults": { + "target": "com.amazonaws.eks#ListEksAnywhereSubscriptionsRequestMaxResults", + "traits": { + "smithy.api#documentation": "

      The maximum number of cluster results returned by ListEksAnywhereSubscriptions in\n paginated output. When you use this parameter, ListEksAnywhereSubscriptions returns only\n maxResults results in a single page along with a nextToken response element. You can see\n the remaining results of the initial request by sending another\n ListEksAnywhereSubscriptions request with the returned nextToken value. This value can\n be between 1 and 100. If you don't use this parameter, ListEksAnywhereSubscriptions\n returns up to 10 results and a nextToken value if applicable.

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

      The nextToken value to include in a future ListEksAnywhereSubscriptions request. When\n the results of a ListEksAnywhereSubscriptions request exceed maxResults, you can use\n this value to retrieve the next page of results. This value is null when there are no\n more results to return.

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

      An array of subscription statuses to filter on.

      ", + "smithy.api#httpQuery": "includeStatus" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.eks#ListEksAnywhereSubscriptionsRequestMaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.eks#ListEksAnywhereSubscriptionsResponse": { + "type": "structure", + "members": { + "subscriptions": { + "target": "com.amazonaws.eks#EksAnywhereSubscriptionList", + "traits": { + "smithy.api#documentation": "

      A list of all subscription objects in the region, filtered by includeStatus and\n paginated by nextToken and maxResults.

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

      The nextToken value to include in a future ListEksAnywhereSubscriptions request. When\n the results of a ListEksAnywhereSubscriptions request exceed maxResults, you can use\n this value to retrieve the next page of results. This value is null when there are no\n more results to return.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.eks#ListFargateProfiles": { "type": "operation", "input": { @@ -5691,7 +6232,7 @@ "taints": { "target": "com.amazonaws.eks#taintsList", "traits": { - "smithy.api#documentation": "

      The Kubernetes taints to be applied to the nodes in the node group when they are\n created. Effect is one of No_Schedule, Prefer_No_Schedule, or\n No_Execute. Kubernetes taints can be used together with tolerations to\n control how workloads are scheduled to your nodes. For more information, see Node taints on managed node groups.

      " + "smithy.api#documentation": "

      The Kubernetes taints to be applied to the nodes in the node group when they are created.\n Effect is one of No_Schedule, Prefer_No_Schedule, or\n No_Execute. Kubernetes taints can be used together with tolerations to\n control how workloads are scheduled to your nodes. For more information, see Node taints on managed node groups.

      " } }, "resources": { @@ -6310,7 +6851,7 @@ "keyArn": { "target": "com.amazonaws.eks#String", "traits": { - "smithy.api#documentation": "

      Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same\n region as the cluster, and if the KMS key was created in a different account, the user\n must have access to the KMS key. For more information, see Allowing\n Users in Other Accounts to Use a KMS key in the Key Management Service Developer Guide.

      " + "smithy.api#documentation": "

      Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be\n symmetric and created in the same Amazon Web Services Region as the cluster. If the\n KMS key was created in a different account, the IAM principal must\n have access to the KMS key. For more information, see Allowing\n users in other accounts to use a KMS key in the\n Key Management Service Developer Guide.

      " } } }, @@ -6353,7 +6894,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Connects a Kubernetes cluster to the Amazon EKS control plane.

      \n

      Any Kubernetes cluster can be connected to the Amazon EKS control plane to\n view current information about the cluster and its nodes.

      \n

      Cluster connection requires two steps. First, send a \n RegisterClusterRequest\n to add it to the Amazon EKS\n control plane.

      \n

      Second, a Manifest containing the activationID and\n activationCode must be applied to the Kubernetes cluster through it's\n native provider to provide visibility.

      \n

      After the Manifest is updated and applied, then the connected cluster is visible to\n the Amazon EKS control plane. If the Manifest is not applied within three days,\n then the connected cluster will no longer be visible and must be deregistered. See DeregisterCluster.

      ", + "smithy.api#documentation": "

      Connects a Kubernetes cluster to the Amazon EKS control plane.

      \n

      Any Kubernetes cluster can be connected to the Amazon EKS control plane to view\n current information about the cluster and its nodes.

      \n

      Cluster connection requires two steps. First, send a \n RegisterClusterRequest\n to add it to the Amazon EKS\n control plane.

      \n

      Second, a Manifest containing the activationID and\n activationCode must be applied to the Kubernetes cluster through it's native\n provider to provide visibility.

      \n

      After the Manifest is updated and applied, then the connected cluster is visible to\n the Amazon EKS control plane. If the Manifest is not applied within three days,\n then the connected cluster will no longer be visible and must be deregistered. See DeregisterCluster.

      ", "smithy.api#http": { "method": "POST", "uri": "/cluster-registrations", @@ -6493,6 +7034,12 @@ "smithy.api#documentation": "

      The Amazon EKS managed node group associated with the exception.

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

      The Amazon EKS subscription ID with the exception.

      " + } + }, "message": { "target": "com.amazonaws.eks#String" } @@ -6527,6 +7074,12 @@ "addonName": { "target": "com.amazonaws.eks#String" }, + "subscriptionId": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

      The Amazon EKS subscription ID with the exception.

      " + } + }, "message": { "target": "com.amazonaws.eks#String" } @@ -6577,6 +7130,12 @@ "addonName": { "target": "com.amazonaws.eks#String" }, + "subscriptionId": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

      The Amazon EKS subscription ID with the exception.

      " + } + }, "message": { "target": "com.amazonaws.eks#String" } @@ -7024,7 +7583,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Updates an Amazon EKS cluster configuration. Your cluster continues to\n function during the update. The response output includes an update ID that you can use\n to track the status of your cluster update with the DescribeUpdate API\n operation.

      \n

      You can use this API operation to enable or disable exporting the Kubernetes control\n plane logs for your cluster to CloudWatch Logs. By default, cluster control plane\n logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the\n \n Amazon EKS User Guide\n .

      \n \n

      CloudWatch Logs ingestion, archive storage, and data scanning rates apply to\n exported control plane logs. For more information, see CloudWatch\n Pricing.

      \n
      \n

      You can also use this API operation to enable or disable public and private access to\n your cluster's Kubernetes API server endpoint. By default, public access is enabled, and\n private access is disabled. For more information, see Amazon EKS cluster endpoint access control in the\n \n Amazon EKS User Guide\n .

      \n \n

      You can't update the subnets or security group IDs for an existing cluster.

      \n
      \n

      Cluster updates are asynchronous, and they should finish within a few minutes. During\n an update, the cluster status moves to UPDATING (this status transition is\n eventually consistent). When the update is complete (either Failed or\n Successful), the cluster status moves to Active.

      ", + "smithy.api#documentation": "

      Updates an Amazon EKS cluster configuration. Your cluster continues to\n function during the update. The response output includes an update ID that you can use\n to track the status of your cluster update with the DescribeUpdate API\n operation.

      \n

      You can use this API operation to enable or disable exporting the Kubernetes control plane\n logs for your cluster to CloudWatch Logs. By default, cluster control plane logs\n aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the\n \n Amazon EKS User Guide\n .

      \n \n

      CloudWatch Logs ingestion, archive storage, and data scanning rates apply to\n exported control plane logs. For more information, see CloudWatch\n Pricing.

      \n
      \n

      You can also use this API operation to enable or disable public and private access to\n your cluster's Kubernetes API server endpoint. By default, public access is enabled, and\n private access is disabled. For more information, see Amazon EKS cluster endpoint access control in the\n \n Amazon EKS User Guide\n .

      \n \n

      You can't update the subnets or security group IDs for an existing cluster.

      \n
      \n

      Cluster updates are asynchronous, and they should finish within a few minutes. During\n an update, the cluster status moves to UPDATING (this status transition is\n eventually consistent). When the update is complete (either Failed or\n Successful), the cluster status moves to Active.

      ", "smithy.api#http": { "method": "POST", "uri": "/clusters/{name}/update-config", @@ -7049,7 +7608,7 @@ "logging": { "target": "com.amazonaws.eks#Logging", "traits": { - "smithy.api#documentation": "

      Enable or disable exporting the Kubernetes control plane logs for your cluster to\n CloudWatch Logs. By default, cluster control plane logs aren't exported to\n CloudWatch Logs. For more information, see Amazon EKS cluster control plane logs in the\n \n Amazon EKS User Guide\n .

      \n \n

      CloudWatch Logs ingestion, archive storage, and data scanning rates apply to\n exported control plane logs. For more information, see CloudWatch\n Pricing.

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

      Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS cluster control plane logs in the\n \n Amazon EKS User Guide\n .

      \n \n

      CloudWatch Logs ingestion, archive storage, and data scanning rates apply to\n exported control plane logs. For more information, see CloudWatch\n Pricing.

      \n
      " } }, "clientRequestToken": { @@ -7104,7 +7663,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Updates an Amazon EKS cluster to the specified Kubernetes version. Your\n cluster continues to function during the update. The response output includes an update\n ID that you can use to track the status of your cluster update with the DescribeUpdate API operation.

      \n

      Cluster updates are asynchronous, and they should finish within a few minutes. During\n an update, the cluster status moves to UPDATING (this status transition is\n eventually consistent). When the update is complete (either Failed or\n Successful), the cluster status moves to Active.

      \n

      If your cluster has managed node groups attached to it, all of your node groups’\n Kubernetes versions must match the cluster’s Kubernetes version in order to update the\n cluster to a new Kubernetes version.

      ", + "smithy.api#documentation": "

      Updates an Amazon EKS cluster to the specified Kubernetes version. Your cluster\n continues to function during the update. The response output includes an update ID that\n you can use to track the status of your cluster update with the DescribeUpdate API operation.

      \n

      Cluster updates are asynchronous, and they should finish within a few minutes. During\n an update, the cluster status moves to UPDATING (this status transition is\n eventually consistent). When the update is complete (either Failed or\n Successful), the cluster status moves to Active.

      \n

      If your cluster has managed node groups attached to it, all of your node groups’ Kubernetes\n versions must match the cluster’s Kubernetes version in order to update the cluster to a new\n Kubernetes version.

      ", "smithy.api#http": { "method": "POST", "uri": "/clusters/{name}/updates", @@ -7156,6 +7715,85 @@ "smithy.api#output": {} } }, + "com.amazonaws.eks#UpdateEksAnywhereSubscription": { + "type": "operation", + "input": { + "target": "com.amazonaws.eks#UpdateEksAnywhereSubscriptionRequest" + }, + "output": { + "target": "com.amazonaws.eks#UpdateEksAnywhereSubscriptionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.eks#ClientException" + }, + { + "target": "com.amazonaws.eks#InvalidParameterException" + }, + { + "target": "com.amazonaws.eks#InvalidRequestException" + }, + { + "target": "com.amazonaws.eks#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.eks#ServerException" + } + ], + "traits": { + "smithy.api#documentation": "

      Update an EKS Anywhere Subscription. Only auto renewal and tags can be updated after\n subscription creation.

      ", + "smithy.api#http": { + "method": "POST", + "uri": "/eks-anywhere-subscriptions/{id}", + "code": 200 + } + } + }, + "com.amazonaws.eks#UpdateEksAnywhereSubscriptionRequest": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.eks#String", + "traits": { + "smithy.api#documentation": "

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

      A boolean indicating whether or not to automatically renew the subscription.

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

      Unique, case-sensitive identifier to ensure the idempotency of the request.

      ", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.eks#UpdateEksAnywhereSubscriptionResponse": { + "type": "structure", + "members": { + "subscription": { + "target": "com.amazonaws.eks#EksAnywhereSubscription", + "traits": { + "smithy.api#documentation": "

      The full description of the updated subscription.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.eks#UpdateLabelsPayload": { "type": "structure", "members": { @@ -7205,7 +7843,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Updates an Amazon EKS managed node group configuration. Your node group\n continues to function during the update. The response output includes an update ID that\n you can use to track the status of your node group update with the DescribeUpdate API operation. Currently you can update the Kubernetes\n labels for a node group or the scaling configuration.

      ", + "smithy.api#documentation": "

      Updates an Amazon EKS managed node group configuration. Your node group\n continues to function during the update. The response output includes an update ID that\n you can use to track the status of your node group update with the DescribeUpdate API operation. Currently you can update the Kubernetes labels\n for a node group or the scaling configuration.

      ", "smithy.api#http": { "method": "POST", "uri": "/clusters/{clusterName}/node-groups/{nodegroupName}/update-config", @@ -7235,13 +7873,13 @@ "labels": { "target": "com.amazonaws.eks#UpdateLabelsPayload", "traits": { - "smithy.api#documentation": "

      The Kubernetes labels to be applied to the nodes in the node group after the\n update.

      " + "smithy.api#documentation": "

      The Kubernetes labels to be applied to the nodes in the node group after the update.

      " } }, "taints": { "target": "com.amazonaws.eks#UpdateTaintsPayload", "traits": { - "smithy.api#documentation": "

      The Kubernetes taints to be applied to the nodes in the node group after the update.\n For more information, see Node taints on\n managed node groups.

      " + "smithy.api#documentation": "

      The Kubernetes taints to be applied to the nodes in the node group after the update. For\n more information, see Node taints on\n managed node groups.

      " } }, "scalingConfig": { @@ -7308,7 +7946,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Updates the Kubernetes version or AMI version of an Amazon EKS managed node\n group.

      \n

      You can update a node group using a launch template only if the node group was\n originally deployed with a launch template. If you need to update a custom AMI in a node\n group that was deployed with a launch template, then update your custom AMI, specify the\n new ID in a new version of the launch template, and then update the node group to the\n new version of the launch template.

      \n

      If you update without a launch template, then you can update to the latest available\n AMI version of a node group's current Kubernetes version by not specifying a Kubernetes version in\n the request. You can update to the latest AMI version of your cluster's current Kubernetes\n version by specifying your cluster's Kubernetes version in the request. For information about\n Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the\n Amazon EKS User Guide. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the\n Amazon EKS User Guide.

      \n

      You cannot roll back a node group to an earlier Kubernetes version or AMI\n version.

      \n

      When a node in a managed node group is terminated due to a scaling action or update,\n the pods in that node are drained first. Amazon EKS attempts to drain the nodes\n gracefully and will fail if it is unable to do so. You can force the update\n if Amazon EKS is unable to drain the nodes as a result of a pod disruption\n budget issue.

      ", + "smithy.api#documentation": "

      Updates the Kubernetes version or AMI version of an Amazon EKS managed node\n group.

      \n

      You can update a node group using a launch template only if the node group was\n originally deployed with a launch template. If you need to update a custom AMI in a node\n group that was deployed with a launch template, then update your custom AMI, specify the\n new ID in a new version of the launch template, and then update the node group to the\n new version of the launch template.

      \n

      If you update without a launch template, then you can update to the latest available\n AMI version of a node group's current Kubernetes version by not specifying a Kubernetes version in\n the request. You can update to the latest AMI version of your cluster's current Kubernetes\n version by specifying your cluster's Kubernetes version in the request. For information about\n Linux versions, see Amazon EKS optimized Amazon Linux AMI versions in the\n Amazon EKS User Guide. For information about Windows versions, see Amazon EKS optimized Windows AMI versions in the\n Amazon EKS User Guide.

      \n

      You cannot roll back a node group to an earlier Kubernetes version or AMI version.

      \n

      When a node in a managed node group is terminated due to a scaling action or update,\n the pods in that node are drained first. Amazon EKS attempts to drain the nodes\n gracefully and will fail if it is unable to do so. You can force the update\n if Amazon EKS is unable to drain the nodes as a result of a pod disruption\n budget issue.

      ", "smithy.api#http": { "method": "POST", "uri": "/clusters/{clusterName}/node-groups/{nodegroupName}/update-version", @@ -7338,7 +7976,7 @@ "version": { "target": "com.amazonaws.eks#String", "traits": { - "smithy.api#documentation": "

      The Kubernetes version to update to. If no version is specified, then the Kubernetes\n version of the node group does not change. You can specify the Kubernetes version of the\n cluster to update the node group to the latest AMI version of the cluster's Kubernetes\n version. If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify \n version, or the node group update will fail.\n For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      " + "smithy.api#documentation": "

      The Kubernetes version to update to. If no version is specified, then the Kubernetes version of\n the node group does not change. You can specify the Kubernetes version of the cluster to\n update the node group to the latest AMI version of the cluster's Kubernetes version.\n If you specify launchTemplate, and your launch template uses a custom AMI, then don't specify version,\n or the node group update will fail. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

      " } }, "releaseVersion": { @@ -7696,13 +8334,13 @@ "endpointPublicAccess": { "target": "com.amazonaws.eks#BoxedBoolean", "traits": { - "smithy.api#documentation": "

      Set this value to false to disable public access to your cluster's\n Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes\n API server can only receive requests from within the cluster VPC. The default value for\n this parameter is true, which enables public access for your Kubernetes API\n server. For more information, see Amazon EKS cluster endpoint access control in the\n \n Amazon EKS User Guide\n .

      " + "smithy.api#documentation": "

      Set this value to false to disable public access to your cluster's Kubernetes\n API server endpoint. If you disable public access, your cluster's Kubernetes API server can\n only receive requests from within the cluster VPC. The default value for this parameter\n is true, which enables public access for your Kubernetes API server. For more\n information, see Amazon EKS cluster endpoint access control in\n the \n Amazon EKS User Guide\n .

      " } }, "endpointPrivateAccess": { "target": "com.amazonaws.eks#BoxedBoolean", "traits": { - "smithy.api#documentation": "

      Set this value to true to enable private access for your cluster's\n Kubernetes API server endpoint. If you enable private access, Kubernetes API requests\n from within your cluster's VPC use the private VPC endpoint. The default value for this\n parameter is false, which disables private access for your Kubernetes API\n server. If you disable private access and you have nodes or Fargate\n pods in the cluster, then ensure that publicAccessCidrs includes the\n necessary CIDR blocks for communication with the nodes or Fargate pods.\n For more information, see Amazon EKS cluster endpoint access control in\n the \n Amazon EKS User Guide\n .

      " + "smithy.api#documentation": "

      Set this value to true to enable private access for your cluster's Kubernetes\n API server endpoint. If you enable private access, Kubernetes API requests from within your\n cluster's VPC use the private VPC endpoint. The default value for this parameter is\n false, which disables private access for your Kubernetes API server. If you\n disable private access and you have nodes or Fargate pods in the\n cluster, then ensure that publicAccessCidrs includes the necessary CIDR\n blocks for communication with the nodes or Fargate pods. For more\n information, see Amazon EKS cluster endpoint access control in\n the \n Amazon EKS User Guide\n .

      " } }, "publicAccessCidrs": { @@ -7728,7 +8366,7 @@ "securityGroupIds": { "target": "com.amazonaws.eks#StringList", "traits": { - "smithy.api#documentation": "

      The security groups associated with the cross-account elastic network interfaces that\n are used to allow communication between your nodes and the Kubernetes control\n plane.

      " + "smithy.api#documentation": "

      The security groups associated with the cross-account elastic network interfaces that\n are used to allow communication between your nodes and the Kubernetes control plane.

      " } }, "clusterSecurityGroupId": { @@ -7754,7 +8392,7 @@ "target": "com.amazonaws.eks#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

      This parameter indicates whether the Amazon EKS private API server endpoint is\n enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes\n API requests that originate from within your cluster's VPC use the private VPC endpoint\n instead of traversing the internet. If this value is disabled and you have nodes or\n Fargate pods in the cluster, then ensure that\n publicAccessCidrs includes the necessary CIDR blocks for communication\n with the nodes or Fargate pods. For more information, see Amazon EKS cluster endpoint access control in the\n \n Amazon EKS User Guide\n .

      " + "smithy.api#documentation": "

      This parameter indicates whether the Amazon EKS private API server endpoint is\n enabled. If the Amazon EKS private API server endpoint is enabled, Kubernetes API\n requests that originate from within your cluster's VPC use the private VPC endpoint\n instead of traversing the internet. If this value is disabled and you have nodes or\n Fargate pods in the cluster, then ensure that\n publicAccessCidrs includes the necessary CIDR blocks for communication\n with the nodes or Fargate pods. For more information, see Amazon EKS cluster endpoint access control in the\n \n Amazon EKS User Guide\n .

      " } }, "publicAccessCidrs": {