aws-sdk-core 2.0.18 → 2.0.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/apis/CloudFormation.resources.json +55 -20
  3. data/apis/CloudFront.waiters.json +35 -17
  4. data/apis/DynamoDB.waiters.json +27 -17
  5. data/apis/EC2.api.json +5 -0
  6. data/apis/EC2.resources.json +449 -319
  7. data/apis/EC2.waiters.json +389 -139
  8. data/apis/{EMR.waiters2.json → EMR.waiters.json} +0 -0
  9. data/apis/ElasticTranscoder.api.json +34 -3
  10. data/apis/ElasticTranscoder.waiters.json +22 -8
  11. data/apis/Glacier.resources.json +215 -117
  12. data/apis/Glacier.waiters.json +31 -15
  13. data/apis/IAM.resources.json +380 -169
  14. data/apis/{Kinesis.waiters2.json → Kinesis.waiters.json} +0 -0
  15. data/apis/OpsWorks.resources.json +51 -17
  16. data/apis/RDS.waiters.json +87 -26
  17. data/apis/Redshift.waiters.json +54 -29
  18. data/apis/S3.resources.json +404 -143
  19. data/apis/S3.waiters.json +47 -16
  20. data/apis/SES.waiters.json +11 -7
  21. data/apis/SNS.resources.json +67 -33
  22. data/apis/SQS.resources.json +57 -30
  23. data/lib/aws-sdk-core.rb +1 -0
  24. data/lib/aws-sdk-core/api/documenter.rb +4 -3
  25. data/lib/aws-sdk-core/api/service_customizations.rb +0 -6
  26. data/lib/aws-sdk-core/client_waiters.rb +65 -50
  27. data/lib/aws-sdk-core/emr.rb +1 -0
  28. data/lib/aws-sdk-core/errors.rb +4 -0
  29. data/lib/aws-sdk-core/instance_profile_credentials.rb +1 -0
  30. data/lib/aws-sdk-core/kinesis.rb +1 -0
  31. data/lib/aws-sdk-core/paging/pager.rb +5 -1
  32. data/lib/aws-sdk-core/refreshing_credentials.rb +2 -0
  33. data/lib/aws-sdk-core/version.rb +1 -1
  34. data/lib/aws-sdk-core/waiters/errors.rb +50 -12
  35. data/lib/aws-sdk-core/waiters/poller.rb +105 -0
  36. data/lib/aws-sdk-core/waiters/provider.rb +11 -30
  37. data/lib/aws-sdk-core/waiters/waiter.rb +42 -102
  38. metadata +5 -12
  39. data/apis/CloudFront.waiters2.json +0 -47
  40. data/apis/DynamoDB.waiters2.json +0 -35
  41. data/apis/EC2.waiters2.json +0 -341
  42. data/apis/ElasticTranscoder.waiters2.json +0 -30
  43. data/apis/RDS.waiters2.json +0 -97
  44. data/apis/Redshift.waiters2.json +0 -97
  45. data/apis/S3.waiters2.json +0 -63
  46. data/apis/SES.waiters2.json +0 -18
@@ -1,23 +1,39 @@
1
1
  {
2
+ "version": 2,
2
3
  "waiters": {
3
- "__default__": {
4
- "interval": 3,
5
- "max_attempts": 15
6
- },
7
- "__VaultState": {
8
- "operation": "DescribeVault"
9
- },
10
4
  "VaultExists": {
11
- "extends": "__VaultState",
12
- "ignore_errors": [
13
- "ResourceNotFoundException"
14
- ],
15
- "success_type": "output"
5
+ "operation": "DescribeVault",
6
+ "delay": 3,
7
+ "maxAttempts": 15,
8
+ "acceptors": [
9
+ {
10
+ "state": "success",
11
+ "matcher": "status",
12
+ "expected": 200
13
+ },
14
+ {
15
+ "state": "retry",
16
+ "matcher": "error",
17
+ "expected": "ResourceNotFoundException"
18
+ }
19
+ ]
16
20
  },
17
21
  "VaultNotExists": {
18
- "extends": "__VaultState",
19
- "success_type": "error",
20
- "success_value": "ResourceNotFoundException"
22
+ "operation": "DescribeVault",
23
+ "delay": 3,
24
+ "maxAttempts": 15,
25
+ "acceptors": [
26
+ {
27
+ "state": "retry",
28
+ "matcher": "status",
29
+ "expected": 200
30
+ },
31
+ {
32
+ "state": "success",
33
+ "matcher": "error",
34
+ "expected": "ResourceNotFoundException"
35
+ }
36
+ ]
21
37
  }
22
38
  }
23
39
  }
@@ -19,7 +19,7 @@
19
19
  "resource": {
20
20
  "type": "Group",
21
21
  "identifiers": [
22
- { "target": "Name", "sourceType": "requestParameter", "source": "GroupName" }
22
+ { "target": "Name", "source": "requestParameter", "path": "GroupName" }
23
23
  ],
24
24
  "path": "Group"
25
25
  }
@@ -29,7 +29,7 @@
29
29
  "resource": {
30
30
  "type": "InstanceProfile",
31
31
  "identifiers": [
32
- { "target": "Name", "sourceType": "requestParameter", "source": "InstanceProfileName" }
32
+ { "target": "Name", "source": "requestParameter", "path": "InstanceProfileName" }
33
33
  ],
34
34
  "path": "InstanceProfile"
35
35
  }
@@ -39,7 +39,7 @@
39
39
  "resource": {
40
40
  "type": "Role",
41
41
  "identifiers": [
42
- { "target": "Name", "sourceType": "requestParameter", "source": "RoleName" }
42
+ { "target": "Name", "source": "requestParameter", "path": "RoleName" }
43
43
  ],
44
44
  "path": "Role"
45
45
  }
@@ -49,7 +49,7 @@
49
49
  "resource": {
50
50
  "type": "SamlProvider",
51
51
  "identifiers": [
52
- { "target": "Arn", "sourceType": "responsePath", "source": "SAMLProviderArn" }
52
+ { "target": "Arn", "source": "response", "path": "SAMLProviderArn" }
53
53
  ]
54
54
  }
55
55
  },
@@ -58,7 +58,7 @@
58
58
  "resource": {
59
59
  "type": "ServerCertificate",
60
60
  "identifiers": [
61
- { "target": "Name", "sourceType": "requestParameter", "source": "ServerCertificateName" }
61
+ { "target": "Name", "source": "requestParameter", "path": "ServerCertificateName" }
62
62
  ]
63
63
  }
64
64
  },
