@jjrawlins/cdk-iam-policy-builder-helper 0.0.82 → 0.0.84

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.
Files changed (49) hide show
  1. package/.jsii +3 -3
  2. package/cdkiampolicybuilderhelper/jsii/jsii.go +2 -2
  3. package/cdkiampolicybuilderhelper/version +1 -1
  4. package/lib/constructs/Actions.d.ts +20 -0
  5. package/lib/constructs/Actions.js +21 -1
  6. package/lib/constructs/ManagedPolicies.d.ts +16 -0
  7. package/lib/constructs/ManagedPolicies.js +17 -1
  8. package/methods_list.txt +18 -0
  9. package/node_modules/@aws-sdk/client-iam/package.json +5 -5
  10. package/node_modules/@aws-sdk/client-sso/package.json +4 -4
  11. package/node_modules/@aws-sdk/core/dist-cjs/index.js +33 -16
  12. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +33 -16
  13. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +19 -3
  14. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js +4 -3
  15. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +4 -3
  16. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +2 -2
  17. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +2 -2
  18. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -2
  19. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ProtocolLib.d.ts +7 -1
  20. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +3 -0
  21. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/AwsQueryProtocol.d.ts +3 -0
  22. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +3 -0
  23. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +7 -1
  24. package/node_modules/@aws-sdk/core/package.json +1 -1
  25. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  26. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  27. package/node_modules/@aws-sdk/credential-provider-ini/package.json +8 -8
  28. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  29. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  30. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  31. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  32. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  33. package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
  34. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  35. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  36. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +0 -1
  37. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +3 -0
  38. package/node_modules/@smithy/core/dist-es/submodules/cbor/SmithyRpcV2CborProtocol.js +0 -1
  39. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js +3 -0
  40. package/node_modules/@smithy/core/package.json +2 -2
  41. package/node_modules/@smithy/middleware-endpoint/package.json +3 -3
  42. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  43. package/node_modules/@smithy/middleware-serde/dist-cjs/index.js +3 -0
  44. package/node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js +3 -0
  45. package/node_modules/@smithy/middleware-serde/package.json +1 -1
  46. package/node_modules/@smithy/smithy-client/package.json +3 -3
  47. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
  48. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  49. 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
@@ -1101,7 +1116,9 @@ athena:GetQueryExecutions
1101
1116
  athena:GetQueryResults
1102
1117
  athena:GetQueryResultsStream
1103
1118
  athena:GetQueryRuntimeStatistics
1119
+ athena:GetResourceDashboard
1104
1120
  athena:GetSession
1121
+ athena:GetSessionEndpoint
1105
1122
  athena:GetSessionStatus
1106
1123
  athena:GetTable
1107
1124
  athena:GetTableMetadata
@@ -8291,6 +8308,7 @@ glue:DescribeConnectionType
8291
8308
  glue:DescribeEntity
8292
8309
  glue:DescribeInboundIntegrations
8293
8310
  glue:DescribeIntegrations
8311
+ glue:FederateAuthorization
8294
8312
  glue:GetBlueprint
8295
8313
  glue:GetBlueprintRun
8296
8314
  glue:GetBlueprintRuns
@@ -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.931.0",
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.931.0",
24
- "@aws-sdk/credential-provider-node": "3.931.0",
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.931.0",
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.931.0",
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.931.0",
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.931.0",
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.931.0",
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.931.0",
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,10 +396,22 @@ 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);
400
+ }
401
+ throw this.decorateServiceException(Object.assign(new Error(errorName), errorMetadata), dataObject);
402
+ }
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;
397
411
  }
398
- throw Object.assign(new Error(errorName), errorMetadata, dataObject);
412
+ return error;
399
413
  }
414
+ return smithyClient.decorateServiceException(exception, additions);
400
415
  }
401
416
  setQueryCompatError(output, response) {
402
417
  const queryErrorHeader = response.headers?.["x-amzn-query-error"];
@@ -430,10 +445,11 @@ class ProtocolLib {
430
445
 
431
446
  class AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {
432
447
  awsQueryCompatible;
433
- mixin = new ProtocolLib();
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 = new ProtocolLib();
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
 
@@ -1076,10 +1093,10 @@ class AwsRestJsonProtocol extends protocols.HttpBindingProtocol {
1076
1093
  const target = member.getMergedTraits().jsonName ?? name;
1077
1094
  output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);
1078
1095
  }
1079
- throw Object.assign(exception, errorMetadata, {
1096
+ throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
1080
1097
  $fault: ns.getMergedTraits().error,
1081
1098
  message,
1082
- }, output);
1099
+ }, output), dataObject);
1083
1100
  }
