Skip to content

Commit 36c6750

Browse files
author
awstools
committed
feat(client-emr-containers): This release adds support for integration with EKS AccessEntry APIs to enable automatic Cluster Access for EMR on EKS.
1 parent 379b756 commit 36c6750

File tree

9 files changed

+89
-5
lines changed

9 files changed

+89
-5
lines changed

clients/client-emr-containers/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ AWS SDK for JavaScript EMRContainers Client for Node.js, Browser and React Nativ
1010
you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS).
1111
With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications.
1212
For more information about Amazon EMR on EKS concepts and tasks, see <a href="https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html">What is
13-
shared id="EMR-EKS"/></a>.</p>
13+
Amazon EMR on EKS</a>.</p>
1414
<p>
1515
<i>Amazon EMR containers</i> is the API name for Amazon EMR on EKS. The <code>emr-containers</code> prefix is used in the following
1616
scenarios: </p>

clients/client-emr-containers/src/EMRContainers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ export interface EMRContainers {
431431
* you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS).
432432
* With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications.
433433
* For more information about Amazon EMR on EKS concepts and tasks, see <a href="https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html">What is
434-
* shared id="EMR-EKS"/></a>.</p>
434+
* Amazon EMR on EKS</a>.</p>
435435
* <p>
436436
* <i>Amazon EMR containers</i> is the API name for Amazon EMR on EKS. The <code>emr-containers</code> prefix is used in the following
437437
* scenarios: </p>

clients/client-emr-containers/src/EMRContainersClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ export interface EMRContainersClientResolvedConfig extends EMRContainersClientRe
343343
* you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS).
344344
* With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications.
345345
* For more information about Amazon EMR on EKS concepts and tasks, see <a href="https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html">What is
346-
* shared id="EMR-EKS"/></a>.</p>
346+
* Amazon EMR on EKS</a>.</p>
347347
* <p>
348348
* <i>Amazon EMR containers</i> is the API name for Amazon EMR on EKS. The <code>emr-containers</code> prefix is used in the following
349349
* scenarios: </p>

clients/client-emr-containers/src/commands/CreateVirtualClusterCommand.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ export interface CreateVirtualClusterCommandOutput extends CreateVirtualClusterR
6969
* @see {@link CreateVirtualClusterCommandOutput} for command's `response` shape.
7070
* @see {@link EMRContainersClientResolvedConfig | config} for EMRContainersClient's `config` shape.
7171
*
72+
* @throws {@link EKSRequestThrottledException} (client fault)
73+
* <p>The request exceeded the Amazon EKS API operation limits.</p>
74+
*
7275
* @throws {@link InternalServerException} (server fault)
7376
* <p>This is an internal server exception.</p>
7477
*

clients/client-emr-containers/src/commands/ListVirtualClustersCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export interface ListVirtualClustersCommandOutput extends ListVirtualClustersRes
4949
* ],
5050
* maxResults: Number("int"),
5151
* nextToken: "STRING_VALUE",
52+
* eksAccessEntryIntegrated: true || false,
5253
* };
5354
* const command = new ListVirtualClustersCommand(input);
5455
* const response = await client.send(command);

clients/client-emr-containers/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS).
66
* With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications.
77
* For more information about Amazon EMR on EKS concepts and tasks, see <a href="https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html">What is
8-
* shared id="EMR-EKS"/></a>.</p>
8+
* Amazon EMR on EKS</a>.</p>
99
* <p>
1010
* <i>Amazon EMR containers</i> is the API name for Amazon EMR on EKS. The <code>emr-containers</code> prefix is used in the following
1111
* scenarios: </p>

clients/client-emr-containers/src/models/models_0.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,26 @@ export interface CreateVirtualClusterResponse {
541541
arn?: string;
542542
}
543543

544+
/**
545+
* <p>The request exceeded the Amazon EKS API operation limits.</p>
546+
* @public
547+
*/
548+
export class EKSRequestThrottledException extends __BaseException {
549+
readonly name: "EKSRequestThrottledException" = "EKSRequestThrottledException";
550+
readonly $fault: "client" = "client";
551+
/**
552+
* @internal
553+
*/
554+
constructor(opts: __ExceptionOptionType<EKSRequestThrottledException, __BaseException>) {
555+
super({
556+
name: "EKSRequestThrottledException",
557+
$fault: "client",
558+
...opts,
559+
});
560+
Object.setPrototypeOf(this, EKSRequestThrottledException.prototype);
561+
}
562+
}
563+
544564
/**
545565
* @public
546566
*/
@@ -1170,6 +1190,14 @@ export interface ListVirtualClustersRequest {
11701190
* @public
11711191
*/
11721192
nextToken?: string;
1193+
1194+
/**
1195+
* <p>Optional Boolean that specifies whether the operation should return the
1196+
* virtual clusters that have the access entry integration enabled or disabled. If not specified,
1197+
* the operation returns all applicable virtual clusters.</p>
1198+
* @public
1199+
*/
1200+
eksAccessEntryIntegrated?: boolean;
11731201
}
11741202