@@ -67,7 +67,7 @@
67
67
  "resource": {
68
68
  "type": "SigningCertificate",
69
69
  "identifiers": [
70
- { "target": "Id", "sourceType": "responsePath", "source": "Certificate.CertificateId" }
70
+ { "target": "Id", "source": "response", "path": "Certificate.CertificateId" }
71
71
  ],
72
72
  "path": "Certificate"
73
73
  }
@@ -77,7 +77,7 @@
77
77
  "resource": {
78
78
  "type": "User",
79
79
  "identifiers": [
80
- { "target": "Name", "sourceType": "requestParameter", "source": "UserName" }
80
+ { "target": "Name", "source": "requestParameter", "path": "UserName" }
81
81
  ],
82
82
  "path": "User"
83
83
  }
@@ -87,19 +87,95 @@
87
87
  "resource": {
88
88
  "type": "VirtualMfaDevice",
89
89
  "identifiers": [
90
- { "target": "SerialNumber", "sourceType": "responsePath", "source": "VirtualMFADevice.SerialNumber" }
90
+ { "target": "SerialNumber", "source": "response", "path": "VirtualMFADevice.SerialNumber" }
91
91
  ],
92
92
  "path": "VirtualMFADevice"
93
93
  }
94
94
  }
95
95
  },
96
+ "has": {
97
+ "AccountPasswordPolicy": {
98
+ "resource": {
99
+ "type": "AccountPasswordPolicy",
100
+ "identifiers": [ ]
101
+ }
102
+ },
103
+ "AccountSummary": {
104
+ "resource": {
105
+ "type": "AccountSummary",
106
+ "identifiers": [ ]
107
+ }
108
+ },
109
+ "CurrentUser": {
110
+ "resource": {
111
+ "type": "CurrentUser",
112
+ "identifiers": [ ]
113
+ }
114
+ },
115
+ "Group": {
116
+ "resource": {
117
+ "type": "Group",
118
+ "identifiers": [
119
+ { "target": "Name", "source": "input" }
120
+ ]
121
+ }
122
+ },
123
+ "InstanceProfile": {
124
+ "resource": {
125
+ "type": "InstanceProfile",
126
+ "identifiers": [
127
+ { "target": "Name", "source": "input" }
128
+ ]
129
+ }
130
+ },
131
+ "Role": {
132
+ "resource": {
133
+ "type": "Role",
134
+ "identifiers": [
135
+ { "target": "Name", "source": "input" }
136
+ ]
137
+ }
138
+ },
139
+ "SamlProvider": {
140
+ "resource": {
141
+ "type": "SamlProvider",
142
+ "identifiers": [
143
+ { "target": "Arn", "source": "input" }
144
+ ]
145
+ }
146
+ },
147
+ "ServerCertificate": {
148
+ "resource": {
149
+ "type": "ServerCertificate",
150
+ "identifiers": [
151
+ { "target": "Name", "source": "input" }
152
+ ]
153
+ }
154
+ },
155
+ "User": {
156
+ "resource": {
157
+ "type": "User",
158
+ "identifiers": [
159
+ { "target": "Name", "source": "input" }
160
+ ]
161
+ }
162
+ },
163
+ "VirtualMfaDevice": {
164
+ "resource": {
165
+ "type": "VirtualMfaDevice",
166
+ "identifiers": [
167
+ { "target": "SerialNumber", "source": "input" }
168
+ ]
169
+ }
170
+ }
171
+ },
96
172
  "hasMany": {
97
173
  "Groups": {
98
174
  "request": { "operation": "ListGroups" },
99
175
  "resource": {
100
176
  "type": "Group",
101
177
  "identifiers": [
102
- { "target": "Name", "sourceType": "responsePath", "source": "Groups[].GroupName" }
178
+ { "target": "Name", "source": "response", "path": "Groups[].GroupName" }
103
179
  ],
104
180
  "path": "Groups[]"
105
181
  }
@@ -109,7 +185,7 @@
109
185
  "resource": {
110
186
  "type": "InstanceProfile",
111
187
  "identifiers": [
112
- { "target": "Name", "sourceType": "responsePath", "source": "InstanceProfiles[].InstanceProfileName" }
188
+ { "target": "Name", "source": "response", "path": "InstanceProfiles[].InstanceProfileName" }
113
189
  ],
114
190
  "path": "InstanceProfiles[]"
115
191
  }
@@ -119,7 +195,7 @@
119
195
  "resource": {
120
196
  "type": "Role",
121
197
  "identifiers": [
122
- { "target": "Name", "sourceType": "responsePath", "source": "Roles[].RoleName" }
198
+ { "target": "Name", "source": "response", "path": "Roles[].RoleName" }
123
199
  ],
124
200
  "path": "Roles[]"
125
201
  }
@@ -129,7 +205,7 @@
129
205
  "resource": {
130
206
  "type": "SamlProvider",
131
207
  "identifiers": [
132
- { "target": "Arn", "sourceType": "responsePath", "source": "SAMLProviderList[].Arn" }
208
+ { "target": "Arn", "source": "response", "path": "SAMLProviderList[].Arn" }
133
209
  ]
134
210
  }
135
211
  },
@@ -138,7 +214,7 @@
138
214
  "resource": {
139
215
  "type": "ServerCertificate",
140
216
  "identifiers": [
141
- { "target": "Name", "sourceType": "responsePath", "source": "ServerCertificateMetadataList[].ServerCertificateName" }
217
+ { "target": "Name", "source": "response", "path": "ServerCertificateMetadataList[].ServerCertificateName" }
142
218
  ]
143
219
  }
144
220
  },
@@ -147,7 +223,7 @@
147
223
  "resource": {
148
224
  "type": "User",
149
225
  "identifiers": [
150
- { "target": "Name", "sourceType": "responsePath", "source": "Users[].UserName" }
226
+ { "target": "Name", "source": "response", "path": "Users[].UserName" }
151
227
  ],
152
228
  "path": "Users[]"
153
229
  }
@@ -157,7 +233,7 @@
157
233
  "resource": {
158
234
  "type": "VirtualMfaDevice",
159
235
  "identifiers": [
160
- { "target": "SerialNumber", "sourceType": "responsePath", "source": "VirtualMFADevices[].SerialNumber" }
236
+ { "target": "SerialNumber", "source": "response", "path": "VirtualMFADevices[].SerialNumber" }
161
237
  ],
162
238
  "path": "VirtualMFADevices[]"
163
239
  }
