aws-sdk-core 2.1.7 → 2.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/apis/ec2/2015-04-15/api-2.json +77 -15
- data/apis/elasticmapreduce/2009-03-31/api-2.json +23 -3
- data/apis/glacier/2012-06-01/api-2.json +234 -0
- data/apis/iam/2010-05-08/paginators-1.json +7 -0
- data/apis/iam/2010-05-08/resources-1.json +8 -0
- data/apis/iam/2010-05-08/waiters-2.json +17 -0
- data/apis/opsworks/2013-02-18/waiters-2.json +17 -0
- data/lib/aws-sdk-core.rb +4 -1
- data/lib/aws-sdk-core/api/customizations.rb +0 -9
- data/lib/aws-sdk-core/api/docs/operation_documenter.rb +29 -1
- data/lib/aws-sdk-core/api/docs/shared_example.rb +99 -0
- data/lib/aws-sdk-core/client.rb +14 -1
- data/lib/aws-sdk-core/dynamodb/attribute_value.rb +2 -1
- data/lib/aws-sdk-core/plugins/request_signer.rb +11 -0
- data/lib/aws-sdk-core/stubbing/protocols/query.rb +4 -0
- data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +1 -8
- data/lib/aws-sdk-core/stubbing/xml_error.rb +22 -0
- data/lib/aws-sdk-core/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e2c63d82dd0755ce9e83a5446505f7c4a5072a5
|
4
|
+
data.tar.gz: b9be39379887028208bc9e77f5ed360aef7d1d37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df5d024f546b13790019d796224a9e8ec9e759efd6965fe9e600a35d20e24ba317b325b12bc50058b3f73720575046b3a2ad152706411c2dca65de82c153aaaa
|
7
|
+
data.tar.gz: cc5e494592b478de4396503fdccded16c993beae26e1ec2c92f51db2cd5eb302c0ce8bd7a4077c84c3c4172d85c7c4cf9ef99bbed005671f8f5dec9b0af6de6e
|
@@ -3154,10 +3154,6 @@
|
|
3154
3154
|
"VpcPeeringConnectionId":{
|
3155
3155
|
"shape":"String",
|
3156
3156
|
"locationName":"vpcPeeringConnectionId"
|
3157
|
-
},
|
3158
|
-
"ClientToken":{
|
3159
|
-
"shape":"String",
|
3160
|
-
"locationName":"clientToken"
|
3161
3157
|
}
|
3162
3158
|
}
|
3163
3159
|
},
|
@@ -3167,10 +3163,6 @@
|
|
3167
3163
|
"Return":{
|
3168
3164
|
"shape":"Boolean",
|
3169
3165
|
"locationName":"return"
|
3170
|
-
},
|
3171
|
-
"ClientToken":{
|
3172
|
-
"shape":"String",
|
3173
|
-
"locationName":"clientToken"
|
3174
3166
|
}
|
3175
3167
|
}
|
3176
3168
|
},
|
@@ -7933,7 +7925,7 @@
|
|
7933
7925
|
"LaunchSpecsList":{
|
7934
7926
|
"type":"list",
|
7935
7927
|
"member":{
|
7936
|
-
"shape":"
|
7928
|
+
"shape":"SpotFleetLaunchSpecification",
|
7937
7929
|
"locationName":"item"
|
7938
7930
|
},
|
7939
7931
|
"min":1
|
@@ -8108,10 +8100,6 @@
|
|
8108
8100
|
}
|
8109
8101
|
}
|
8110
8102
|
},
|
8111
|
-
"ModifySnapshotAttributeName":{
|
8112
|
-
"type":"string",
|
8113
|
-
"enum":["createVolumePermission"]
|
8114
|
-
},
|
8115
8103
|
"ModifySnapshotAttributeRequest":{
|
8116
8104
|
"type":"structure",
|
8117
8105
|
"required":["SnapshotId"],
|
@@ -8121,7 +8109,7 @@
|
|
8121
8109
|
"locationName":"dryRun"
|
8122
8110
|
},
|
8123
8111
|
"SnapshotId":{"shape":"String"},
|
8124
|
-
"Attribute":{"shape":"
|
8112
|
+
"Attribute":{"shape":"SnapshotAttributeName"},
|
8125
8113
|
"OperationType":{"shape":"String"},
|
8126
8114
|
"UserIds":{
|
8127
8115
|
"shape":"UserIdStringList",
|
@@ -9823,7 +9811,7 @@
|
|
9823
9811
|
"locationName":"dryRun"
|
9824
9812
|
},
|
9825
9813
|
"SnapshotId":{"shape":"String"},
|
9826
|
-
"Attribute":{"shape":"
|
9814
|
+
"Attribute":{"shape":"SnapshotAttributeName"}
|
9827
9815
|
}
|
9828
9816
|
},
|
9829
9817
|
"ResourceIdList":{
|
@@ -10452,6 +10440,80 @@
|
|
10452
10440
|
}
|
10453
10441
|
}
|
10454
10442
|
},
|
10443
|
+
"SpotFleetLaunchSpecification":{
|
10444
|
+
"type":"structure",
|
10445
|
+
"members":{
|
10446
|
+
"ImageId":{
|
10447
|
+
"shape":"String",
|
10448
|
+
"locationName":"imageId"
|
10449
|
+
},
|
10450
|
+
"KeyName":{
|
10451
|
+
"shape":"String",
|
10452
|
+
"locationName":"keyName"
|
10453
|
+
},
|
10454
|
+
"SecurityGroups":{
|
10455
|
+
"shape":"GroupIdentifierList",
|
10456
|
+
"locationName":"groupSet"
|
10457
|
+
},
|
10458
|
+
"UserData":{
|
10459
|
+
"shape":"String",
|
10460
|
+
"locationName":"userData"
|
10461
|
+
},
|
10462
|
+
"AddressingType":{
|
10463
|
+
"shape":"String",
|
10464
|
+
"locationName":"addressingType"
|
10465
|
+
},
|
10466
|
+
"InstanceType":{
|
10467
|
+
"shape":"InstanceType",
|
10468
|
+
"locationName":"instanceType"
|
10469
|
+
},
|
10470
|
+
"Placement":{
|
10471
|
+
"shape":"SpotPlacement",
|
10472
|
+
"locationName":"placement"
|
10473
|
+
},
|
10474
|
+
"KernelId":{
|
10475
|
+
"shape":"String",
|
10476
|
+
"locationName":"kernelId"
|
10477
|
+
},
|
10478
|
+
"RamdiskId":{
|
10479
|
+
"shape":"String",
|
10480
|
+
"locationName":"ramdiskId"
|
10481
|
+
},
|
10482
|
+
"BlockDeviceMappings":{
|
10483
|
+
"shape":"BlockDeviceMappingList",
|
10484
|
+
"locationName":"blockDeviceMapping"
|
10485
|
+
},
|
10486
|
+
"Monitoring":{
|
10487
|
+
"shape":"SpotFleetMonitoring",
|
10488
|
+
"locationName":"monitoring"
|
10489
|
+
},
|
10490
|
+
"SubnetId":{
|
10491
|
+
"shape":"String",
|
10492
|
+
"locationName":"subnetId"
|
10493
|
+
},
|
10494
|
+
"NetworkInterfaces":{
|
10495
|
+
"shape":"InstanceNetworkInterfaceSpecificationList",
|
10496
|
+
"locationName":"networkInterfaceSet"
|
10497
|
+
},
|
10498
|
+
"IamInstanceProfile":{
|
10499
|
+
"shape":"IamInstanceProfileSpecification",
|
10500
|
+
"locationName":"iamInstanceProfile"
|
10501
|
+
},
|
10502
|
+
"EbsOptimized":{
|
10503
|
+
"shape":"Boolean",
|
10504
|
+
"locationName":"ebsOptimized"
|
10505
|
+
}
|
10506
|
+
}
|
10507
|
+
},
|
10508
|
+
"SpotFleetMonitoring":{
|
10509
|
+
"type":"structure",
|
10510
|
+
"members":{
|
10511
|
+
"Enabled":{
|
10512
|
+
"shape":"Boolean",
|
10513
|
+
"locationName":"enabled"
|
10514
|
+
}
|
10515
|
+
}
|
10516
|
+
},
|
10455
10517
|
"SpotFleetRequestConfig":{
|
10456
10518
|
"type":"structure",
|
10457
10519
|
"required":[
|
@@ -1,4 +1,5 @@
|
|
1
1
|
{
|
2
|
+
"version":"2.0",
|
2
3
|
"metadata":{
|
3
4
|
"apiVersion":"2009-03-31",
|
4
5
|
"endpointPrefix":"elasticmapreduce",
|
@@ -451,6 +452,7 @@
|
|
451
452
|
"LogUri":{"shape":"String"},
|
452
453
|
"RequestedAmiVersion":{"shape":"String"},
|
453
454
|
"RunningAmiVersion":{"shape":"String"},
|
455
|
+
"ReleaseLabel":{"shape":"String"},
|
454
456
|
"AutoTerminate":{"shape":"Boolean"},
|
455
457
|
"TerminationProtected":{"shape":"Boolean"},
|
456
458
|
"VisibleToAllUsers":{"shape":"Boolean"},
|
@@ -458,7 +460,8 @@
|
|
458
460
|
"Tags":{"shape":"TagList"},
|
459
461
|
"ServiceRole":{"shape":"String"},
|
460
462
|
"NormalizedInstanceHours":{"shape":"Integer"},
|
461
|
-
"MasterPublicDnsName":{"shape":"String"}
|
463
|
+
"MasterPublicDnsName":{"shape":"String"},
|
464
|
+
"Configurations":{"shape":"ConfigurationList"}
|
462
465
|
}
|
463
466
|
},
|
464
467
|
"ClusterId":{"type":"string"},
|
@@ -538,6 +541,18 @@
|
|
538
541
|
"type":"list",
|
539
542
|
"member":{"shape":"Command"}
|
540
543
|
},
|
544
|
+
"Configuration":{
|
545
|
+
"type":"structure",
|
546
|
+
"members":{
|
547
|
+
"Classification":{"shape":"String"},
|
548
|
+
"Configurations":{"shape":"ConfigurationList"},
|
549
|
+
"Properties":{"shape":"StringMap"}
|
550
|
+
}
|
551
|
+
},
|
552
|
+
"ConfigurationList":{
|
553
|
+
"type":"list",
|
554
|
+
"member":{"shape":"Configuration"}
|
555
|
+
},
|
541
556
|
"Date":{"type":"timestamp"},
|
542
557
|
"DescribeClusterInput":{
|
543
558
|
"type":"structure",
|
@@ -649,7 +664,8 @@
|
|
649
664
|
"InstanceType":{"shape":"InstanceType"},
|
650
665
|
"RequestedInstanceCount":{"shape":"Integer"},
|
651
666
|
"RunningInstanceCount":{"shape":"Integer"},
|
652
|
-
"Status":{"shape":"InstanceGroupStatus"}
|
667
|
+
"Status":{"shape":"InstanceGroupStatus"},
|
668
|
+
"Configurations":{"shape":"ConfigurationList"}
|
653
669
|
}
|
654
670
|
},
|
655
671
|
"InstanceGroupConfig":{
|
@@ -665,7 +681,8 @@
|
|
665
681
|
"InstanceRole":{"shape":"InstanceRoleType"},
|
666
682
|
"BidPrice":{"shape":"XmlStringMaxLen256"},
|
667
683
|
"InstanceType":{"shape":"InstanceType"},
|
668
|
-
"InstanceCount":{"shape":"Integer"}
|
684
|
+
"InstanceCount":{"shape":"Integer"},
|
685
|
+
"Configurations":{"shape":"ConfigurationList"}
|
669
686
|
}
|
670
687
|
},
|
671
688
|
"InstanceGroupConfigList":{
|
@@ -1119,11 +1136,14 @@
|
|
1119
1136
|
"LogUri":{"shape":"XmlString"},
|
1120
1137
|
"AdditionalInfo":{"shape":"XmlString"},
|
1121
1138
|
"AmiVersion":{"shape":"XmlStringMaxLen256"},
|
1139
|
+
"ReleaseLabel":{"shape":"XmlStringMaxLen256"},
|
1122
1140
|
"Instances":{"shape":"JobFlowInstancesConfig"},
|
1123
1141
|
"Steps":{"shape":"StepConfigList"},
|
1124
1142
|
"BootstrapActions":{"shape":"BootstrapActionConfigList"},
|
1125
1143
|
"SupportedProducts":{"shape":"SupportedProductsList"},
|
1126
1144
|
"NewSupportedProducts":{"shape":"NewSupportedProductsList"},
|
1145
|
+
"Applications":{"shape":"ApplicationList"},
|
1146
|
+
"Configurations":{"shape":"ConfigurationList"},
|
1127
1147
|
"VisibleToAllUsers":{"shape":"Boolean"},
|
1128
1148
|
"JobFlowRole":{"shape":"XmlString"},
|
1129
1149
|
"ServiceRole":{"shape":"XmlString"},
|
@@ -40,6 +40,37 @@
|
|
40
40
|
}
|
41
41
|
]
|
42
42
|
},
|
43
|
+
"AbortVaultLock":{
|
44
|
+
"name":"AbortVaultLock",
|
45
|
+
"http":{
|
46
|
+
"method":"DELETE",
|
47
|
+
"requestUri":"/{accountId}/vaults/{vaultName}/lock-policy",
|
48
|
+
"responseCode":204
|
49
|
+
},
|
50
|
+
"input":{"shape":"AbortVaultLockInput"},
|
51
|
+
"errors":[
|
52
|
+
{
|
53
|
+
"shape":"ResourceNotFoundException",
|
54
|
+
"error":{"httpStatusCode":404},
|
55
|
+
"exception":true
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"shape":"InvalidParameterValueException",
|
59
|
+
"error":{"httpStatusCode":400},
|
60
|
+
"exception":true
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"shape":"MissingParameterValueException",
|
64
|
+
"error":{"httpStatusCode":400},
|
65
|
+
"exception":true
|
66
|
+
},
|
67
|
+
{
|
68
|
+
"shape":"ServiceUnavailableException",
|
69
|
+
"error":{"httpStatusCode":500},
|
70
|
+
"exception":true
|
71
|
+
}
|
72
|
+
]
|
73
|
+
},
|
43
74
|
"AddTagsToVault":{
|
44
75
|
"name":"AddTagsToVault",
|
45
76
|
"http":{
|
@@ -108,6 +139,37 @@
|
|
108
139
|
}
|
109
140
|
]
|
110
141
|
},
|
142
|
+
"CompleteVaultLock":{
|
143
|
+
"name":"CompleteVaultLock",
|
144
|
+
"http":{
|
145
|
+
"method":"POST",
|
146
|
+
"requestUri":"/{accountId}/vaults/{vaultName}/lock-policy/{lockId}",
|
147
|
+
"responseCode":204
|
148
|
+
},
|
149
|
+
"input":{"shape":"CompleteVaultLockInput"},
|
150
|
+
"errors":[
|
151
|
+
{
|
152
|
+
"shape":"ResourceNotFoundException",
|
153
|
+
"error":{"httpStatusCode":404},
|
154
|
+
"exception":true
|
155
|
+
},
|
156
|
+
{
|
157
|
+
"shape":"InvalidParameterValueException",
|
158
|
+
"error":{"httpStatusCode":400},
|
159
|
+
"exception":true
|
160
|
+
},
|
161
|
+
{
|
162
|
+
"shape":"MissingParameterValueException",
|
163
|
+
"error":{"httpStatusCode":400},
|
164
|
+
"exception":true
|
165
|
+
},
|
166
|
+
{
|
167
|
+
"shape":"ServiceUnavailableException",
|
168
|
+
"error":{"httpStatusCode":500},
|
169
|
+
"exception":true
|
170
|
+
}
|
171
|
+
]
|
172
|
+
},
|
111
173
|
"CreateVault":{
|
112
174
|
"name":"CreateVault",
|
113
175
|
"http":{
|
@@ -414,6 +476,37 @@
|
|
414
476
|
}
|
415
477
|
]
|
416
478
|
},
|
479
|
+
"GetVaultLock":{
|
480
|
+
"name":"GetVaultLock",
|
481
|
+
"http":{
|
482
|
+
"method":"GET",
|
483
|
+
"requestUri":"/{accountId}/vaults/{vaultName}/lock-policy"
|
484
|
+
},
|
485
|
+
"input":{"shape":"GetVaultLockInput"},
|
486
|
+
"output":{"shape":"GetVaultLockOutput"},
|
487
|
+
"errors":[
|
488
|
+
{
|
489
|
+
"shape":"ResourceNotFoundException",
|
490
|
+
"error":{"httpStatusCode":404},
|
491
|
+
"exception":true
|
492
|
+
},
|
493
|
+
{
|
494
|
+
"shape":"InvalidParameterValueException",
|
495
|
+
"error":{"httpStatusCode":400},
|
496
|
+
"exception":true
|
497
|
+
},
|
498
|
+
{
|
499
|
+
"shape":"MissingParameterValueException",
|
500
|
+
"error":{"httpStatusCode":400},
|
501
|
+
"exception":true
|
502
|
+
},
|
503
|
+
{
|
504
|
+
"shape":"ServiceUnavailableException",
|
505
|
+
"error":{"httpStatusCode":500},
|
506
|
+
"exception":true
|
507
|
+
}
|
508
|
+
]
|
509
|
+
},
|
417
510
|
"GetVaultNotifications":{
|
418
511
|
"name":"GetVaultNotifications",
|
419
512
|
"http":{
|
@@ -514,6 +607,38 @@
|
|
514
607
|
}
|
515
608
|
]
|
516
609
|
},
|
610
|
+
"InitiateVaultLock":{
|
611
|
+
"name":"InitiateVaultLock",
|
612
|
+
"http":{
|
613
|
+
"method":"POST",
|
614
|
+
"requestUri":"/{accountId}/vaults/{vaultName}/lock-policy",
|
615
|
+
"responseCode":201
|
616
|
+
},
|
617
|
+
"input":{"shape":"InitiateVaultLockInput"},
|
618
|
+
"output":{"shape":"InitiateVaultLockOutput"},
|
619
|
+
"errors":[
|
620
|
+
{
|
621
|
+
"shape":"ResourceNotFoundException",
|
622
|
+
"error":{"httpStatusCode":404},
|
623
|
+
"exception":true
|
624
|
+
},
|
625
|
+
{
|
626
|
+
"shape":"InvalidParameterValueException",
|
627
|
+
"error":{"httpStatusCode":400},
|
628
|
+
"exception":true
|
629
|
+
},
|
630
|
+
{
|
631
|
+
"shape":"MissingParameterValueException",
|
632
|
+
"error":{"httpStatusCode":400},
|
633
|
+
"exception":true
|
634
|
+
},
|
635
|
+
{
|
636
|
+
"shape":"ServiceUnavailableException",
|
637
|
+
"error":{"httpStatusCode":500},
|
638
|
+
"exception":true
|
639
|
+
}
|
640
|
+
]
|
641
|
+
},
|
517
642
|
"ListJobs":{
|
518
643
|
"name":"ListJobs",
|
519
644
|
"http":{
|
@@ -889,6 +1014,25 @@
|
|
889
1014
|
"uploadId"
|
890
1015
|
]
|
891
1016
|
},
|
1017
|
+
"AbortVaultLockInput":{
|
1018
|
+
"type":"structure",
|
1019
|
+
"members":{
|
1020
|
+
"accountId":{
|
1021
|
+
"shape":"string",
|
1022
|
+
"location":"uri",
|
1023
|
+
"locationName":"accountId"
|
1024
|
+
},
|
1025
|
+
"vaultName":{
|
1026
|
+
"shape":"string",
|
1027
|
+
"location":"uri",
|
1028
|
+
"locationName":"vaultName"
|
1029
|
+
}
|
1030
|
+
},
|
1031
|
+
"required":[
|
1032
|
+
"accountId",
|
1033
|
+
"vaultName"
|
1034
|
+
]
|
1035
|
+
},
|
892
1036
|
"ActionCode":{
|
893
1037
|
"type":"string",
|
894
1038
|
"enum":[
|
@@ -971,6 +1115,31 @@
|
|
971
1115
|
"uploadId"
|
972
1116
|
]
|
973
1117
|
},
|
1118
|
+
"CompleteVaultLockInput":{
|
1119
|
+
"type":"structure",
|
1120
|
+
"members":{
|
1121
|
+
"accountId":{
|
1122
|
+
"shape":"string",
|
1123
|
+
"location":"uri",
|
1124
|
+
"locationName":"accountId"
|
1125
|
+
},
|
1126
|
+
"vaultName":{
|
1127
|
+
"shape":"string",
|
1128
|
+
"location":"uri",
|
1129
|
+
"locationName":"vaultName"
|
1130
|
+
},
|
1131
|
+
"lockId":{
|
1132
|
+
"shape":"string",
|
1133
|
+
"location":"uri",
|
1134
|
+
"locationName":"lockId"
|
1135
|
+
}
|
1136
|
+
},
|
1137
|
+
"required":[
|
1138
|
+
"accountId",
|
1139
|
+
"vaultName",
|
1140
|
+
"lockId"
|
1141
|
+
]
|
1142
|
+
},
|
974
1143
|
"CreateVaultInput":{
|
975
1144
|
"type":"structure",
|
976
1145
|
"members":{
|
@@ -1264,6 +1433,34 @@
|
|
1264
1433
|
},
|
1265
1434
|
"payload":"policy"
|
1266
1435
|
},
|
1436
|
+
"GetVaultLockInput":{
|
1437
|
+
"type":"structure",
|
1438
|
+
"members":{
|
1439
|
+
"accountId":{
|
1440
|
+
"shape":"string",
|
1441
|
+
"location":"uri",
|
1442
|
+
"locationName":"accountId"
|
1443
|
+
},
|
1444
|
+
"vaultName":{
|
1445
|
+
"shape":"string",
|
1446
|
+
"location":"uri",
|
1447
|
+
"locationName":"vaultName"
|
1448
|
+
}
|
1449
|
+
},
|
1450
|
+
"required":[
|
1451
|
+
"accountId",
|
1452
|
+
"vaultName"
|
1453
|
+
]
|
1454
|
+
},
|
1455
|
+
"GetVaultLockOutput":{
|
1456
|
+
"type":"structure",
|
1457
|
+
"members":{
|
1458
|
+
"Policy":{"shape":"string"},
|
1459
|
+
"State":{"shape":"string"},
|
1460
|
+
"ExpirationDate":{"shape":"string"},
|
1461
|
+
"CreationDate":{"shape":"string"}
|
1462
|
+
}
|
1463
|
+
},
|
1267
1464
|
"GetVaultNotificationsInput":{
|
1268
1465
|
"type":"structure",
|
1269
1466
|
"members":{
|
@@ -1392,6 +1589,37 @@
|
|
1392
1589
|
}
|
1393
1590
|
}
|
1394
1591
|
},
|
1592
|
+
"InitiateVaultLockInput":{
|
1593
|
+
"type":"structure",
|
1594
|
+
"members":{
|
1595
|
+
"accountId":{
|
1596
|
+
"shape":"string",
|
1597
|
+
"location":"uri",
|
1598
|
+
"locationName":"accountId"
|
1599
|
+
},
|
1600
|
+
"vaultName":{
|
1601
|
+
"shape":"string",
|
1602
|
+
"location":"uri",
|
1603
|
+
"locationName":"vaultName"
|
1604
|
+
},
|
1605
|
+
"policy":{"shape":"VaultLockPolicy"}
|
1606
|
+
},
|
1607
|
+
"required":[
|
1608
|
+
"accountId",
|
1609
|
+
"vaultName"
|
1610
|
+
],
|
1611
|
+
"payload":"policy"
|
1612
|
+
},
|
1613
|
+
"InitiateVaultLockOutput":{
|
1614
|
+
"type":"structure",
|
1615
|
+
"members":{
|
1616
|
+
"lockId":{
|
1617
|
+
"shape":"string",
|
1618
|
+
"location":"header",
|
1619
|
+
"locationName":"x-amz-lock-id"
|
1620
|
+
}
|
1621
|
+
}
|
1622
|
+
},
|
1395
1623
|
"InvalidParameterValueException":{
|
1396
1624
|
"type":"structure",
|
1397
1625
|
"members":{
|
@@ -1895,6 +2123,12 @@
|
|
1895
2123
|
"type":"list",
|
1896
2124
|
"member":{"shape":"DescribeVaultOutput"}
|
1897
2125
|
},
|
2126
|
+
"VaultLockPolicy":{
|
2127
|
+
"type":"structure",
|
2128
|
+
"members":{
|
2129
|
+
"Policy":{"shape":"string"}
|
2130
|
+
}
|
2131
|
+
},
|
1898
2132
|
"VaultNotificationConfig":{
|
1899
2133
|
"type":"structure",
|
1900
2134
|
"members":{
|
@@ -102,6 +102,13 @@
|
|
102
102
|
"limit_key": "MaxItems",
|
103
103
|
"result_key": "Policies"
|
104
104
|
},
|
105
|
+
"ListPolicyVersions": {
|
106
|
+
"input_token": "Marker",
|
107
|
+
"output_token": "Marker",
|
108
|
+
"more_results": "IsTruncated",
|
109
|
+
"limit_key": "MaxItems",
|
110
|
+
"result_key": "Versions"
|
111
|
+
},
|
105
112
|
"ListRolePolicies": {
|
106
113
|
"input_token": "Marker",
|
107
114
|
"output_token": "Marker",
|
@@ -729,6 +729,14 @@
|
|
729
729
|
}
|
730
730
|
}
|
731
731
|
},
|
732
|
+
"waiters": {
|
733
|
+
"Exists": {
|
734
|
+
"waiterName": "InstanceProfileExists",
|
735
|
+
"params": [
|
736
|
+
{ "target": "InstanceProfileName", "source": "identifier", "name": "Name" }
|
737
|
+
]
|
738
|
+
}
|
739
|
+
},
|
732
740
|
"has": {
|
733
741
|
"Roles": {
|
734
742
|
"resource": {
|
@@ -1,6 +1,23 @@
|
|
1
1
|
{
|
2
2
|
"version": 2,
|
3
3
|
"waiters": {
|
4
|
+
"InstanceProfileExists": {
|
5
|
+
"delay": 1,
|
6
|
+
"operation": "GetInstanceProfile",
|
7
|
+
"maxAttempts": 40,
|
8
|
+
"acceptors": [
|
9
|
+
{
|
10
|
+
"expected": 200,
|
11
|
+
"matcher": "status",
|
12
|
+
"state": "success"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"state": "retry",
|
16
|
+
"matcher": "status",
|
17
|
+
"expected": 404
|
18
|
+
}
|
19
|
+
]
|
20
|
+
},
|
4
21
|
"UserExists": {
|
5
22
|
"delay": 1,
|
6
23
|
"operation": "GetUser",
|
@@ -1,6 +1,23 @@
|
|
1
1
|
{
|
2
2
|
"version": 2,
|
3
3
|
"waiters": {
|
4
|
+
"AppExists": {
|
5
|
+
"delay": 1,
|
6
|
+
"operation": "DescribeApps",
|
7
|
+
"maxAttempts": 40,
|
8
|
+
"acceptors": [
|
9
|
+
{
|
10
|
+
"expected": 200,
|
11
|
+
"matcher": "status",
|
12
|
+
"state": "success"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"matcher": "status",
|
16
|
+
"expected": 400,
|
17
|
+
"state": "failure"
|
18
|
+
}
|
19
|
+
]
|
20
|
+
},
|
4
21
|
"InstanceOnline": {
|
5
22
|
"delay": 15,
|
6
23
|
"operation": "DescribeInstances",
|
data/lib/aws-sdk-core.rb
CHANGED
@@ -7,6 +7,7 @@ Seahorse::Util.irregular_inflections({
|
|
7
7
|
'Ec2' => 'ec2',
|
8
8
|
'ElastiCache' => 'elasticache',
|
9
9
|
'iSCSI' => 'iscsi',
|
10
|
+
#'SSEKMS' => 'sse_kms',
|
10
11
|
})
|
11
12
|
|
12
13
|
module Aws
|
@@ -120,6 +121,7 @@ module Aws
|
|
120
121
|
autoload :ParamFormatter, 'aws-sdk-core/api/docs/param_formatter'
|
121
122
|
autoload :RequestSyntaxExample, 'aws-sdk-core/api/docs/request_syntax_example'
|
122
123
|
autoload :ResponseStructureExample, 'aws-sdk-core/api/docs/response_structure_example'
|
124
|
+
autoload :SharedExample, 'aws-sdk-core/api/docs/shared_example'
|
123
125
|
autoload :Utils, 'aws-sdk-core/api/docs/utils'
|
124
126
|
end
|
125
127
|
end
|
@@ -205,8 +207,9 @@ module Aws
|
|
205
207
|
# @api private
|
206
208
|
module Stubbing
|
207
209
|
autoload :EmptyStub, 'aws-sdk-core/stubbing/empty_stub'
|
208
|
-
autoload :StubData, 'aws-sdk-core/stubbing/stub_data'
|
209
210
|
autoload :DataApplicator, 'aws-sdk-core/stubbing/data_applicator'
|
211
|
+
autoload :StubData, 'aws-sdk-core/stubbing/stub_data'
|
212
|
+
autoload :XmlError, 'aws-sdk-core/stubbing/xml_error'
|
210
213
|
module Protocols
|
211
214
|
autoload :EC2, 'aws-sdk-core/stubbing/protocols/ec2'
|
212
215
|
autoload :Json, 'aws-sdk-core/stubbing/protocols/json'
|
@@ -25,15 +25,6 @@ module Aws
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def apply_plugins(client_class)
|
28
|
-
protocol = client_class.api.metadata['protocol']
|
29
|
-
plugin = case protocol
|
30
|
-
when 'ec2' then Aws::Plugins::Protocols::EC2
|
31
|
-
when 'query' then Aws::Plugins::Protocols::Query
|
32
|
-
when 'json' then Aws::Plugins::Protocols::JsonRpc
|
33
|
-
when 'rest-json' then Aws::Plugins::Protocols::RestJson
|
34
|
-
when 'rest-xml' then Aws::Plugins::Protocols::RestXml
|
35
|
-
end
|
36
|
-
client_class.add_plugin(plugin) if plugin
|
37
28
|
prefix = client_class.api.metadata['endpointPrefix']
|
38
29
|
if @plugins[prefix]
|
39
30
|
@plugins[prefix][:add].each { |p| client_class.add_plugin(p) }
|
@@ -64,12 +64,40 @@ module Aws
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def example_tags(method_name, operation)
|
67
|
-
|
67
|
+
shared_examples(method_name, operation) +
|
68
|
+
examples_from_disk(method_name, operation) +
|
69
|
+
[
|
68
70
|
request_syntax_example(method_name, operation),
|
69
71
|
response_structure_example(method_name, operation),
|
70
72
|
].compact
|
71
73
|
end
|
72
74
|
|
75
|
+
def shared_examples(method_name, operation)
|
76
|
+
if operation['examples']
|
77
|
+
operation['examples'].map do |example|
|
78
|
+
shared_example(example, method_name, operation)
|
79
|
+
end
|
80
|
+
else
|
81
|
+
[]
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def shared_example(json_ex, method_name, operation)
|
86
|
+
input_comments = json_ex['comments']['input']
|
87
|
+
input = SharedExample.new(json_ex['input'], method_name, operation, input_comments).to_str_input
|
88
|
+
parts = []
|
89
|
+
parts << "@example Example: #{json_ex['title']}\n\n"
|
90
|
+
parts << " # #{json_ex['description']}\n\n"
|
91
|
+
parts += input.lines.map { |line| " " + line }
|
92
|
+
if json_ex['output']
|
93
|
+
output_comments = json_ex['comments']['output']
|
94
|
+
output = SharedExample.new(json_ex['output'], method_name, operation, output_comments).to_str_output
|
95
|
+
parts << "\n\n # resp.to_h outputs the following:\n"
|
96
|
+
parts += output.lines.map { |line| " " + line }
|
97
|
+
end
|
98
|
+
tag(parts.join)
|
99
|
+
end
|
100
|
+
|
73
101
|
def examples_from_disk(method_name, operation)
|
74
102
|
dir = "examples/#{@service_name.downcase}/client/#{method_name}/*.rb"
|
75
103
|
Dir.glob(dir).map do |path|
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module Aws
|
2
|
+
module Api
|
3
|
+
module Docs
|
4
|
+
class SharedExample
|
5
|
+
|
6
|
+
include Utils
|
7
|
+
include Seahorse::Model::Shapes
|
8
|
+
|
9
|
+
def initialize(params, method_name, operation, comments)
|
10
|
+
@params = params
|
11
|
+
@method_name = method_name
|
12
|
+
@operation = operation
|
13
|
+
@comments = comments
|
14
|
+
end
|
15
|
+
|
16
|
+
def to_str_input
|
17
|
+
lines = structure(@params, @operation.input, "", [])
|
18
|
+
params = lines.join("\n")
|
19
|
+
"resp = client.#{@method_name}(#{params})"
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_str_output
|
23
|
+
lines = structure(@params, @operation.output, "", [])
|
24
|
+
params = lines.join("\n")
|
25
|
+
"#{params}"
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def entry(json, ref, indent, path)
|
31
|
+
case ref.shape
|
32
|
+
when StructureShape then structure(json, ref, indent, path)
|
33
|
+
when MapShape then map(json, ref, indent, path)
|
34
|
+
when ListShape then list(json, ref, indent, path)
|
35
|
+
when TimestampShape then "Time.parse(#{json.inspect})"
|
36
|
+
when StringShape, BlobShape then json.inspect
|
37
|
+
else json
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def structure(json, ref, indent, path)
|
42
|
+
lines = ["{"]
|
43
|
+
json.each do |key, val|
|
44
|
+
path << ".#{key}"
|
45
|
+
sc_key = Seahorse::Util.underscore(key)
|
46
|
+
shape_val = entry(val, ref.shape.member(sc_key), "#{indent} ", path)
|
47
|
+
if shape_val.is_a?(Array)
|
48
|
+
shape_val = shape_val.join("\n")
|
49
|
+
end
|
50
|
+
lines << "#{indent} #{sc_key}: #{shape_val}, #{apply_comments(path)}"
|
51
|
+
path.pop
|
52
|
+
end
|
53
|
+
lines << "#{indent}}"
|
54
|
+
lines
|
55
|
+
end
|
56
|
+
|
57
|
+
def map(json, ref, indent, path)
|
58
|
+
lines = ["{"]
|
59
|
+
json.each do |key, val|
|
60
|
+
path << ".#{key}"
|
61
|
+
shape_val = entry(val, ref.shape.value, "#{indent} ", path)
|
62
|
+
if shape_val.is_a?(Array)
|
63
|
+
shape_val = shape_val.join("\n")
|
64
|
+
end
|
65
|
+
lines << "#{indent} \"#{key}\" => #{shape_val}, #{apply_comments(path)}"
|
66
|
+
path.pop
|
67
|
+
end
|
68
|
+
lines << "#{indent}}"
|
69
|
+
lines
|
70
|
+
end
|
71
|
+
|
72
|
+
def list(json, ref, indent, path)
|
73
|
+
lines = ["["]
|
74
|
+
json.each_with_index do |member, index|
|
75
|
+
path << "[#{index}]"
|
76
|
+
shape_val = entry(member, ref.shape.member, "#{indent} ", path)
|
77
|
+
if shape_val.is_a?(Array)
|
78
|
+
shape_val = shape_val.join("\n")
|
79
|
+
end
|
80
|
+
lines << "#{indent} #{shape_val}, #{apply_comments(path)}"
|
81
|
+
path.pop
|
82
|
+
end
|
83
|
+
lines << "#{indent}]"
|
84
|
+
lines
|
85
|
+
end
|
86
|
+
|
87
|
+
def apply_comments(path)
|
88
|
+
key = path.join().sub(/^\./, '')
|
89
|
+
if @comments && @comments[key]
|
90
|
+
"# #{@comments[key]}"
|
91
|
+
else
|
92
|
+
""
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
data/lib/aws-sdk-core/client.rb
CHANGED
@@ -17,6 +17,15 @@ module Aws
|
|
17
17
|
'Aws::Plugins::StubResponses',
|
18
18
|
]
|
19
19
|
|
20
|
+
# @api private
|
21
|
+
PROTOCOL_PLUGINS = Hash.new(DEFAULT_PLUGINS).merge({
|
22
|
+
'json' => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::JsonRpc),
|
23
|
+
'rest-json' => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::RestJson),
|
24
|
+
'rest-xml' => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::RestXml),
|
25
|
+
'query' => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::Query),
|
26
|
+
'ec2' => DEFAULT_PLUGINS + %w(Aws::Plugins::Protocols::EC2),
|
27
|
+
})
|
28
|
+
|
20
29
|
include ClientStubs
|
21
30
|
include ClientWaiters
|
22
31
|
|
@@ -32,10 +41,14 @@ module Aws
|
|
32
41
|
client_class.identifier = svc_name.downcase.to_sym
|
33
42
|
client_class.set_api(Api::Builder.build(options[:api], options))
|
34
43
|
client_class.set_waiters(options[:waiters])
|
35
|
-
|
44
|
+
|
45
|
+
protocol = client_class.api.metadata['protocol']
|
46
|
+
PROTOCOL_PLUGINS[protocol].each do |plugin|
|
36
47
|
client_class.add_plugin(plugin)
|
37
48
|
end
|
49
|
+
|
38
50
|
Api::Customizations.apply_plugins(client_class)
|
51
|
+
|
39
52
|
client_class
|
40
53
|
end
|
41
54
|
|
@@ -33,6 +33,7 @@ module Aws
|
|
33
33
|
list[:l] << format(value)
|
34
34
|
end
|
35
35
|
when String then { s: obj }
|
36
|
+
when Symbol then { s: obj.to_s }
|
36
37
|
when Numeric then { n: obj.to_s }
|
37
38
|
when StringIO, IO then { b: obj }
|
38
39
|
when Set then format_set(obj)
|
@@ -49,7 +50,7 @@ module Aws
|
|
49
50
|
|
50
51
|
def format_set(set)
|
51
52
|
case set.first
|
52
|
-
when String then { ss: set.map(&:to_s) }
|
53
|
+
when String, Symbol then { ss: set.map(&:to_s) }
|
53
54
|
when Numeric then { ns: set.map(&:to_s) }
|
54
55
|
when StringIO, IO then { bs: set.to_a }
|
55
56
|
else
|
@@ -73,6 +73,15 @@ module Aws
|
|
73
73
|
AssumeRoleWithWebIdentity
|
74
74
|
))
|
75
75
|
|
76
|
+
COGNITO_IDENTITY_UNSIGNED_REQUESTS = Set.new(%w(
|
77
|
+
GetCredentialsForIdentity
|
78
|
+
GetId
|
79
|
+
GetOpenIdToken
|
80
|
+
ListIdentityPools
|
81
|
+
UnlinkDeveloperIdentity
|
82
|
+
UnlinkIdentity
|
83
|
+
))
|
84
|
+
|
76
85
|
def call(context)
|
77
86
|
sign_authenticated_requests(context) unless unsigned_request?(context)
|
78
87
|
@handler.call(context)
|
@@ -105,6 +114,8 @@ module Aws
|
|
105
114
|
STS_UNSIGNED_REQUESTS.include?(context.operation.name)
|
106
115
|
elsif context.config.api.metadata['endpointPrefix'] == 'cloudsearchdomain'
|
107
116
|
context.config.credentials.nil? || !context.config.credentials.set?
|
117
|
+
elsif context.config.api.metadata['endpointPrefix'] == 'cognito-identity'
|
118
|
+
COGNITO_IDENTITY_UNSIGNED_REQUESTS.include?(context.operation.name)
|
108
119
|
else
|
109
120
|
false
|
110
121
|
end
|
@@ -16,14 +16,7 @@ module Aws
|
|
16
16
|
def stub_error(error_code)
|
17
17
|
http_resp = Seahorse::Client::Http::Response.new
|
18
18
|
http_resp.status_code = 400
|
19
|
-
http_resp.body =
|
20
|
-
<ErrorResponse>
|
21
|
-
<Error>
|
22
|
-
<Code>#{error_code}</Code>
|
23
|
-
<Message>stubbed-response-error-message</Message>
|
24
|
-
</Error>
|
25
|
-
</ErrorResponse>
|
26
|
-
XML
|
19
|
+
http_resp.body = XmlError.new(error_code).to_xml
|
27
20
|
http_resp
|
28
21
|
end
|
29
22
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Aws
|
2
|
+
module Stubbing
|
3
|
+
class XmlError
|
4
|
+
|
5
|
+
def initialize(error_code)
|
6
|
+
@error_code = error_code
|
7
|
+
end
|
8
|
+
|
9
|
+
def to_xml
|
10
|
+
<<-XML.strip
|
11
|
+
<ErrorResponse>
|
12
|
+
<Error>
|
13
|
+
<Code>#{@error_code}</Code>
|
14
|
+
<Message>stubbed-response-error-message</Message>
|
15
|
+
</Error>
|
16
|
+
</ErrorResponse>
|
17
|
+
XML
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/aws-sdk-core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-sdk-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Amazon Web Services
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jmespath
|
@@ -168,6 +168,7 @@ files:
|
|
168
168
|
- lib/aws-sdk-core/api/docs/param_formatter.rb
|
169
169
|
- lib/aws-sdk-core/api/docs/request_syntax_example.rb
|
170
170
|
- lib/aws-sdk-core/api/docs/response_structure_example.rb
|
171
|
+
- lib/aws-sdk-core/api/docs/shared_example.rb
|
171
172
|
- lib/aws-sdk-core/api/docs/utils.rb
|
172
173
|
- lib/aws-sdk-core/api/shape_map.rb
|
173
174
|
- lib/aws-sdk-core/assume_role_credentials.rb
|
@@ -315,6 +316,7 @@ files:
|
|
315
316
|
- lib/aws-sdk-core/stubbing/protocols/rest_json.rb
|
316
317
|
- lib/aws-sdk-core/stubbing/protocols/rest_xml.rb
|
317
318
|
- lib/aws-sdk-core/stubbing/stub_data.rb
|
319
|
+
- lib/aws-sdk-core/stubbing/xml_error.rb
|
318
320
|
- lib/aws-sdk-core/support.rb
|
319
321
|
- lib/aws-sdk-core/swf.rb
|
320
322
|
- lib/aws-sdk-core/tree_hash.rb
|