11751203
/**

clients/client-emr-containers/src/protocols/Aws_restJson1.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ import {
9090
ContainerLogRotationConfiguration,
9191
ContainerProvider,
9292
EksInfo,
93+
EKSRequestThrottledException,
9394
Endpoint,
9495
InternalServerException,
9596
JobDriver,
@@ -456,6 +457,7 @@ export const se_ListVirtualClustersCommand = async (
456457
[_s]: [() => input.states !== void 0, () => (input[_s]! || []).map((_entry) => _entry as any)],
457458
[_mR]: [() => input.maxResults !== void 0, () => input[_mR]!.toString()],
458459
[_nT]: [, input[_nT]!],
460+
[_eAEI]: [() => input.eksAccessEntryIntegrated !== void 0, () => input[_eAEI]!.toString()],
459461
});
460462
let body: any;
461463
b.m("GET").h(headers).q(query).b(body);
@@ -989,6 +991,9 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext):
989991
case "ResourceNotFoundException":
990992
case "com.amazonaws.emrcontainers#ResourceNotFoundException":
991993
throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
994+
case "EKSRequestThrottledException":
995+
case "com.amazonaws.emrcontainers#EKSRequestThrottledException":
996+
throw await de_EKSRequestThrottledExceptionRes(parsedOutput, context);
992997
case "RequestThrottledException":
993998
case "com.amazonaws.emrcontainers#RequestThrottledException":
994999
throw await de_RequestThrottledExceptionRes(parsedOutput, context);
@@ -1003,6 +1008,26 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext):
10031008
};
10041009

10051010
const throwDefaultError = withBaseException(__BaseException);
1011+
/**
1012+
* deserializeAws_restJson1EKSRequestThrottledExceptionRes
1013+
*/
1014+
const de_EKSRequestThrottledExceptionRes = async (
1015+
parsedOutput: any,
1016+
context: __SerdeContext
1017+
): Promise<EKSRequestThrottledException> => {
1018+
const contents: any = map({});
1019+
const data: any = parsedOutput.body;
1020+
const doc = take(data, {
1021+
message: __expectString,
1022+
});
1023+
Object.assign(contents, doc);
1024+
const exception = new EKSRequestThrottledException({
1025+
$metadata: deserializeMetadata(parsedOutput),
1026+
...contents,
1027+
});
1028+
return __decorateServiceException(exception, parsedOutput.body);
1029+
};
1030+
10061031
/**
10071032
* deserializeAws_restJson1InternalServerExceptionRes
10081033
*/
@@ -1437,6 +1462,7 @@ const _cA = "createdAfter";
14371462
const _cB = "createdBefore";
14381463
const _cPI = "containerProviderId";
14391464
const _cPT = "containerProviderType";
1465+
const _eAEI = "eksAccessEntryIntegrated";
14401466
const _mR = "maxResults";
14411467
const _n = "name";
14421468
const _nT = "nextToken";