@@ -182,9 +258,9 @@
182
258
  "request": {
183
259
  "operation": "UpdateAccessKey",
184
260
  "params": [
185
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
186
- { "target": "AccessKeyId", "sourceType": "identifier", "source": "Id" },
187
- { "target": "Status", "sourceType": "string", "source": "Active" }
261
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
262
+ { "target": "AccessKeyId", "source": "identifier", "name": "Id" },
263
+ { "target": "Status", "source": "string", "value": "Active" }
188
264
  ]
189
265
  }
190
266
  },
@@ -192,9 +268,9 @@
192
268
  "request": {
193
269
  "operation": "UpdateAccessKey",
194
270
  "params": [
195
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
196
- { "target": "AccessKeyId", "sourceType": "identifier", "source": "Id" },
197
- { "target": "Status", "sourceType": "string", "source": "Inactive" }
271
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
272
+ { "target": "AccessKeyId", "source": "identifier", "name": "Id" },
273
+ { "target": "Status", "source": "string", "value": "Inactive" }
198
274
  ]
199
275
  }
200
276
  },
@@ -202,8 +278,18 @@
202
278
  "request": {
203
279
  "operation": "DeleteAccessKey",
204
280
  "params": [
205
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
206
- { "target": "AccessKeyId", "sourceType": "identifier", "source": "Id" }
281
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
282
+ { "target": "AccessKeyId", "source": "identifier", "name": "Id" }
283
+ ]
284
+ }
285
+ }
286
+ },
287
+ "has": {
288
+ "User": {
289
+ "resource": {
290
+ "type": "User",
291
+ "identifiers": [
292
+ { "target": "Name", "source": "identifier", "name": "UserName" }
207
293
  ]
208
294
  }
209
295
  }
@@ -230,9 +316,9 @@
230
316
  "request": {
231
317
  "operation": "UpdateAccessKey",
232
318
  "params": [
233
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
234
- { "target": "AccessKeyId", "sourceType": "identifier", "source": "Id" },
235
- { "target": "Status", "sourceType": "string", "source": "Active" }
319
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
320
+ { "target": "AccessKeyId", "source": "identifier", "name": "Id" },
321
+ { "target": "Status", "source": "string", "value": "Active" }
236
322
  ]
237
323
  }
238
324
  },
@@ -240,9 +326,9 @@
240
326
  "request": {
241
327
  "operation": "UpdateAccessKey",
242
328
  "params": [
243
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
244
- { "target": "AccessKeyId", "sourceType": "identifier", "source": "Id" },
245
- { "target": "Status", "sourceType": "string", "source": "Inactive" }
329
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
330
+ { "target": "AccessKeyId", "source": "identifier", "name": "Id" },
331
+ { "target": "Status", "source": "string", "value": "Inactive" }
246
332
  ]
247
333
  }
248
334
  },
@@ -250,8 +336,8 @@
250
336
  "request": {
251
337
  "operation": "DeleteAccessKey",
252
338
  "params": [
253
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
254
- { "target": "AccessKeyId", "sourceType": "identifier", "source": "Id" }
339
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
340
+ { "target": "AccessKeyId", "source": "identifier", "name": "Id" }
255
341
  ]
256
342
  }
257
343
  }
@@ -290,7 +376,17 @@
290
376
  "request": {
291
377
  "operation": "UpdateAssumeRolePolicy",
292
378
  "params": [
293
- { "target": "RoleName", "sourceType": "identifier", "source": "Name" }
379
+ { "target": "RoleName", "source": "identifier", "name": "Name" }
380
+ ]
381
+ }
382
+ }
383
+ },
384
+ "has": {
385
+ "Role": {
386
+ "resource": {
387
+ "type": "Role",
388
+ "identifiers": [
389
+ { "target": "Name", "source": "identifier", "name": "RoleName" }
294
390
  ]
295
391
  }
296
392
  }
@@ -303,8 +399,8 @@
303
399
  "resource": {
304
400
  "type": "AccessKey",
305
401
  "identifiers": [
306
- { "target": "UserName", "sourceType": "responsePath", "source": "AccessKeyMetadata[].UserName" },
307
- { "target": "Id", "sourceType": "responsePath", "source": "AccessKeyMetadata[].AccessKeyId" }
402
+ { "target": "UserName", "source": "response", "path": "AccessKeyMetadata[].UserName" },
403
+ { "target": "Id", "source": "response", "path": "AccessKeyMetadata[].AccessKeyId" }
308
404
  ],
309
405
  "path": "AccessKeyMetadata[]"
310
406
  }
@@ -314,8 +410,8 @@
314
410
  "resource": {
315
411
  "type": "MfaDevice",
316
412
  "identifiers": [
317
- { "target": "UserName", "sourceType": "responsePath", "source": "MFADevices[].UserName" },
318
- { "target": "SerialNumber", "sourceType": "responsePath", "source": "MFADevices[].SerialNumber" }
413
+ { "target": "UserName", "source": "response", "path": "MFADevices[].UserName" },
414
+ { "target": "SerialNumber", "source": "response", "path": "MFADevices[].SerialNumber" }
319
415
  ],
320
416
  "path": "MFADevices[]"
321
417
  }
@@ -325,8 +421,8 @@
325
421
  "resource": {
326
422
  "type": "SigningCertificate",
327
423
  "identifiers": [
328
- { "target": "UserName", "sourceType": "responsePath", "source": "Certificates[].UserName" },
329
- { "target": "Id", "sourceType": "responsePath", "source": "Certificates[].CertificateId" }
424
+ { "target": "UserName", "source": "response", "path": "Certificates[].UserName" },
425
+ { "target": "Id", "source": "response", "path": "Certificates[].CertificateId" }
330
426
  ],
331
427
  "path": "Certificates[]"
332
428
  }
@@ -345,7 +441,7 @@
345
441
  "request": {
346
442
  "operation": "GetGroup",
347
443
  "params": [
348
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
444
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
349
445
  ]
350
446
  },
351
447
  "path": "Group"
@@ -355,7 +451,7 @@
355
451
  "request": {
356
452
  "operation": "AddUserToGroup",
357
453
  "params": [
358
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
454
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
359
455
  ]
360
456
  }
361
457
  },
@@ -363,13 +459,13 @@
363
459
  "request": {
364
460
  "operation": "CreateGroup",
365
461
  "params": [
366
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
462
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
367
463
  ]
368
464
  },
369
465
  "resource": {
370
466
  "type": "Group",
371
467
  "identifiers": [
372
- { "target": "Name", "sourceType": "requestParameter", "source": "GroupName" }
468
+ { "target": "Name", "source": "requestParameter", "path": "GroupName" }
373
469
  ],
374
470
  "path": "Group"
375
471
  }
