@jjrawlins/cdk-iam-policy-builder-helper 0.0.81 → 0.0.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +3 -3
- package/cdkiampolicybuilderhelper/jsii/jsii.go +2 -2
- package/cdkiampolicybuilderhelper/version +1 -1
- package/lib/constructs/Actions.d.ts +26 -0
- package/lib/constructs/Actions.js +27 -1
- package/lib/constructs/ManagedPolicies.d.ts +16 -0
- package/lib/constructs/ManagedPolicies.js +17 -1
- package/methods_list.txt +24 -0
- package/node_modules/@aws-sdk/client-iam/package.json +5 -5
- package/node_modules/@aws-sdk/client-sso/package.json +4 -4
- package/node_modules/@aws-sdk/core/dist-cjs/index.js +44 -17
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +44 -17
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +19 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js +4 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +4 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +13 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ProtocolLib.d.ts +7 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +3 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +11 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/AwsQueryProtocol.d.ts +3 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +3 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +7 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +6 -0
- package/node_modules/@aws-sdk/core/package.json +1 -1
- package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +8 -8
- package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
- package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
- package/node_modules/@aws-sdk/token-providers/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +0 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/SmithyRpcV2CborProtocol.js +0 -1
- package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js +3 -0
- package/node_modules/@smithy/core/package.json +2 -2
- package/node_modules/@smithy/middleware-endpoint/package.json +3 -3
- package/node_modules/@smithy/middleware-retry/package.json +2 -2
- package/node_modules/@smithy/middleware-serde/dist-cjs/index.js +3 -0
- package/node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js +3 -0
- package/node_modules/@smithy/middleware-serde/package.json +1 -1
- package/node_modules/@smithy/smithy-client/package.json +3 -3
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
- package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
- package/package.json +2 -2
package/methods_list.txt
CHANGED
|
@@ -229,6 +229,21 @@ aiops:UpdateInvestigationEvent
|
|
|
229
229
|
aiops:UpdateInvestigationGroup
|
|
230
230
|
aiops:UpdateReport
|
|
231
231
|
aiops:ValidateInvestigationGroup
|
|
232
|
+
airflow-serverless:CreateWorkflow
|
|
233
|
+
airflow-serverless:DeleteWorkflow
|
|
234
|
+
airflow-serverless:GetTaskInstance
|
|
235
|
+
airflow-serverless:GetWorkflow
|
|
236
|
+
airflow-serverless:GetWorkflowRun
|
|
237
|
+
airflow-serverless:ListTagsForResource
|
|
238
|
+
airflow-serverless:ListTaskInstances
|
|
239
|
+
airflow-serverless:ListWorkflowRuns
|
|
240
|
+
airflow-serverless:ListWorkflows
|
|
241
|
+
airflow-serverless:ListWorkflowVersions
|
|
242
|
+
airflow-serverless:StartWorkflowRun
|
|
243
|
+
airflow-serverless:StopWorkflowRun
|
|
244
|
+
airflow-serverless:TagResource
|
|
245
|
+
airflow-serverless:UntagResource
|
|
246
|
+
airflow-serverless:UpdateWorkflow
|
|
232
247
|
airflow:CreateCliToken
|
|
233
248
|
airflow:CreateEnvironment
|
|
234
249
|
airflow:CreateWebLoginToken
|
|
@@ -2838,6 +2853,7 @@ cloudformation:EstimateTemplateCost
|
|
|
2838
2853
|
cloudformation:ExecuteChangeSet
|
|
2839
2854
|
cloudformation:ExecuteStackRefactor
|
|
2840
2855
|
cloudformation:GetGeneratedTemplate
|
|
2856
|
+
cloudformation:GetHookResult
|
|
2841
2857
|
cloudformation:GetResource
|
|
2842
2858
|
cloudformation:GetResourceRequestStatus
|
|
2843
2859
|
cloudformation:GetStackPolicy
|
|
@@ -8290,6 +8306,7 @@ glue:DescribeConnectionType
|
|
|
8290
8306
|
glue:DescribeEntity
|
|
8291
8307
|
glue:DescribeInboundIntegrations
|
|
8292
8308
|
glue:DescribeIntegrations
|
|
8309
|
+
glue:FederateAuthorization
|
|
8293
8310
|
glue:GetBlueprint
|
|
8294
8311
|
glue:GetBlueprintRun
|
|
8295
8312
|
glue:GetBlueprintRuns
|
|
@@ -8792,10 +8809,12 @@ health:DescribeHealthServiceStatusForOrganization
|
|
|
8792
8809
|
health:DisableHealthServiceAccessForOrganization
|
|
8793
8810
|
health:EnableHealthServiceAccessForOrganization
|
|
8794
8811
|
healthlake:CancelFHIRExportJobWithDelete
|
|
8812
|
+
healthlake:ConfirmAttributionList
|
|
8795
8813
|
healthlake:CreateFHIRDatastore
|
|
8796
8814
|
healthlake:CreateResource
|
|
8797
8815
|
healthlake:DeleteFHIRDatastore
|
|
8798
8816
|
healthlake:DeleteResource
|
|
8817
|
+
healthlake:DescribeFHIRBulkDeleteJob
|
|
8799
8818
|
healthlake:DescribeFHIRDatastore
|
|
8800
8819
|
healthlake:DescribeFHIRExportJob
|
|
8801
8820
|
healthlake:DescribeFHIRExportJobWithGet
|
|
@@ -8813,12 +8832,17 @@ healthlake:ListFHIRImportJobs
|
|
|
8813
8832
|
healthlake:ListTagsForResource
|
|
8814
8833
|
healthlake:LookupCodeSystemWithGet
|
|
8815
8834
|
healthlake:LookupCodeSystemWithPost
|
|
8835
|
+
healthlake:MemberAdd
|
|
8836
|
+
healthlake:MemberMatch
|
|
8837
|
+
healthlake:MemberRemove
|
|
8816
8838
|
healthlake:PatchResource
|
|
8817
8839
|
healthlake:ProcessBundle
|
|
8818
8840
|
healthlake:ReadResource
|
|
8841
|
+
healthlake:RetrieveAttributionStatus
|
|
8819
8842
|
healthlake:SearchEverything
|
|
8820
8843
|
healthlake:SearchWithGet
|
|
8821
8844
|
healthlake:SearchWithPost
|
|
8845
|
+
healthlake:StartFHIRBulkDeleteJob
|
|
8822
8846
|
healthlake:StartFHIRExportJob
|
|
8823
8847
|
healthlake:StartFHIRExportJobWithGet
|
|
8824
8848
|
healthlake:StartFHIRExportJobWithPost
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-iam",
|
|
3
3
|
"description": "AWS SDK for JavaScript Iam Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.932.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-iam",
|
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@aws-crypto/sha256-browser": "5.2.0",
|
|
22
22
|
"@aws-crypto/sha256-js": "5.2.0",
|
|
23
|
-
"@aws-sdk/core": "3.
|
|
24
|
-
"@aws-sdk/credential-provider-node": "3.
|
|
23
|
+
"@aws-sdk/core": "3.932.0",
|
|
24
|
+
"@aws-sdk/credential-provider-node": "3.932.0",
|
|
25
25
|
"@aws-sdk/middleware-host-header": "3.930.0",
|
|
26
26
|
"@aws-sdk/middleware-logger": "3.930.0",
|
|
27
27
|
"@aws-sdk/middleware-recursion-detection": "3.930.0",
|
|
28
|
-
"@aws-sdk/middleware-user-agent": "3.
|
|
28
|
+
"@aws-sdk/middleware-user-agent": "3.932.0",
|
|
29
29
|
"@aws-sdk/region-config-resolver": "3.930.0",
|
|
30
30
|
"@aws-sdk/types": "3.930.0",
|
|
31
31
|
"@aws-sdk/util-endpoints": "3.930.0",
|
|
32
32
|
"@aws-sdk/util-user-agent-browser": "3.930.0",
|
|
33
|
-
"@aws-sdk/util-user-agent-node": "3.
|
|
33
|
+
"@aws-sdk/util-user-agent-node": "3.932.0",
|
|
34
34
|
"@smithy/config-resolver": "^4.4.3",
|
|
35
35
|
"@smithy/core": "^3.18.2",
|
|
36
36
|
"@smithy/fetch-http-handler": "^5.3.6",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/client-sso",
|
|
3
3
|
"description": "AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.932.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
|
|
7
7
|
"build:cjs": "node ../../scripts/compilation/inline client-sso",
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@aws-crypto/sha256-browser": "5.2.0",
|
|
22
22
|
"@aws-crypto/sha256-js": "5.2.0",
|
|
23
|
-
"@aws-sdk/core": "3.
|
|
23
|
+
"@aws-sdk/core": "3.932.0",
|
|
24
24
|
"@aws-sdk/middleware-host-header": "3.930.0",
|
|
25
25
|
"@aws-sdk/middleware-logger": "3.930.0",
|
|
26
26
|
"@aws-sdk/middleware-recursion-detection": "3.930.0",
|
|
27
|
-
"@aws-sdk/middleware-user-agent": "3.
|
|
27
|
+
"@aws-sdk/middleware-user-agent": "3.932.0",
|
|
28
28
|
"@aws-sdk/region-config-resolver": "3.930.0",
|
|
29
29
|
"@aws-sdk/types": "3.930.0",
|
|
30
30
|
"@aws-sdk/util-endpoints": "3.930.0",
|
|
31
31
|
"@aws-sdk/util-user-agent-browser": "3.930.0",
|
|
32
|
-
"@aws-sdk/util-user-agent-node": "3.
|
|
32
|
+
"@aws-sdk/util-user-agent-node": "3.932.0",
|
|
33
33
|
"@smithy/config-resolver": "^4.4.3",
|
|
34
34
|
"@smithy/core": "^3.18.2",
|
|
35
35
|
"@smithy/fetch-http-handler": "^5.3.6",
|
|
@@ -7,10 +7,10 @@ var client = require('@aws-sdk/core/client');
|
|
|
7
7
|
var signatureV4 = require('@smithy/signature-v4');
|
|
8
8
|
var cbor = require('@smithy/core/cbor');
|
|
9
9
|
var schema = require('@smithy/core/schema');
|
|
10
|
+
var smithyClient = require('@smithy/smithy-client');
|
|
10
11
|
var protocols = require('@smithy/core/protocols');
|
|
11
12
|
var serde = require('@smithy/core/serde');
|
|
12
13
|
var utilBase64 = require('@smithy/util-base64');
|
|
13
|
-
var smithyClient = require('@smithy/smithy-client');
|
|
14
14
|
var utilUtf8 = require('@smithy/util-utf8');
|
|
15
15
|
var xmlBuilder = require('@aws-sdk/xml-builder');
|
|
16
16
|
|
|
@@ -340,6 +340,10 @@ function bindCallerConfig(config, credentialsProvider) {
|
|
|
340
340
|
}
|
|
341
341
|
|
|
342
342
|
class ProtocolLib {
|
|
343
|
+
queryCompat;
|
|
344
|
+
constructor(queryCompat = false) {
|
|
345
|
+
this.queryCompat = queryCompat;
|
|
346
|
+
}
|
|
343
347
|
resolveRestContentType(defaultContentType, inputSchema) {
|
|
344
348
|
const members = inputSchema.getMemberSchemas();
|
|
345
349
|
const httpPayloadMember = Object.values(members).find((m) => {
|
|
@@ -379,7 +383,6 @@ class ProtocolLib {
|
|
|
379
383
|
}
|
|
380
384
|
const errorMetadata = {
|
|
381
385
|
$metadata: metadata,
|
|
382
|
-
$response: response,
|
|
383
386
|
$fault: response.statusCode < 500 ? "client" : "server",
|
|
384
387
|
};
|
|
385
388
|
const registry = schema.TypeRegistry.for(namespace);
|
|
@@ -393,11 +396,23 @@ class ProtocolLib {
|
|
|
393
396
|
const baseExceptionSchema = synthetic.getBaseException();
|
|
394
397
|
if (baseExceptionSchema) {
|
|
395
398
|
const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;
|
|
396
|
-
throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);
|
|
399
|
+
throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);
|
|
397
400
|
}
|
|
398
|
-
throw Object.assign(new Error(errorName), errorMetadata, dataObject);
|
|
401
|
+
throw this.decorateServiceException(Object.assign(new Error(errorName), errorMetadata), dataObject);
|
|
399
402
|
}
|
|
400
403
|
}
|
|
404
|
+
decorateServiceException(exception, additions = {}) {
|
|
405
|
+
if (this.queryCompat) {
|
|
406
|
+
const msg = exception.Message ?? additions.Message;
|
|
407
|
+
const error = smithyClient.decorateServiceException(exception, additions);
|
|
408
|
+
if (msg) {
|
|
409
|
+
error.Message = msg;
|
|
410
|
+
error.message = msg;
|
|
411
|
+
}
|
|
412
|
+
return error;
|
|
413
|
+
}
|
|
414
|
+
return smithyClient.decorateServiceException(exception, additions);
|
|
415
|
+
}
|
|
401
416
|
setQueryCompatError(output, response) {
|
|
402
417
|
const queryErrorHeader = response.headers?.["x-amzn-query-error"];
|
|
403
418
|
if (output !== undefined && queryErrorHeader != null) {
|
|
@@ -430,10 +445,11 @@ class ProtocolLib {
|
|
|
430
445
|
|
|
431
446
|
class AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {
|
|
432
447
|
awsQueryCompatible;
|
|
433
|
-
mixin
|
|
448
|
+
mixin;
|
|
434
449
|
constructor({ defaultNamespace, awsQueryCompatible, }) {
|
|
435
450
|
super({ defaultNamespace });
|
|
436
451
|
this.awsQueryCompatible = !!awsQueryCompatible;
|
|
452
|
+
this.mixin = new ProtocolLib(this.awsQueryCompatible);
|
|
437
453
|
}
|
|
438
454
|
async serializeRequest(operationSchema, input, context) {
|
|
439
455
|
const request = await super.serializeRequest(operationSchema, input, context);
|
|
@@ -459,10 +475,10 @@ class AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {
|
|
|
459
475
|
if (this.awsQueryCompatible) {
|
|
460
476
|
this.mixin.queryCompatOutput(dataObject, output);
|
|
461
477
|
}
|
|
462
|
-
throw Object.assign(exception, errorMetadata, {
|
|
478
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
463
479
|
$fault: ns.getMergedTraits().error,
|
|
464
480
|
message,
|
|
465
|
-
}, output);
|
|
481
|
+
}, output), dataObject);
|
|
466
482
|
}
|
|
467
483
|
}
|
|
468
484
|
|
|
@@ -907,7 +923,7 @@ class AwsJsonRpcProtocol extends protocols.RpcProtocol {
|
|
|
907
923
|
deserializer;
|
|
908
924
|
serviceTarget;
|
|
909
925
|
codec;
|
|
910
|
-
mixin
|
|
926
|
+
mixin;
|
|
911
927
|
awsQueryCompatible;
|
|
912
928
|
constructor({ defaultNamespace, serviceTarget, awsQueryCompatible, }) {
|
|
913
929
|
super({
|
|
@@ -924,6 +940,7 @@ class AwsJsonRpcProtocol extends protocols.RpcProtocol {
|
|
|
924
940
|
this.serializer = this.codec.createSerializer();
|
|
925
941
|
this.deserializer = this.codec.createDeserializer();
|
|
926
942
|
this.awsQueryCompatible = !!awsQueryCompatible;
|
|
943
|
+
this.mixin = new ProtocolLib(this.awsQueryCompatible);
|
|
927
944
|
}
|
|
928
945
|
async serializeRequest(operationSchema, input, context) {
|
|
929
946
|
const request = await super.serializeRequest(operationSchema, input, context);
|
|
@@ -963,10 +980,10 @@ class AwsJsonRpcProtocol extends protocols.RpcProtocol {
|
|
|
963
980
|
if (this.awsQueryCompatible) {
|
|
964
981
|
this.mixin.queryCompatOutput(dataObject, output);
|
|
965
982
|
}
|
|
966
|
-
throw Object.assign(exception, errorMetadata, {
|
|
983
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
967
984
|
$fault: ns.getMergedTraits().error,
|
|
968
985
|
message,
|
|
969
|
-
}, output);
|
|
986
|
+
}, output), dataObject);
|
|
970
987
|
}
|
|
971
988
|
}
|
|
972
989
|
|
|
@@ -1048,11 +1065,21 @@ class AwsRestJsonProtocol extends protocols.HttpBindingProtocol {
|
|
|
1048
1065
|
request.headers["content-type"] = contentType;
|
|
1049
1066
|
}
|
|
1050
1067
|
}
|
|
1051
|
-
if (request.headers["content-type"]
|
|
1068
|
+
if (request.body == null && request.headers["content-type"] === this.getDefaultContentType()) {
|
|
1052
1069
|
request.body = "{}";
|
|
1053
1070
|
}
|
|
1054
1071
|
return request;
|
|
1055
1072
|
}
|
|
1073
|
+
async deserializeResponse(operationSchema, context, response) {
|
|
1074
|
+
const output = await super.deserializeResponse(operationSchema, context, response);
|
|
1075
|
+
const outputSchema = schema.NormalizedSchema.of(operationSchema.output);
|
|
1076
|
+
for (const [name, member] of outputSchema.structIterator()) {
|
|
1077
|
+
if (member.getMemberTraits().httpPayload && !(name in output)) {
|
|
1078
|
+
output[name] = null;
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
return output;
|
|
1082
|
+
}
|
|
1056
1083
|
async handleError(operationSchema, context, response, dataObject, metadata) {
|
|
1057
1084
|
const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? "Unknown";
|
|
1058
1085
|
const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);
|
|
@@ -1066,10 +1093,10 @@ class AwsRestJsonProtocol extends protocols.HttpBindingProtocol {
|
|
|
1066
1093
|
const target = member.getMergedTraits().jsonName ?? name;
|
|
1067
1094
|
output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);
|
|
1068
1095
|
}
|
|
1069
|
-
throw Object.assign(exception, errorMetadata, {
|
|
1096
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
1070
1097
|
$fault: ns.getMergedTraits().error,
|
|
1071
1098
|
message,
|
|
1072
|
-
}, output);
|
|
1099
|
+
}, output), dataObject);
|
|
1073
1100
|
}
|
|
1074
1101
|
getDefaultContentType() {
|
|
1075
1102
|
return "application/json";
|
|
@@ -1485,10 +1512,10 @@ class AwsQueryProtocol extends protocols.RpcProtocol {
|
|
|
1485
1512
|
const value = errorData[target] ?? dataObject[target];
|
|
1486
1513
|
output[name] = this.deserializer.readSchema(member, value);
|
|
1487
1514
|
}
|
|
1488
|
-
throw Object.assign(exception, errorMetadata, {
|
|
1515
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
1489
1516
|
$fault: ns.getMergedTraits().error,
|
|
1490
1517
|
message,
|
|
1491
|
-
}, output);
|
|
1518
|
+
}, output), dataObject);
|
|
1492
1519
|
}
|
|
1493
1520
|
loadQueryErrorCode(output, data) {
|
|
1494
1521
|
const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;
|
|
@@ -1922,10 +1949,10 @@ class AwsRestXmlProtocol extends protocols.HttpBindingProtocol {
|
|
|
1922
1949
|
const value = dataObject.Error?.[target] ?? dataObject[target];
|
|
1923
1950
|
output[name] = this.codec.createDeserializer().readSchema(member, value);
|
|
1924
1951
|
}
|
|
1925
|
-
throw Object.assign(exception, errorMetadata, {
|
|
1952
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
1926
1953
|
$fault: ns.getMergedTraits().error,
|
|
1927
1954
|
message,
|
|
1928
|
-
}, output);
|
|
1955
|
+
}, output), dataObject);
|
|
1929
1956
|
}
|
|
1930
1957
|
getDefaultContentType() {
|
|
1931
1958
|
return "application/xml";
|
|
@@ -2,14 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
var cbor = require('@smithy/core/cbor');
|
|
4
4
|
var schema = require('@smithy/core/schema');
|
|
5
|
+
var smithyClient = require('@smithy/smithy-client');
|
|
5
6
|
var protocols = require('@smithy/core/protocols');
|
|
6
7
|
var serde = require('@smithy/core/serde');
|
|
7
8
|
var utilBase64 = require('@smithy/util-base64');
|
|
8
|
-
var smithyClient = require('@smithy/smithy-client');
|
|
9
9
|
var utilUtf8 = require('@smithy/util-utf8');
|
|
10
10
|
var xmlBuilder = require('@aws-sdk/xml-builder');
|
|
11
11
|
|
|
12
12
|
class ProtocolLib {
|
|
13
|
+
queryCompat;
|
|
14
|
+
constructor(queryCompat = false) {
|
|
15
|
+
this.queryCompat = queryCompat;
|
|
16
|
+
}
|
|
13
17
|
resolveRestContentType(defaultContentType, inputSchema) {
|
|
14
18
|
const members = inputSchema.getMemberSchemas();
|
|
15
19
|
const httpPayloadMember = Object.values(members).find((m) => {
|
|
@@ -49,7 +53,6 @@ class ProtocolLib {
|
|
|
49
53
|
}
|
|
50
54
|
const errorMetadata = {
|
|
51
55
|
$metadata: metadata,
|
|
52
|
-
$response: response,
|
|
53
56
|
$fault: response.statusCode < 500 ? "client" : "server",
|
|
54
57
|
};
|
|
55
58
|
const registry = schema.TypeRegistry.for(namespace);
|
|
@@ -63,11 +66,23 @@ class ProtocolLib {
|
|
|
63
66
|
const baseExceptionSchema = synthetic.getBaseException();
|
|
64
67
|
if (baseExceptionSchema) {
|
|
65
68
|
const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;
|
|
66
|
-
throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);
|
|
69
|
+
throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);
|
|
67
70
|
}
|
|
68
|
-
throw Object.assign(new Error(errorName), errorMetadata, dataObject);
|
|
71
|
+
throw this.decorateServiceException(Object.assign(new Error(errorName), errorMetadata), dataObject);
|
|
69
72
|
}
|
|
70
73
|
}
|
|
74
|
+
decorateServiceException(exception, additions = {}) {
|
|
75
|
+
if (this.queryCompat) {
|
|
76
|
+
const msg = exception.Message ?? additions.Message;
|
|
77
|
+
const error = smithyClient.decorateServiceException(exception, additions);
|
|
78
|
+
if (msg) {
|
|
79
|
+
error.Message = msg;
|
|
80
|
+
error.message = msg;
|
|
81
|
+
}
|
|
82
|
+
return error;
|
|
83
|
+
}
|
|
84
|
+
return smithyClient.decorateServiceException(exception, additions);
|
|
85
|
+
}
|
|
71
86
|
setQueryCompatError(output, response) {
|
|
72
87
|
const queryErrorHeader = response.headers?.["x-amzn-query-error"];
|
|
73
88
|
if (output !== undefined && queryErrorHeader != null) {
|
|
@@ -100,10 +115,11 @@ class ProtocolLib {
|
|
|
100
115
|
|
|
101
116
|
class AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {
|
|
102
117
|
awsQueryCompatible;
|
|
103
|
-
mixin
|
|
118
|
+
mixin;
|
|
104
119
|
constructor({ defaultNamespace, awsQueryCompatible, }) {
|
|
105
120
|
super({ defaultNamespace });
|
|
106
121
|
this.awsQueryCompatible = !!awsQueryCompatible;
|
|
122
|
+
this.mixin = new ProtocolLib(this.awsQueryCompatible);
|
|
107
123
|
}
|
|
108
124
|
async serializeRequest(operationSchema, input, context) {
|
|
109
125
|
const request = await super.serializeRequest(operationSchema, input, context);
|
|
@@ -129,10 +145,10 @@ class AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {
|
|
|
129
145
|
if (this.awsQueryCompatible) {
|
|
130
146
|
this.mixin.queryCompatOutput(dataObject, output);
|
|
131
147
|
}
|
|
132
|
-
throw Object.assign(exception, errorMetadata, {
|
|
148
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
133
149
|
$fault: ns.getMergedTraits().error,
|
|
134
150
|
message,
|
|
135
|
-
}, output);
|
|
151
|
+
}, output), dataObject);
|
|
136
152
|
}
|
|
137
153
|
}
|
|
138
154
|
|
|
@@ -577,7 +593,7 @@ class AwsJsonRpcProtocol extends protocols.RpcProtocol {
|
|
|
577
593
|
deserializer;
|
|
578
594
|
serviceTarget;
|
|
579
595
|
codec;
|
|
580
|
-
mixin
|
|
596
|
+
mixin;
|
|
581
597
|
awsQueryCompatible;
|
|
582
598
|
constructor({ defaultNamespace, serviceTarget, awsQueryCompatible, }) {
|
|
583
599
|
super({
|
|
@@ -594,6 +610,7 @@ class AwsJsonRpcProtocol extends protocols.RpcProtocol {
|
|
|
594
610
|
this.serializer = this.codec.createSerializer();
|
|
595
611
|
this.deserializer = this.codec.createDeserializer();
|
|
596
612
|
this.awsQueryCompatible = !!awsQueryCompatible;
|
|
613
|
+
this.mixin = new ProtocolLib(this.awsQueryCompatible);
|
|
597
614
|
}
|
|
598
615
|
async serializeRequest(operationSchema, input, context) {
|
|
599
616
|
const request = await super.serializeRequest(operationSchema, input, context);
|
|
@@ -633,10 +650,10 @@ class AwsJsonRpcProtocol extends protocols.RpcProtocol {
|
|
|
633
650
|
if (this.awsQueryCompatible) {
|
|
634
651
|
this.mixin.queryCompatOutput(dataObject, output);
|
|
635
652
|
}
|
|
636
|
-
throw Object.assign(exception, errorMetadata, {
|
|
653
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
637
654
|
$fault: ns.getMergedTraits().error,
|
|
638
655
|
message,
|
|
639
|
-
}, output);
|
|
656
|
+
}, output), dataObject);
|
|
640
657
|
}
|
|
641
658
|
}
|
|
642
659
|
|
|
@@ -718,11 +735,21 @@ class AwsRestJsonProtocol extends protocols.HttpBindingProtocol {
|
|
|
718
735
|
request.headers["content-type"] = contentType;
|
|
719
736
|
}
|
|
720
737
|
}
|
|
721
|
-
if (request.headers["content-type"]
|
|
738
|
+
if (request.body == null && request.headers["content-type"] === this.getDefaultContentType()) {
|
|
722
739
|
request.body = "{}";
|
|
723
740
|
}
|
|
724
741
|
return request;
|
|
725
742
|
}
|
|
743
|
+
async deserializeResponse(operationSchema, context, response) {
|
|
744
|
+
const output = await super.deserializeResponse(operationSchema, context, response);
|
|
745
|
+
const outputSchema = schema.NormalizedSchema.of(operationSchema.output);
|
|
746
|
+
for (const [name, member] of outputSchema.structIterator()) {
|
|
747
|
+
if (member.getMemberTraits().httpPayload && !(name in output)) {
|
|
748
|
+
output[name] = null;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
return output;
|
|
752
|
+
}
|
|
726
753
|
async handleError(operationSchema, context, response, dataObject, metadata) {
|
|
727
754
|
const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? "Unknown";
|
|
728
755
|
const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);
|
|
@@ -736,10 +763,10 @@ class AwsRestJsonProtocol extends protocols.HttpBindingProtocol {
|
|
|
736
763
|
const target = member.getMergedTraits().jsonName ?? name;
|
|
737
764
|
output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);
|
|
738
765
|
}
|
|
739
|
-
throw Object.assign(exception, errorMetadata, {
|
|
766
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
740
767
|
$fault: ns.getMergedTraits().error,
|
|
741
768
|
message,
|
|
742
|
-
}, output);
|
|
769
|
+
}, output), dataObject);
|
|
743
770
|
}
|
|
744
771
|
getDefaultContentType() {
|
|
745
772
|
return "application/json";
|
|
@@ -1155,10 +1182,10 @@ class AwsQueryProtocol extends protocols.RpcProtocol {
|
|
|
1155
1182
|
const value = errorData[target] ?? dataObject[target];
|
|
1156
1183
|
output[name] = this.deserializer.readSchema(member, value);
|
|
1157
1184
|
}
|
|
1158
|
-
throw Object.assign(exception, errorMetadata, {
|
|
1185
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
1159
1186
|
$fault: ns.getMergedTraits().error,
|
|
1160
1187
|
message,
|
|
1161
|
-
}, output);
|
|
1188
|
+
}, output), dataObject);
|
|
1162
1189
|
}
|
|
1163
1190
|
loadQueryErrorCode(output, data) {
|
|
1164
1191
|
const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;
|
|
@@ -1592,10 +1619,10 @@ class AwsRestXmlProtocol extends protocols.HttpBindingProtocol {
|
|
|
1592
1619
|
const value = dataObject.Error?.[target] ?? dataObject[target];
|
|
1593
1620
|
output[name] = this.codec.createDeserializer().readSchema(member, value);
|
|
1594
1621
|
}
|
|
1595
|
-
throw Object.assign(exception, errorMetadata, {
|
|
1622
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
1596
1623
|
$fault: ns.getMergedTraits().error,
|
|
1597
1624
|
message,
|
|
1598
|
-
}, output);
|
|
1625
|
+
}, output), dataObject);
|
|
1599
1626
|
}
|
|
1600
1627
|
getDefaultContentType() {
|
|
1601
1628
|
return "application/xml";
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { TypeRegistry } from "@smithy/core/schema";
|
|
2
|
+
import { decorateServiceException } from "@smithy/smithy-client";
|
|
2
3
|
export class ProtocolLib {
|
|
4
|
+
queryCompat;
|
|
5
|
+
constructor(queryCompat = false) {
|
|
6
|
+
this.queryCompat = queryCompat;
|
|
7
|
+
}
|
|
3
8
|
resolveRestContentType(defaultContentType, inputSchema) {
|
|
4
9
|
const members = inputSchema.getMemberSchemas();
|
|
5
10
|
const httpPayloadMember = Object.values(members).find((m) => {
|
|
@@ -39,7 +44,6 @@ export class ProtocolLib {
|
|
|
39
44
|
}
|
|
40
45
|
const errorMetadata = {
|
|
41
46
|
$metadata: metadata,
|
|
42
|
-
$response: response,
|
|
43
47
|
$fault: response.statusCode < 500 ? "client" : "server",
|
|
44
48
|
};
|
|
45
49
|
const registry = TypeRegistry.for(namespace);
|
|
@@ -53,10 +57,22 @@ export class ProtocolLib {
|
|
|
53
57
|
const baseExceptionSchema = synthetic.getBaseException();
|
|
54
58
|
if (baseExceptionSchema) {
|
|
55
59
|
const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;
|
|
56
|
-
throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);
|
|
60
|
+
throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);
|
|
61
|
+
}
|
|
62
|
+
throw this.decorateServiceException(Object.assign(new Error(errorName), errorMetadata), dataObject);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
decorateServiceException(exception, additions = {}) {
|
|
66
|
+
if (this.queryCompat) {
|
|
67
|
+
const msg = exception.Message ?? additions.Message;
|
|
68
|
+
const error = decorateServiceException(exception, additions);
|
|
69
|
+
if (msg) {
|
|
70
|
+
error.Message = msg;
|
|
71
|
+
error.message = msg;
|
|
57
72
|
}
|
|
58
|
-
|
|
73
|
+
return error;
|
|
59
74
|
}
|
|
75
|
+
return decorateServiceException(exception, additions);
|
|
60
76
|
}
|
|
61
77
|
setQueryCompatError(output, response) {
|
|
62
78
|
const queryErrorHeader = response.headers?.["x-amzn-query-error"];
|
package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js
CHANGED
|
@@ -3,10 +3,11 @@ import { NormalizedSchema, TypeRegistry } from "@smithy/core/schema";
|
|
|
3
3
|
import { ProtocolLib } from "../ProtocolLib";
|
|
4
4
|
export class AwsSmithyRpcV2CborProtocol extends SmithyRpcV2CborProtocol {
|
|
5
5
|
awsQueryCompatible;
|
|
6
|
-
mixin
|
|
6
|
+
mixin;
|
|
7
7
|
constructor({ defaultNamespace, awsQueryCompatible, }) {
|
|
8
8
|
super({ defaultNamespace });
|
|
9
9
|
this.awsQueryCompatible = !!awsQueryCompatible;
|
|
10
|
+
this.mixin = new ProtocolLib(this.awsQueryCompatible);
|
|
10
11
|
}
|
|
11
12
|
async serializeRequest(operationSchema, input, context) {
|
|
12
13
|
const request = await super.serializeRequest(operationSchema, input, context);
|
|
@@ -32,9 +33,9 @@ export class AwsSmithyRpcV2CborProtocol extends SmithyRpcV2CborProtocol {
|
|
|
32
33
|
if (this.awsQueryCompatible) {
|
|
33
34
|
this.mixin.queryCompatOutput(dataObject, output);
|
|
34
35
|
}
|
|
35
|
-
throw Object.assign(exception, errorMetadata, {
|
|
36
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
36
37
|
$fault: ns.getMergedTraits().error,
|
|
37
38
|
message,
|
|
38
|
-
}, output);
|
|
39
|
+
}, output), dataObject);
|
|
39
40
|
}
|
|
40
41
|
}
|
|
@@ -8,7 +8,7 @@ export class AwsJsonRpcProtocol extends RpcProtocol {
|
|
|
8
8
|
deserializer;
|
|
9
9
|
serviceTarget;
|
|
10
10
|
codec;
|
|
11
|
-
mixin
|
|
11
|
+
mixin;
|
|
12
12
|
awsQueryCompatible;
|
|
13
13
|
constructor({ defaultNamespace, serviceTarget, awsQueryCompatible, }) {
|
|
14
14
|
super({
|
|
@@ -25,6 +25,7 @@ export class AwsJsonRpcProtocol extends RpcProtocol {
|
|
|
25
25
|
this.serializer = this.codec.createSerializer();
|
|
26
26
|
this.deserializer = this.codec.createDeserializer();
|
|
27
27
|
this.awsQueryCompatible = !!awsQueryCompatible;
|
|
28
|
+
this.mixin = new ProtocolLib(this.awsQueryCompatible);
|
|
28
29
|
}
|
|
29
30
|
async serializeRequest(operationSchema, input, context) {
|
|
30
31
|
const request = await super.serializeRequest(operationSchema, input, context);
|
|
@@ -64,9 +65,9 @@ export class AwsJsonRpcProtocol extends RpcProtocol {
|
|
|
64
65
|
if (this.awsQueryCompatible) {
|
|
65
66
|
this.mixin.queryCompatOutput(dataObject, output);
|
|
66
67
|
}
|
|
67
|
-
throw Object.assign(exception, errorMetadata, {
|
|
68
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
68
69
|
$fault: ns.getMergedTraits().error,
|
|
69
70
|
message,
|
|
70
|
-
}, output);
|
|
71
|
+
}, output), dataObject);
|
|
71
72
|
}
|
|
72
73
|
}
|
|
@@ -43,11 +43,21 @@ export class AwsRestJsonProtocol extends HttpBindingProtocol {
|
|
|
43
43
|
request.headers["content-type"] = contentType;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
if (request.headers["content-type"]
|
|
46
|
+
if (request.body == null && request.headers["content-type"] === this.getDefaultContentType()) {
|
|
47
47
|
request.body = "{}";
|
|
48
48
|
}
|
|
49
49
|
return request;
|
|
50
50
|
}
|
|
51
|
+
async deserializeResponse(operationSchema, context, response) {
|
|
52
|
+
const output = await super.deserializeResponse(operationSchema, context, response);
|
|
53
|
+
const outputSchema = NormalizedSchema.of(operationSchema.output);
|
|
54
|
+
for (const [name, member] of outputSchema.structIterator()) {
|
|
55
|
+
if (member.getMemberTraits().httpPayload && !(name in output)) {
|
|
56
|
+
output[name] = null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return output;
|
|
60
|
+
}
|
|
51
61
|
async handleError(operationSchema, context, response, dataObject, metadata) {
|
|
52
62
|
const errorIdentifier = loadRestJsonErrorCode(response, dataObject) ?? "Unknown";
|
|
53
63
|
const { errorSchema, errorMetadata } = await this.mixin.getErrorSchemaOrThrowBaseException(errorIdentifier, this.options.defaultNamespace, response, dataObject, metadata);
|
|
@@ -61,10 +71,10 @@ export class AwsRestJsonProtocol extends HttpBindingProtocol {
|
|
|
61
71
|
const target = member.getMergedTraits().jsonName ?? name;
|
|
62
72
|
output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);
|
|
63
73
|
}
|
|
64
|
-
throw Object.assign(exception, errorMetadata, {
|
|
74
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
65
75
|
$fault: ns.getMergedTraits().error,
|
|
66
76
|
message,
|
|
67
|
-
}, output);
|
|
77
|
+
}, output), dataObject);
|
|
68
78
|
}
|
|
69
79
|
getDefaultContentType() {
|
|
70
80
|
return "application/json";
|
|
@@ -114,10 +114,10 @@ export class AwsQueryProtocol extends RpcProtocol {
|
|
|
114
114
|
const value = errorData[target] ?? dataObject[target];
|
|
115
115
|
output[name] = this.deserializer.readSchema(member, value);
|
|
116
116
|
}
|
|
117
|
-
throw Object.assign(exception, errorMetadata, {
|
|
117
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
118
118
|
$fault: ns.getMergedTraits().error,
|
|
119
119
|
message,
|
|
120
|
-
}, output);
|
|
120
|
+
}, output), dataObject);
|
|
121
121
|
}
|
|
122
122
|
loadQueryErrorCode(output, data) {
|
|
123
123
|
const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;
|
|
@@ -62,10 +62,10 @@ export class AwsRestXmlProtocol extends HttpBindingProtocol {
|
|
|
62
62
|
const value = dataObject.Error?.[target] ?? dataObject[target];
|
|
63
63
|
output[name] = this.codec.createDeserializer().readSchema(member, value);
|
|
64
64
|
}
|
|
65
|
-
throw Object.assign(exception, errorMetadata, {
|
|
65
|
+
throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
|
|
66
66
|
$fault: ns.getMergedTraits().error,
|
|
67
67
|
message,
|
|
68
|
-
}, output);
|
|
68
|
+
}, output), dataObject);
|
|
69
69
|
}
|
|
70
70
|
getDefaultContentType() {
|
|
71
71
|
return "application/xml";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { NormalizedSchema, TypeRegistry } from "@smithy/core/schema";
|
|
2
|
+
import { ServiceException as SDKBaseServiceException } from "@smithy/smithy-client";
|
|
2
3
|
import type { HttpResponse as IHttpResponse, MetadataBearer, ResponseMetadata, StaticErrorSchema } from "@smithy/types";
|
|
3
4
|
/**
|
|
4
5
|
* @internal
|
|
5
6
|
*/
|
|
6
7
|
type ErrorMetadataBearer = MetadataBearer & {
|
|
7
|
-
$response: IHttpResponse;
|
|
8
8
|
$fault: "client" | "server";
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
@@ -13,6 +13,8 @@ type ErrorMetadataBearer = MetadataBearer & {
|
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
15
|
export declare class ProtocolLib {
|
|
16
|
+
private queryCompat;
|
|
17
|
+
constructor(queryCompat?: boolean);
|
|
16
18
|
/**
|
|
17
19
|
* This is only for REST protocols.
|
|
18
20
|
*
|
|
@@ -32,6 +34,10 @@ export declare class ProtocolLib {
|
|
|
32
34
|
errorSchema: StaticErrorSchema;
|
|
33
35
|
errorMetadata: ErrorMetadataBearer;
|
|
34
36
|
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Assigns additions onto exception if not already present.
|
|
39
|
+
*/
|
|
40
|
+
decorateServiceException<E extends SDKBaseServiceException>(exception: E, additions?: Record<string, any>): E;
|
|
35
41
|
/**
|
|
36
42
|
* Reads the x-amzn-query-error header for awsQuery compatibility.
|
|
37
43
|
*
|