codegen/sdk-codegen/aws-models/emr-containers.json

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116
"name": "emr-containers"
117117
},
118118
"aws.protocols#restJson1": {},
119-
"smithy.api#documentation": "<p>Amazon EMR on EKS provides a deployment option for Amazon EMR that allows\n you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS).\n With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications.\n For more information about Amazon EMR on EKS concepts and tasks, see <a href=\"https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html\">What is\n shared id=\"EMR-EKS\"/></a>.</p>\n <p>\n <i>Amazon EMR containers</i> is the API name for Amazon EMR on EKS. The <code>emr-containers</code> prefix is used in the following\n scenarios: </p>\n <ul>\n <li>\n <p>It is the prefix in the CLI commands for Amazon EMR on EKS. For example,\n <code>aws emr-containers start-job-run</code>.</p>\n </li>\n <li>\n <p>It is the prefix before IAM policy actions for Amazon EMR on EKS. For\n example, <code>\"Action\": [ \"emr-containers:StartJobRun\"]</code>. For more\n information, see <a href=\"https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-actions\">Policy actions for Amazon EMR on EKS</a>.</p>\n </li>\n <li>\n <p>It is the prefix used in Amazon EMR on EKS service endpoints. For example,\n <code>emr-containers.us-east-2.amazonaws.com</code>. For more information, see\n <a href=\"https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/service-quotas.html#service-endpoints\">Amazon EMR on EKSService Endpoints</a>.</p>\n </li>\n </ul>",
119+
"smithy.api#documentation": "<p>Amazon EMR on EKS provides a deployment option for Amazon EMR that allows\n you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS).\n With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications.\n For more information about Amazon EMR on EKS concepts and tasks, see <a href=\"https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html\">What is\n Amazon EMR on EKS</a>.</p>\n <p>\n <i>Amazon EMR containers</i> is the API name for Amazon EMR on EKS. The <code>emr-containers</code> prefix is used in the following\n scenarios: </p>\n <ul>\n <li>\n <p>It is the prefix in the CLI commands for Amazon EMR on EKS. For example,\n <code>aws emr-containers start-job-run</code>.</p>\n </li>\n <li>\n <p>It is the prefix before IAM policy actions for Amazon EMR on EKS. For\n example, <code>\"Action\": [ \"emr-containers:StartJobRun\"]</code>. For more\n information, see <a href=\"https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-actions\">Policy actions for Amazon EMR on EKS</a>.</p>\n </li>\n <li>\n <p>It is the prefix used in Amazon EMR on EKS service endpoints. For example,\n <code>emr-containers.us-east-2.amazonaws.com</code>. For more information, see\n <a href=\"https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/service-quotas.html#service-endpoints\">Amazon EMR on EKSService Endpoints</a>.</p>\n </li>\n </ul>",
120120
"smithy.api#title": "Amazon EMR Containers",
121121
"smithy.rules#endpointRuleSet": {
122122
"version": "1.0",
@@ -1018,6 +1018,9 @@
10181018
"smithy.api#pattern": "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$"
10191019
}
10201020
},
1021+
"com.amazonaws.emrcontainers#Boolean": {
1022+
"type": "boolean"
1023+
},
10211024
"com.amazonaws.emrcontainers#CancelJobRun": {
10221025
"type": "operation",
10231026
"input": {
@@ -1526,6 +1529,9 @@
15261529
"target": "com.amazonaws.emrcontainers#CreateVirtualClusterResponse"
15271530
},
15281531
"errors": [
1532+
{
1533+
"target": "com.amazonaws.emrcontainers#EKSRequestThrottledException"
1534+
},
15291535
{
15301536
"target": "com.amazonaws.emrcontainers#InternalServerException"
15311537
},
@@ -2064,6 +2070,19 @@
20642070
"smithy.api#output": {}
20652071
}
20662072
},
2073+
"com.amazonaws.emrcontainers#EKSRequestThrottledException": {
2074+
"type": "structure",
2075+
"members": {
2076+
"message": {
2077+
"target": "com.amazonaws.emrcontainers#String1024"
2078+
}
2079+
},
2080+
"traits": {
2081+
"smithy.api#documentation": "<p>The request exceeded the Amazon EKS API operation limits.</p>",
2082+
"smithy.api#error": "client",
2083+
"smithy.api#httpError": 429
2084+
}
2085+
},
20672086
"com.amazonaws.emrcontainers#EksInfo": {
20682087
"type": "structure",
20692088
"members": {
@@ -3280,6 +3299,13 @@
32803299
"smithy.api#documentation": "<p>The token for the next set of virtual clusters to return. </p>",
32813300
"smithy.api#httpQuery": "nextToken"
32823301
}
3302+
},
3303+
"eksAccessEntryIntegrated": {
3304+
"target": "com.amazonaws.emrcontainers#Boolean",
3305+
"traits": {
3306+
"smithy.api#documentation": "<p>Optional Boolean that specifies whether the operation should return the \n virtual clusters that have the access entry integration enabled or disabled. If not specified,\n the operation returns all applicable virtual clusters.</p>",
3307+
"smithy.api#httpQuery": "eksAccessEntryIntegrated"
3308+
}
32833309
}
32843310
},
32853311
"traits": {

0 commit comments

Comments
 (0)