@@ -378,14 +474,14 @@
378
474
  "request": {
379
475
  "operation": "PutGroupPolicy",
380
476
  "params": [
381
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
477
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
382
478
  ]
383
479
  },
384
480
  "resource": {
385
481
  "type": "GroupPolicy",
386
482
  "identifiers": [
387
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" },
388
- { "target": "Name", "sourceType": "requestParameter", "source": "PolicyName" }
483
+ { "target": "GroupName", "source": "identifier", "name": "Name" },
484
+ { "target": "Name", "source": "requestParameter", "path": "PolicyName" }
389
485
  ]
390
486
  }
391
487
  },
@@ -393,7 +489,7 @@
393
489
  "request": {
394
490
  "operation": "DeleteGroup",
395
491
  "params": [
396
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
492
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
397
493
  ]
398
494
  }
399
495
  },
@@ -401,7 +497,7 @@
401
497
  "request": {
402
498
  "operation": "RemoveUserFromGroup",
403
499
  "params": [
404
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
500
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
405
501
  ]
406
502
  }
407
503
  },
@@ -409,13 +505,24 @@
409
505
  "request": {
410
506
  "operation": "UpdateGroup",
411
507
  "params": [
412
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
508
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
413
509
  ]
414
510
  },
415
511
  "resource": {
416
512
  "type": "Group",
417
513
  "identifiers": [
418
- { "target": "Name", "sourceType": "requestParameter", "source": "NewGroupName" }
514
+ { "target": "Name", "source": "requestParameter", "path": "NewGroupName" }
515
+ ]
516
+ }
517
+ }
518
+ },
519
+ "has": {
520
+ "Policy": {
521
+ "resource": {
522
+ "type": "GroupPolicy",
523
+ "identifiers": [
524
+ { "target": "GroupName", "source": "identifier", "name": "Name" },
525
+ { "target": "Name", "source": "input" }
419
526
  ]
420
527
  }
421
528
  }
@@ -425,14 +532,14 @@
425
532
  "request": {
426
533
  "operation": "ListGroupPolicies",
427
534
  "params": [
428
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
535
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
429
536
  ]
430
537
  },
431
538
  "resource": {
432
539
  "type": "GroupPolicy",
433
540
  "identifiers": [
434
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" },
435
- { "target": "Name", "sourceType": "responsePath", "source": "PolicyNames[]" }
541
+ { "target": "GroupName", "source": "identifier", "name": "Name" },
542
+ { "target": "Name", "source": "response", "path": "PolicyNames[]" }
436
543
  ]
437
544
  }
438
545
  },
@@ -440,21 +547,17 @@
440
547
  "request": {
441
548
  "operation": "GetGroup",
442
549
  "params": [
443
- { "target": "GroupName", "sourceType": "identifier", "source": "Name" }
550
+ { "target": "GroupName", "source": "identifier", "name": "Name" }
444
551
  ]
445
552
  },
446
553
  "resource": {
447
554
  "type": "User",
448
555
  "identifiers": [
449
- { "target": "Name", "sourceType": "responsePath", "source": "Users[].UserName" }
556
+ { "target": "Name", "source": "response", "path": "Users[].UserName" }
450
557
  ],
451
558
  "path": "Users[]"
452
559
  }
453
560
  }
454
- },
455
- "subResources": {
456
- "resources": [ "GroupPolicy" ],
457
- "identifiers": { "Name": "GroupName" }
458
561
  }
459
562
  },
460
563
  "GroupPolicy": {
@@ -473,8 +576,8 @@
473
576
  "request": {
474
577
  "operation": "GetGroupPolicy",
475
578
  "params": [
476
- { "target": "GroupName", "sourceType": "identifier", "source": "GroupName" },
477
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
579
+ { "target": "GroupName", "source": "identifier", "name": "GroupName" },
580
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
478
581
  ]
479
582
  },
480
583
  "path": "@"
@@ -484,8 +587,8 @@
484
587
  "request": {
485
588
  "operation": "DeleteGroupPolicy",
486
589
  "params": [
487
- { "target": "GroupName", "sourceType": "identifier", "source": "GroupName" },
488
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
590
+ { "target": "GroupName", "source": "identifier", "name": "GroupName" },
591
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
489
592
  ]
490
593
  }
491
594
  },