1084
1101
  getDefaultContentType() {
1085
1102
  return "application/json";
@@ -1495,10 +1512,10 @@ class AwsQueryProtocol extends protocols.RpcProtocol {
1495
1512
  const value = errorData[target] ?? dataObject[target];
1496
1513
  output[name] = this.deserializer.readSchema(member, value);
1497
1514
  }
1498
- throw Object.assign(exception, errorMetadata, {
1515
+ throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
1499
1516
  $fault: ns.getMergedTraits().error,
1500
1517
  message,
1501
- }, output);
1518
+ }, output), dataObject);
1502
1519
  }
1503
1520
  loadQueryErrorCode(output, data) {
1504
1521
  const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;
@@ -1932,10 +1949,10 @@ class AwsRestXmlProtocol extends protocols.HttpBindingProtocol {
1932
1949
  const value = dataObject.Error?.[target] ?? dataObject[target];
1933
1950
  output[name] = this.codec.createDeserializer().readSchema(member, value);
1934
1951
  }
1935
- throw Object.assign(exception, errorMetadata, {
1952
+ throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
1936
1953
  $fault: ns.getMergedTraits().error,
1937
1954
  message,
1938
- }, output);
1955
+ }, output), dataObject);
1939
1956
  }
1940
1957
  getDefaultContentType() {
1941
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,10 +66,22 @@ 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);
70
+ }
71
+ throw this.decorateServiceException(Object.assign(new Error(errorName), errorMetadata), dataObject);
72
+ }
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;
67
81
  }
68
- throw Object.assign(new Error(errorName), errorMetadata, dataObject);
82
+ return error;
69
83
  }
84
+ return smithyClient.decorateServiceException(exception, additions);
70
85
  }
71
86
  setQueryCompatError(output, response) {
72
87
  const queryErrorHeader = response.headers?.["x-amzn-query-error"];
@@ -100,10 +115,11 @@ class ProtocolLib {
100
115
 
101
116
  class AwsSmithyRpcV2CborProtocol extends cbor.SmithyRpcV2CborProtocol {
102
117
  awsQueryCompatible;
103
- mixin = new ProtocolLib();
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 = new ProtocolLib();
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
 
@@ -746,10 +763,10 @@ class AwsRestJsonProtocol extends protocols.HttpBindingProtocol {
746
763
  const target = member.getMergedTraits().jsonName ?? name;
747
764
  output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);
748
765
  }
749
- throw Object.assign(exception, errorMetadata, {
766
+ throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
750
767
  $fault: ns.getMergedTraits().error,
751
768
  message,
752
- }, output);
769
+ }, output), dataObject);
753
770
  }
754
771
  getDefaultContentType() {
755
772
  return "application/json";
@@ -1165,10 +1182,10 @@ class AwsQueryProtocol extends protocols.RpcProtocol {
1165
1182
  const value = errorData[target] ?? dataObject[target];
1166
1183
  output[name] = this.deserializer.readSchema(member, value);
1167
1184
  }
1168
- throw Object.assign(exception, errorMetadata, {
1185
+ throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
1169
1186
  $fault: ns.getMergedTraits().error,
1170
1187
  message,
1171
- }, output);
1188
+ }, output), dataObject);
1172
1189
  }
1173
1190
  loadQueryErrorCode(output, data) {
1174
1191
  const code = (data.Errors?.[0]?.Error ?? data.Errors?.Error ?? data.Error)?.Code;
@@ -1602,10 +1619,10 @@ class AwsRestXmlProtocol extends protocols.HttpBindingProtocol {
1602
1619
  const value = dataObject.Error?.[target] ?? dataObject[target];
1603
1620
  output[name] = this.codec.createDeserializer().readSchema(member, value);
1604
1621
  }
1605
- throw Object.assign(exception, errorMetadata, {
1622
+ throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
1606
1623
  $fault: ns.getMergedTraits().error,
1607
1624
  message,
1608
- }, output);
1625
+ }, output), dataObject);
1609
1626
  }
1610
1627
  getDefaultContentType() {
1611
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
- throw Object.assign(new Error(errorName), errorMetadata, dataObject);
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"];
@@ -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 = new ProtocolLib();
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 = new ProtocolLib();
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
  }
@@ -71,10 +71,10 @@ export class AwsRestJsonProtocol extends HttpBindingProtocol {
71
71
  const target = member.getMergedTraits().jsonName ?? name;
72
72
  output[name] = this.codec.createDeserializer().readObject(member, dataObject[target]);
73
73
  }
