Skip to content

Commit 143d899

Browse files
This release adds the capability for users to specify an optional Execution IAM policy in the StartJobRun action. The resulting permissions assumed by the job run is the intersection of the permissions in the Execution Role and the specified Execution IAM Policy.
1 parent 85ad5df commit 143d899

File tree

8 files changed

+321
-44
lines changed

8 files changed

+321
-44
lines changed

generator/ServiceModels/emr-serverless/emr-serverless-2021-07-13.api.json

Lines changed: 48 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
"output":{"shape":"CancelJobRunResponse"},
2525
"errors":[
2626
{"shape":"ValidationException"},
27-
{"shape":"ResourceNotFoundException"},
28-
{"shape":"InternalServerException"}
27+
{"shape":"InternalServerException"},
28+
{"shape":"ResourceNotFoundException"}
2929
],
3030
"idempotent":true
3131
},
@@ -40,8 +40,8 @@
4040
"output":{"shape":"CreateApplicationResponse"},
4141
"errors":[
4242
{"shape":"ValidationException"},
43-
{"shape":"ResourceNotFoundException"},
4443
{"shape":"InternalServerException"},
44+
{"shape":"ResourceNotFoundException"},
4545
{"shape":"ConflictException"}
4646
],
4747
"idempotent":true
@@ -57,8 +57,8 @@
5757
"output":{"shape":"DeleteApplicationResponse"},
5858
"errors":[
5959
{"shape":"ValidationException"},
60-
{"shape":"ResourceNotFoundException"},
61-
{"shape":"InternalServerException"}
60+
{"shape":"InternalServerException"},
61+
{"shape":"ResourceNotFoundException"}
6262
],
6363
"idempotent":true
6464
},
@@ -73,8 +73,8 @@
7373
"output":{"shape":"GetApplicationResponse"},
7474
"errors":[
7575
{"shape":"ValidationException"},
76-
{"shape":"ResourceNotFoundException"},
77-
{"shape":"InternalServerException"}
76+
{"shape":"InternalServerException"},
77+
{"shape":"ResourceNotFoundException"}
7878
]
7979
},
8080
"GetDashboardForJobRun":{
@@ -103,8 +103,8 @@
103103
"output":{"shape":"GetJobRunResponse"},
104104
"errors":[
105105
{"shape":"ValidationException"},
106-
{"shape":"ResourceNotFoundException"},
107-
{"shape":"InternalServerException"}
106+
{"shape":"InternalServerException"},
107+
{"shape":"ResourceNotFoundException"}
108108
]
109109
},
110110
"ListApplications":{
@@ -132,8 +132,8 @@
132132
"output":{"shape":"ListJobRunAttemptsResponse"},
133133
"errors":[
134134
{"shape":"ValidationException"},
135-
{"shape":"ResourceNotFoundException"},
136-
{"shape":"InternalServerException"}
135+
{"shape":"InternalServerException"},
136+
{"shape":"ResourceNotFoundException"}
137137
]
138138
},
139139
"ListJobRuns":{
@@ -161,8 +161,8 @@
161161
"output":{"shape":"ListTagsForResourceResponse"},
162162
"errors":[
163163
{"shape":"ValidationException"},
164-
{"shape":"ResourceNotFoundException"},
165-
{"shape":"InternalServerException"}
164+
{"shape":"InternalServerException"},
165+
{"shape":"ResourceNotFoundException"}
166166
]
167167
},
168168
"StartApplication":{
@@ -176,8 +176,8 @@
176176
"output":{"shape":"StartApplicationResponse"},
177177
"errors":[
178178
{"shape":"ValidationException"},
179-
{"shape":"ResourceNotFoundException"},
180179
{"shape":"InternalServerException"},
180+
{"shape":"ResourceNotFoundException"},
181181
{"shape":"ServiceQuotaExceededException"}
182182
],
183183
"idempotent":true
@@ -210,8 +210,8 @@
210210
"output":{"shape":"StopApplicationResponse"},
211211
"errors":[
212212
{"shape":"ValidationException"},
213-
{"shape":"ResourceNotFoundException"},
214-
{"shape":"InternalServerException"}
213+
{"shape":"InternalServerException"},
214+
{"shape":"ResourceNotFoundException"}
215215
],
216216
"idempotent":true
217217
},
@@ -226,8 +226,8 @@
226226
"output":{"shape":"TagResourceResponse"},
227227
"errors":[
228228
{"shape":"ValidationException"},
229-
{"shape":"ResourceNotFoundException"},
230-
{"shape":"InternalServerException"}
229+
{"shape":"InternalServerException"},
230+
{"shape":"ResourceNotFoundException"}
231231
]
232232
},
233233
"UntagResource":{
@@ -241,8 +241,8 @@
241241
"output":{"shape":"UntagResourceResponse"},
242242
"errors":[
243243
{"shape":"ValidationException"},
244-
{"shape":"ResourceNotFoundException"},
245-
{"shape":"InternalServerException"}
244+
{"shape":"InternalServerException"},
245+
{"shape":"ResourceNotFoundException"}
246246
],
247247
"idempotent":true
248248
},
@@ -257,8 +257,8 @@
257257
"output":{"shape":"UpdateApplicationResponse"},
258258
"errors":[
259259
{"shape":"ValidationException"},
260-
{"shape":"ResourceNotFoundException"},
261-
{"shape":"InternalServerException"}
260+
{"shape":"InternalServerException"},
261+
{"shape":"ResourceNotFoundException"}
262262
]
263263
}
264264
},
@@ -370,6 +370,12 @@
370370
"X86_64"
371371
]
372372
},
373+
"Arn":{
374+
"type":"string",
375+
"max":2048,
376+
"min":20,
377+
"pattern":"([ -~… -퟿-�က0-ჿFF]+)"
378+
},
373379
"AttemptNumber":{
374380
"type":"integer",
375381
"box":true,
@@ -876,6 +882,13 @@
876882
"type":"list",
877883
"member":{"shape":"JobRunAttemptSummary"}
878884
},
885+
"JobRunExecutionIamPolicy":{
886+
"type":"structure",
887+
"members":{
888+
"policy":{"shape":"PolicyDocument"},
889+
"policyArns":{"shape":"PolicyArnList"}
890+
}
891+
},
879892
"JobRunId":{
880893
"type":"string",
881894
"max":64,
@@ -1178,6 +1191,18 @@
11781191
"min":1,
11791192
"pattern":"[A-Za-z0-9_=-]+"
11801193
},
1194+
"PolicyArnList":{
1195+
"type":"list",
1196+
"member":{"shape":"Arn"},
1197+
"max":10,
1198+
"min":0
1199+
},
1200+
"PolicyDocument":{
1201+
"type":"string",
1202+
"max":2048,
1203+
"min":1,
1204+
"pattern":"([ -ÿ]+)"
1205+
},
11811206
"PrometheusMonitoringConfiguration":{
11821207
"type":"structure",
11831208
"members":{
@@ -1343,6 +1368,7 @@
13431368
"idempotencyToken":true
13441369
},
13451370
"executionRoleArn":{"shape":"IAMRoleArn"},
1371+
"executionIamPolicy":{"shape":"JobRunExecutionIamPolicy"},
13461372
"jobDriver":{"shape":"JobDriver"},
13471373
"configurationOverrides":{"shape":"ConfigurationOverrides"},
13481374
"tags":{"shape":"TagMap"},

generator/ServiceModels/emr-serverless/emr-serverless-2021-07-13.docs.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@
103103
"UpdateApplicationRequest$architecture": "<p>The CPU architecture of an application.</p>"
104104
}
105105
},
106+
"Arn": {
107+
"base": null,
108+
"refs": {
109+
"PolicyArnList$member": null
110+
}
111+
},
106112
"AttemptNumber": {
107113
"base": null,
108114
"refs": {
@@ -482,6 +488,12 @@
482488
"ListJobRunAttemptsResponse$jobRunAttempts": "<p>The array of the listed job run attempt objects.</p>"
483489
}
484490
},
491+
"JobRunExecutionIamPolicy": {
492+
"base": "<p>Optional IAM policy. The resulting job IAM role permissions will be an intersection of the policies passed and the policy associated with your job execution role.</p>",
493+
"refs": {
494+
"StartJobRunRequest$executionIamPolicy": "<p>You can pass an optional IAM policy. The resulting job IAM role permissions will be an intersection of this policy and the policy associated with your job execution role.</p>"
495+
}
496+
},
485497
"JobRunId": {
486498
"base": null,
487499
"refs": {
@@ -684,6 +696,18 @@
684696
"ListJobRunsResponse$nextToken": "<p>The output displays the token for the next set of job run results. This is required for pagination and is available as a response of the previous request.</p>"
685697
}
686698
},
699+
"PolicyArnList": {
700+
"base": null,
701+
"refs": {
702+
"JobRunExecutionIamPolicy$policyArns": "<p>A list of Amazon Resource Names (ARNs) to use as an execution IAM policy.</p>"
703+
}
704+
},
705+
"PolicyDocument": {
706+
"base": null,
707+
"refs": {
708+
"JobRunExecutionIamPolicy$policy": "<p>An IAM inline policy to use as an execution IAM policy.</p>"
709+
}
710+
},
687711
"PrometheusMonitoringConfiguration": {
688712
"base": "<p>The monitoring configuration object you can configure to send metrics to Amazon Managed Service for Prometheus for a job run.</p>",
689713
"refs": {

0 commit comments

Comments
 (0)