@@ -493,8 +596,18 @@
493
596
  "request": {
494
597
  "operation": "PutGroupPolicy",
495
598
  "params": [
496
- { "target": "GroupName", "sourceType": "identifier", "source": "GroupName" },
497
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
599
+ { "target": "GroupName", "source": "identifier", "name": "GroupName" },
600
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
601
+ ]
602
+ }
603
+ }
604
+ },
605
+ "has": {
606
+ "Group": {
607
+ "resource": {
608
+ "type": "Group",
609
+ "identifiers": [
610
+ { "target": "Name", "source": "identifier", "name": "GroupName" }
498
611
  ]
499
612
  }
500
613
  }
@@ -512,7 +625,7 @@
512
625
  "request": {
513
626
  "operation": "GetInstanceProfile",
514
627
  "params": [
515
- { "target": "InstanceProfileName", "sourceType": "identifier", "source": "Name" }
628
+ { "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
516
629
  ]
517
630
  },
518
631
  "path": "InstanceProfile"
@@ -522,7 +635,7 @@
522
635
  "request": {
523
636
  "operation": "AddRoleToInstanceProfile",
524
637
  "params": [
525
- { "target": "InstanceProfileName", "sourceType": "identifier", "source": "Name" }
638
+ { "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
526
639
  ]
527
640
  }
528
641
  },
@@ -530,7 +643,7 @@
530
643
  "request": {
531
644
  "operation": "DeleteInstanceProfile",
532
645
  "params": [
533
- { "target": "InstanceProfileName", "sourceType": "identifier", "source": "Name" }
646
+ { "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
534
647
  ]
535
648
  }
536
649
  },
@@ -538,17 +651,17 @@
538
651
  "request": {
539
652
  "operation": "RemoveRoleFromInstanceProfile",
540
653
  "params": [
541
- { "target": "InstanceProfileName", "sourceType": "identifier", "source": "Name" }
654
+ { "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
542
655
  ]
543
656
  }
544
657
  }
545
658
  },
546
- "belongsTo": {
659
+ "has": {
547
660
  "Roles": {
548
661
  "resource": {
549
662
  "type": "Role",
550
663
  "identifiers": [
551
- { "target": "Name", "sourceType": "dataMember", "source": "Roles[].RoleName" }
664
+ { "target": "Name", "source": "data", "path": "Roles[].RoleName" }
552
665
  ],
553
666
  "path": "Roles[]"
554
667
  }
@@ -567,7 +680,7 @@
567
680
  "request": {
568
681
  "operation": "GetLoginProfile",
569
682
  "params": [
570
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" }
683
+ { "target": "UserName", "source": "identifier", "name": "UserName" }
571
684
  ]
572
685
  },
573
686
  "path": "LoginProfile"
@@ -577,13 +690,13 @@
577
690
  "request": {
578
691
  "operation": "CreateLoginProfile",
579
692
  "params": [
580
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" }
693
+ { "target": "UserName", "source": "identifier", "name": "UserName" }
581
694
  ]
582
695
  },
583
696
  "resource": {
584
697
  "type": "LoginProfile",
585
698
  "identifiers": [
586
- { "target": "UserName", "sourceType": "responsePath", "source": "LoginProfile.UserName" }
699
+ { "target": "UserName", "source": "response", "path": "LoginProfile.UserName" }
587
700
  ],
588
701
  "path": "LoginProfile"
589
702
  }
@@ -592,7 +705,7 @@
592
705
  "request": {
593
706
  "operation": "DeleteLoginProfile",
594
707
  "params": [
595
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" }
708
+ { "target": "UserName", "source": "identifier", "name": "UserName" }
596
709
  ]
597
710
  }
598
711
  },
@@ -600,7 +713,17 @@
600
713
  "request": {
601
714
  "operation": "UpdateLoginProfile",
602
715
  "params": [
603
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" }
716
+ { "target": "UserName", "source": "identifier", "name": "UserName" }
717
+ ]
718
+ }
719
+ }
720
+ },
721
+ "has": {
722
+ "User": {
723
+ "resource": {
724
+ "type": "User",
725
+ "identifiers": [
726
+ { "target": "Name", "source": "identifier", "name": "UserName" }
604
727
  ]
605
728
  }
606
729
  }
@@ -623,8 +746,8 @@
623
746
  "request": {
624
747
  "operation": "EnableMFADevice",
625
748
  "params": [
626
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
627
- { "target": "SerialNumber", "sourceType": "identifier", "source": "SerialNumber" }
749
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
750
+ { "target": "SerialNumber", "source": "identifier", "name": "SerialNumber" }
628
751
  ]
629
752
  }
630
753
  },
@@ -632,8 +755,8 @@
632
755
  "request": {
633
756
  "operation": "DeactivateMFADevice",
634
757
  "params": [
635
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
636
- { "target": "SerialNumber", "sourceType": "identifier", "source": "SerialNumber" }
758
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
759
+ { "target": "SerialNumber", "source": "identifier", "name": "SerialNumber" }
637
760
  ]
638
761
  }
639
762
  },
@@ -641,8 +764,18 @@
641
764
  "request": {
642
765
  "operation": "ResyncMFADevice",
643
766
  "params": [
644
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
645
- { "target": "SerialNumber", "sourceType": "identifier", "source": "SerialNumber" }
767
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
768
+ { "target": "SerialNumber", "source": "identifier", "name": "SerialNumber" }
769
+ ]
770
+ }
771
+ }
772
+ },
773
+ "has": {
774
+ "User": {
775
+ "resource": {
776
+ "type": "User",
777
+ "identifiers": [
778
+ { "target": "Name", "source": "identifier", "name": "UserName" }
646
779
  ]
647
780
  }
648
781
  }
@@ -660,7 +793,7 @@
660
793
  "request": {
661
794
  "operation": "GetRole",
662
795
  "params": [
663
- { "target": "RoleName", "sourceType": "identifier", "source": "Name" }
796
+ { "target": "RoleName", "source": "identifier", "name": "Name" }
664
797
  ]
665
798
  },
666
799
  "path": "Role"
@@ -670,7 +803,26 @@
670
803
  "request": {
671
804
  "operation": "DeleteRole",
672
805
  "params": [
673
- { "target": "RoleName", "sourceType": "identifier", "source": "Name" }
806
+ { "target": "RoleName", "source": "identifier", "name": "Name" }
807
+ ]
808
+ }
809
+ }
810
+ },
811
+ "has": {
812
+ "AssumeRolePolicy": {
813
+ "resource": {
814
+ "type": "AssumeRolePolicy",
815
+ "identifiers": [
816
+ { "target": "RoleName", "source": "identifier", "name": "Name" }
817
+ ]
818
+ }
819
+ },
820
+ "Policy": {
821
+ "resource": {
822
+ "type": "RolePolicy",
823
+ "identifiers": [
824
+ { "target": "RoleName", "source": "identifier", "name": "Name" },
825
+ { "target": "Name", "source": "input" }
674
826
  ]
675
827
  }
676
828
  }
@@ -680,13 +832,13 @@
680
832
  "request": {
681
833
  "operation": "ListInstanceProfilesForRole",
682
834
  "params": [
683
- { "target": "RoleName", "sourceType": "identifier", "source": "Name" }
835
+ { "target": "RoleName", "source": "identifier", "name": "Name" }
684
836
  ]
685
837
  },
686
838
  "resource": {
687
839
  "type": "InstanceProfile",
688
840
  "identifiers": [
689
- { "target": "Name", "sourceType": "responsePath", "source": "InstanceProfiles[].InstanceProfileName" }
841
+ { "target": "Name", "source": "response", "path": "InstanceProfiles[].InstanceProfileName" }
690
842
  ],
691
843
  "path": "InstanceProfiles[]"
692
844
  }
@@ -695,24 +847,17 @@
695
847
  "request": {
696
848
  "operation": "ListRolePolicies",
697
849
  "params": [
698
- { "target": "RoleName", "sourceType": "identifier", "source": "Name" }
850
+ { "target": "RoleName", "source": "identifier", "name": "Name" }
699
851
  ]
700
852
  },
701
853
  "resource": {
702
854
  "type": "RolePolicy",
703
855
  "identifiers": [
704
- { "target": "RoleName", "sourceType": "identifier", "source": "Name" },
705
- { "target": "Name", "sourceType": "responsePath", "source": "PolicyNames[]" }
856
+ { "target": "RoleName", "source": "identifier", "name": "Name" },
857
+ { "target": "Name", "source": "response", "path": "PolicyNames[]" }
706
858
  ]
707
859
  }
708
860
  }
709
- },
710
- "subResources": {
711
- "resources": [
712
- "AssumeRolePolicy",
713
- "RolePolicy"
714
- ],
715
- "identifiers": { "Name": "RoleName" }
716
861
  }