74
- throw Object.assign(exception, errorMetadata, {
74
+ throw this.mixin.decorateServiceException(Object.assign(exception, errorMetadata, {
75
75
  $fault: ns.getMergedTraits().error,
76
76
  message,
77
- }, output);
77
+ }, output), dataObject);
78
78
  }
79
79
  getDefaultContentType() {
80
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
  *
@@ -19,5 +19,8 @@ export declare abstract class AwsJsonRpcProtocol extends RpcProtocol {
19
19
  serializeRequest<Input extends object>(operationSchema: OperationSchema, input: Input, context: HandlerExecutionContext & SerdeFunctions & EndpointBearer): Promise<HttpRequest>;
20
20
  getPayloadCodec(): JsonCodec;
21
21
  protected abstract getJsonRpcVersion(): "1.1" | "1.0";
22
+ /**
23
+ * @override
24
+ */
22
25
  protected handleError(operationSchema: OperationSchema, context: HandlerExecutionContext & SerdeFunctions, response: HttpResponse, dataObject: any, metadata: ResponseMetadata): Promise<never>;
23
26
  }
@@ -28,6 +28,9 @@ export declare class AwsQueryProtocol extends RpcProtocol {
28
28
  * EC2 Query overrides this.
29
29
  */
30
30
  protected useNestedResult(): boolean;
31
+ /**
32
+ * override
33
+ */
31
34
  protected handleError(operationSchema: OperationSchema, context: HandlerExecutionContext & SerdeFunctions, response: IHttpResponse, dataObject: any, metadata: ResponseMetadata): Promise<never>;
32
35
  /**
33
36
  * The variations in the error and error message locations are attributed to
@@ -17,6 +17,9 @@ export declare class AwsRestXmlProtocol extends HttpBindingProtocol {
17
17
  getShapeId(): string;
18
18
  serializeRequest<Input extends object>(operationSchema: OperationSchema, input: Input, context: HandlerExecutionContext & SerdeFunctions & EndpointBearer): Promise<IHttpRequest>;
19
19
  deserializeResponse<Output extends MetadataBearer>(operationSchema: OperationSchema, context: HandlerExecutionContext & SerdeFunctions, response: IHttpResponse): Promise<Output>;
20
+ /**
21
+ * @override
22
+ */
20
23
  protected handleError(operationSchema: OperationSchema, context: HandlerExecutionContext & SerdeFunctions, response: IHttpResponse, dataObject: any, metadata: ResponseMetadata): Promise<never>;
21
24
  /**
22
25
  * @override
@@ -1,4 +1,5 @@
1
1
  import { NormalizedSchema, TypeRegistry } from "@smithy/core/schema";
2
+ import { ServiceException as SDKBaseServiceException } from "@smithy/smithy-client";
2
3
  import {
3
4
  HttpResponse as IHttpResponse,
4
5
  MetadataBearer,
@@ -6,10 +7,11 @@ import {
6
7
  StaticErrorSchema,
7
8
  } from "@smithy/types";
8
9
  type ErrorMetadataBearer = MetadataBearer & {
9
- $response: IHttpResponse;
10
10
  $fault: "client" | "server";
11
11
  };
12
12
  export declare class ProtocolLib {
13
+ private queryCompat;
14
+ constructor(queryCompat?: boolean);
13
15
  resolveRestContentType(
14
16
  defaultContentType: string,
15
17
  inputSchema: NormalizedSchema
@@ -28,6 +30,10 @@ export declare class ProtocolLib {
28
30
  errorSchema: StaticErrorSchema;
29
31
  errorMetadata: ErrorMetadataBearer;
30
32
  }>;
33
+ decorateServiceException<E extends SDKBaseServiceException>(
34
+ exception: E,
35
+ additions?: Record<string, any>
36
+ ): E;
31
37
  setQueryCompatError(
32
38
  output: Record<string, any>,
33
39
  response: IHttpResponse
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/core",
3
- "version": "3.931.0",
3
+ "version": "3.932.0",
4
4
  "description": "Core functions & classes shared by multiple AWS SDK clients.",
5
5
  "scripts": {
6
6
  "build": "yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-env",
3
- "version": "3.931.0",
3
+ "version": "3.932.0",
4
4
  "description": "AWS credential provider that sources credentials from known environment variables",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "license": "Apache-2.0",
28
28
  "dependencies": {
29
- "@aws-sdk/core": "3.931.0",
29
+ "@aws-sdk/core": "3.932.0",
30
30
  "@aws-sdk/types": "3.930.0",
31
31
  "@smithy/property-provider": "^4.2.5",
32
32
  "@smithy/types": "^4.9.0",