717
862
  },
718
863
  "RolePolicy": {
@@ -731,8 +876,8 @@
731
876
  "request": {
732
877
  "operation": "GetRolePolicy",
733
878
  "params": [
734
- { "target": "RoleName", "sourceType": "identifier", "source": "RoleName" },
735
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
879
+ { "target": "RoleName", "source": "identifier", "name": "RoleName" },
880
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
736
881
  ]
737
882
  },
738
883
  "path": "@"
@@ -742,8 +887,8 @@
742
887
  "request": {
743
888
  "operation": "DeleteRolePolicy",
744
889
  "params": [
745
- { "target": "RoleName", "sourceType": "identifier", "source": "RoleName" },
746
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
890
+ { "target": "RoleName", "source": "identifier", "name": "RoleName" },
891
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
747
892
  ]
748
893
  }
749
894
  },
@@ -751,8 +896,18 @@
751
896
  "request": {
752
897
  "operation": "PutRolePolicy",
753
898
  "params": [
754
- { "target": "RoleName", "sourceType": "identifier", "source": "RoleName" },
755
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
899
+ { "target": "RoleName", "source": "identifier", "name": "RoleName" },
900
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
901
+ ]
902
+ }
903
+ }
904
+ },
905
+ "has": {
906
+ "Role": {
907
+ "resource": {
908
+ "type": "Role",
909
+ "identifiers": [
910
+ { "target": "Name", "source": "identifier", "name": "RoleName" }
756
911
  ]
757
912
  }
758
913
  }
@@ -767,7 +922,7 @@
767
922
  "request": {
768
923
  "operation": "GetSAMLProvider",
769
924
  "params": [
770
- { "target": "SAMLProviderArn", "sourceType": "identifier", "source": "Arn" }
925
+ { "target": "SAMLProviderArn", "source": "identifier", "name": "Arn" }
771
926
  ]
772
927
  },
773
928
  "path": "@"
@@ -777,7 +932,7 @@
777
932
  "request": {
778
933
  "operation": "DeleteSAMLProvider",
779
934
  "params": [
780
- { "target": "SAMLProviderArn", "sourceType": "identifier", "source": "Arn" }
935
+ { "target": "SAMLProviderArn", "source": "identifier", "name": "Arn" }
781
936
  ]
782
937
  }
783
938
  },
@@ -785,7 +940,7 @@
785
940
  "request": {
786
941
  "operation": "UpdateSAMLProvider",
787
942
  "params": [
788
- { "target": "SAMLProviderArn", "sourceType": "identifier", "source": "Arn" }
943
+ { "target": "SAMLProviderArn", "source": "identifier", "name": "Arn" }
789
944
  ]
790
945
  }
791
946
  }
@@ -800,7 +955,7 @@
800
955
  "request": {
801
956
  "operation": "GetServerCertificate",
802
957
  "params": [
803
- { "target": "ServerCertificateName", "sourceType": "identifier", "source": "Name" }
958
+ { "target": "ServerCertificateName", "source": "identifier", "name": "Name" }
804
959
  ]
805
960
  },
806
961
  "path": "ServerCertificate"
@@ -810,7 +965,7 @@
810
965
  "request": {
811
966
  "operation": "DeleteServerCertificate",
812
967
  "params": [
813
- { "target": "ServerCertificateName", "sourceType": "identifier", "source": "Name" }
968
+ { "target": "ServerCertificateName", "source": "identifier", "name": "Name" }
814
969
  ]
815
970
  }
816
971
  },
@@ -818,13 +973,13 @@
818
973
  "request": {
819
974
  "operation": "UpdateServerCertificate",
820
975
  "params": [
821
- { "target": "ServerCertificateName", "sourceType": "identifier", "source": "Name" }
976
+ { "target": "ServerCertificateName", "source": "identifier", "name": "Name" }
822
977
  ]
823
978
  },
824
979
  "resource": {
825
980
  "type": "ServerCertificate",
826
981
  "identifiers": [
827
- { "target": "Name", "sourceType": "requestParameter", "source": "NewServerCertificateName" }
982
+ { "target": "Name", "source": "requestParameter", "path": "NewServerCertificateName" }
828
983
  ]
829
984
  }
830
985
  }
@@ -847,9 +1002,9 @@
847
1002
  "request": {
848
1003
  "operation": "UpdateSigningCertificate",
849
1004
  "params": [
850
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
851
- { "target": "CertificateId", "sourceType": "identifier", "source": "Id" },
852
- { "target": "Status", "sourceType": "string", "source": "Active" }
1005
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
1006
+ { "target": "CertificateId", "source": "identifier", "name": "Id" },
1007
+ { "target": "Status", "source": "string", "value": "Active" }
853
1008
  ]
854
1009
  }
855
1010
  },
@@ -857,9 +1012,9 @@
857
1012
  "request": {
858
1013
  "operation": "UpdateSigningCertificate",
859
1014
  "params": [
860
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
861
- { "target": "CertificateId", "sourceType": "identifier", "source": "Id" },
862
- { "target": "Status", "sourceType": "string", "source": "Inactive" }
1015
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
1016
+ { "target": "CertificateId", "source": "identifier", "name": "Id" },
1017
+ { "target": "Status", "source": "string", "value": "Inactive" }
863
1018
  ]
864
1019
  }
865
1020
  },
@@ -867,8 +1022,18 @@
867
1022
  "request": {
868
1023
  "operation": "DeleteSigningCertificate",
869
1024
  "params": [
870
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
871
- { "target": "CertificateId", "sourceType": "identifier", "source": "Id" }
1025
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
1026
+ { "target": "CertificateId", "source": "identifier", "name": "Id" }
1027
+ ]
1028
+ }
1029
+ }
1030
+ },
1031
+ "has": {
1032
+ "User": {
1033
+ "resource": {
1034
+ "type": "User",
1035
+ "identifiers": [
1036
+ { "target": "Name", "source": "identifier", "name": "UserName" }
872
1037
  ]
873
1038
  }
874
1039
  }
@@ -886,7 +1051,7 @@
886
1051
  "request": {
887
1052
  "operation": "GetUser",
888
1053
  "params": [
889
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1054
+ { "target": "UserName", "source": "identifier", "name": "Name" }
890
1055
  ]
891
1056
  },
892
1057
  "path": "User"
@@ -896,7 +1061,7 @@
896
1061
  "request": {
897
1062
  "operation": "AddUserToGroup",
898
1063
  "params": [
899
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1064
+ { "target": "UserName", "source": "identifier", "name": "Name" }
900
1065
  ]
901
1066
  }
902
1067
  },
@@ -904,13 +1069,13 @@
904
1069
  "request": {
905
1070
  "operation": "CreateUser",
906
1071
  "params": [
907
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1072
+ { "target": "UserName", "source": "identifier", "name": "Name" }
908
1073
  ]
909
1074
  },
910
1075
  "resource": {
911
1076
  "type": "User",
912
1077
  "identifiers": [
913
- { "target": "Name", "sourceType": "requestParameter", "source": "UserName" }
1078
+ { "target": "Name", "source": "requestParameter", "path": "UserName" }
914
1079
  ],
915
1080
  "path": "User"
916
1081
  }
@@ -919,15 +1084,15 @@
919
1084
  "request": {
920
1085
  "operation": "CreateAccessKey",
921
1086
  "params": [
922
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1087
+ { "target": "UserName", "source": "identifier", "name": "Name" }
923
1088
  ]
924
1089
  },
925
1090
  "resource": {
926
1091
  "type": "AccessKeyPair",
927
1092
  "identifiers": [
928
- { "target": "UserName", "sourceType": "identifier", "source": "Name" },
929
- { "target": "Id", "sourceType": "responsePath", "source": "AccessKey.AccessKeyId" },
930
- { "target": "Secret", "sourceType": "responsePath", "source": "AccessKey.SecretAccessKey" }
1093
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1094
+ { "target": "Id", "source": "response", "path": "AccessKey.AccessKeyId" },
1095
+ { "target": "Secret", "source": "response", "path": "AccessKey.SecretAccessKey" }
931
1096
  ],
932
1097
  "path": "AccessKey"
933
1098
  }
@@ -936,13 +1101,13 @@
936
1101
  "request": {
937
1102
  "operation": "CreateLoginProfile",
938
1103
  "params": [
939
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1104
+ { "target": "UserName", "source": "identifier", "name": "Name" }
940
1105
  ]
941
1106
  },
942
1107
  "resource": {
943
1108
  "type": "LoginProfile",
944
1109
  "identifiers": [
945
- { "target": "UserName", "sourceType": "responsePath", "source": "LoginProfile.UserName" }
1110
+ { "target": "UserName", "source": "response", "path": "LoginProfile.UserName" }
946
1111
  ],
947
1112
  "path": "LoginProfile"
948
1113
  }
@@ -951,14 +1116,14 @@
951
1116
  "request": {
952
1117
  "operation": "PutUserPolicy",
953
1118
  "params": [
954
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1119
+ { "target": "UserName", "source": "identifier", "name": "Name" }
955
1120
  ]
956
1121
  },
957
1122
  "resource": {
958
1123
  "type": "UserPolicy",
959
1124
  "identifiers": [
960
- { "target": "UserName", "sourceType": "identifier", "source": "Name" },
961
- { "target": "Name", "sourceType": "requestParameter", "source": "PolicyName" }
1125
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1126
+ { "target": "Name", "source": "requestParameter", "path": "PolicyName" }
962
1127
  ]
963
1128
  }
964
1129
  },
@@ -966,7 +1131,7 @@
966
1131
  "request": {
967
1132
  "operation": "DeleteUser",
968
1133
  "params": [
969
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1134
+ { "target": "UserName", "source": "identifier", "name": "Name" }
970
1135
  ]
971
1136
  }
972
1137
  },
@@ -974,14 +1139,14 @@
974
1139
  "request": {
975
1140
  "operation": "EnableMFADevice",
976
1141
  "params": [
977
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1142
+ { "target": "UserName", "source": "identifier", "name": "Name" }
978
1143
  ]
979
1144
  },
980
1145
  "resource": {
981
1146
  "type": "MfaDevice",
982
1147
  "identifiers": [
983
- { "target": "UserName", "sourceType": "identifier", "source": "Name" },
984
- { "target": "SerialNumber", "sourceType": "requestParameter", "source": "SerialNumber" }
1148
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1149
+ { "target": "SerialNumber", "source": "requestParameter", "path": "SerialNumber" }
985
1150
  ]
986
1151
  }
987
1152
  },
@@ -989,7 +1154,7 @@
989
1154
  "request": {
990
1155
  "operation": "RemoveUserFromGroup",
991
1156
  "params": [
992
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1157
+ { "target": "UserName", "source": "identifier", "name": "Name" }
993
1158
  ]
994
1159
  }
995
1160
  },
@@ -997,13 +1162,59 @@
997
1162
  "request": {
998
1163
  "operation": "UpdateUser",
999
1164
  "params": [
1000
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1165
+ { "target": "UserName", "source": "identifier", "name": "Name" }
1001
1166
  ]
1002
1167
  },
1003
1168
  "resource": {
1004
1169
  "type": "User",
1005
1170
  "identifiers": [
1006
- { "target": "Name", "sourceType": "requestParameter", "source": "NewUserName" }
1171
+ { "target": "Name", "source": "requestParameter", "path": "NewUserName" }
1172
+ ]
1173
+ }
1174
+ }
1175
+ },
1176
+ "has": {
1177
+ "AccessKey": {
1178
+ "resource": {
1179
+ "type": "AccessKey",
1180
+ "identifiers": [
1181
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1182
+ { "target": "Id", "source": "input" }
1183
+ ]
1184
+ }
1185
+ },
1186
+ "LoginProfile": {
1187
+ "resource": {
1188
+ "type": "LoginProfile",
1189
+ "identifiers": [
1190
+ { "target": "UserName", "source": "identifier", "name": "Name" }
1191
+ ]
1192
+ }
1193
+ },
1194
+ "MfaDevice": {
1195
+ "resource": {
1196
+ "type": "MfaDevice",
1197
+ "identifiers": [
1198
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1199
+ { "target": "SerialNumber", "source": "input" }
1200
+ ]
1201
+ }
1202
+ },
1203
+ "Policy": {
1204
+ "resource": {
1205
+ "type": "UserPolicy",
1206
+ "identifiers": [
1207
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1208
+ { "target": "Name", "source": "input" }
1209
+ ]
1210
+ }
1211
+ },
1212
+ "SigningCertificate": {
1213
+ "resource": {
1214
+ "type": "SigningCertificate",
1215
+ "identifiers": [
1216
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1217
+ { "target": "Id", "source": "input" }
1007
1218
  ]
1008
1219
  }
1009
1220
  }
@@ -1013,14 +1224,14 @@
1013
1224
  "request": {
1014
1225
  "operation": "ListAccessKeys",
1015
1226
  "params": [
1016
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1227
+ { "target": "UserName", "source": "identifier", "name": "Name" }
1017
1228
  ]
1018
1229
  },
1019
1230
  "resource": {
1020
1231
  "type": "AccessKey",
1021
1232
  "identifiers": [
1022
- { "target": "UserName", "sourceType": "identifier", "source": "Name" },
1023
- { "target": "Id", "sourceType": "responsePath", "source": "AccessKeyMetadata[].AccessKeyId" }
1233
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1234
+ { "target": "Id", "source": "response", "path": "AccessKeyMetadata[].AccessKeyId" }
1024
1235
  ],
1025
1236
  "path": "AccessKeyMetadata[]"
1026
1237
  }
@@ -1029,13 +1240,13 @@
1029
1240
  "request": {
1030
1241
  "operation": "ListGroupsForUser",
1031
1242
  "params": [
1032
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1243
+ { "target": "UserName", "source": "identifier", "name": "Name" }
1033
1244
  ]
1034
1245
  },
1035
1246
  "resource": {
1036
1247
  "type": "Group",
1037
1248
  "identifiers": [
1038
- { "target": "Name", "sourceType": "responsePath", "source": "Groups[].GroupName" }
1249
+ { "target": "Name", "source": "response", "path": "Groups[].GroupName" }
1039
1250
  ],
1040
1251
  "path": "Groups[]"
1041
1252
  }
@@ -1044,14 +1255,14 @@
1044
1255
  "request": {
1045
1256
  "operation": "ListMFADevices",
1046
1257
  "params": [
1047
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1258
+ { "target": "UserName", "source": "identifier", "name": "Name" }
1048
1259
  ]
1049
1260
  },
1050
1261
  "resource": {
1051
1262
  "type": "MfaDevice",
1052
1263
  "identifiers": [
1053
- { "target": "UserName", "sourceType": "identifier", "source": "Name" },
1054
- { "target": "SerialNumber", "sourceType": "responsePath", "source": "MFADevices[].SerialNumber" }
1264
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1265
+ { "target": "SerialNumber", "source": "response", "path": "MFADevices[].SerialNumber" }
1055
1266
  ],
1056
1267
  "path": "MFADevices[]"
1057
1268
  }
@@ -1060,14 +1271,14 @@
1060
1271
  "request": {
1061
1272
  "operation": "ListUserPolicies",
1062
1273
  "params": [
1063
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1274
+ { "target": "UserName", "source": "identifier", "name": "Name" }
1064
1275
  ]
1065
1276
  },
1066
1277
  "resource": {
1067
1278
  "type": "UserPolicy",
1068
1279
  "identifiers": [
1069
- { "target": "UserName", "sourceType": "identifier", "source": "Name" },
1070
- { "target": "Name", "sourceType": "responsePath", "source": "PolicyNames[]" }
1280
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1281
+ { "target": "Name", "source": "response", "path": "PolicyNames[]" }
1071
1282
  ]
1072
1283
  }
1073
1284
  },
@@ -1075,28 +1286,18 @@
1075
1286
  "request": {
1076
1287
  "operation": "ListSigningCertificates",
1077
1288
  "params": [
1078
- { "target": "UserName", "sourceType": "identifier", "source": "Name" }
1289
+ { "target": "UserName", "source": "identifier", "name": "Name" }
1079
1290
  ]
1080
1291
  },
1081
1292
  "resource": {
1082
1293
  "type": "SigningCertificate",
1083
1294
  "identifiers": [
1084
- { "target": "UserName", "sourceType": "identifier", "source": "Name" },
1085
- { "target": "Id", "sourceType": "responsePath", "source": "Certificates[].CertificateId" }
1295
+ { "target": "UserName", "source": "identifier", "name": "Name" },
1296
+ { "target": "Id", "source": "response", "path": "Certificates[].CertificateId" }
1086
1297
  ],
1087
1298
  "path": "Certificates[]"
1088
1299
  }
1089
1300
  }
1090
- },
1091
- "subResources": {
1092
- "resources": [
1093
- "AccessKey",
1094
- "LoginProfile",
1095
- "MfaDevice",
1096
- "SigningCertificate",
1097
- "UserPolicy"
1098
- ],
1099
- "identifiers": { "Name": "UserName" }
1100
1301
  }
1101
1302
  },
1102
1303
  "UserPolicy": {
@@ -1115,8 +1316,8 @@
1115
1316
  "request": {
1116
1317
  "operation": "GetUserPolicy",
1117
1318
  "params": [
1118
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
1119
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
1319
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
1320
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
1120
1321
  ]
1121
1322
  },
1122
1323
  "path": "@"
@@ -1126,8 +1327,8 @@
1126
1327
  "request": {
1127
1328
  "operation": "DeleteUserPolicy",
1128
1329
  "params": [
1129
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
1130
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
1330
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
1331
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
1131
1332
  ]
1132
1333
  }
1133
1334
  },
@@ -1135,8 +1336,18 @@
1135
1336
  "request": {
1136
1337
  "operation": "PutUserPolicy",
1137
1338
  "params": [
1138
- { "target": "UserName", "sourceType": "identifier", "source": "UserName" },
1139
- { "target": "PolicyName", "sourceType": "identifier", "source": "Name" }
1339
+ { "target": "UserName", "source": "identifier", "name": "UserName" },
1340
+ { "target": "PolicyName", "source": "identifier", "name": "Name" }
1341
+ ]
1342
+ }
1343
+ }
1344
+ },
1345
+ "has": {
1346
+ "User": {
1347
+ "resource": {
1348
+ "type": "User",
1349
+ "identifiers": [
1350
+ { "target": "Name", "source": "identifier", "name": "UserName" }
1140
1351
  ]
1141
1352
  }
1142
1353
  }
@@ -1155,17 +1366,17 @@
1155
1366
  "request": {
1156
1367
  "operation": "DeleteVirtualMFADevice",
1157
1368
  "params": [
1158
- { "target": "SerialNumber", "sourceType": "identifier", "source": "SerialNumber" }
1369
+ { "target": "SerialNumber", "source": "identifier", "name": "SerialNumber" }
1159
1370
  ]
1160
1371
  }
1161
1372
  }
1162
1373
  },
1163
- "belongsTo": {
1374
+ "has": {
1164
1375
  "User": {
1165
1376
  "resource": {
1166
1377
  "type": "User",
1167
1378
  "identifiers": [
1168
- { "target": "Name", "sourceType": "dataMember", "source": "User.UserName" }
1379
+ { "target": "Name", "source": "data", "path": "User.UserName" }
1169
1380
  ]
1170
1381
  }
1171
1382
  }