@jjrawlins/cdk-iam-policy-builder-helper 0.0.92 → 0.0.94

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 (35) hide show
  1. package/.jsii +3 -3
  2. package/cdkiampolicybuilderhelper/go.mod +1 -1
  3. package/cdkiampolicybuilderhelper/jsii/jsii.go +2 -2
  4. package/cdkiampolicybuilderhelper/version +1 -1
  5. package/lib/constructs/Actions.d.ts +26 -0
  6. package/lib/constructs/Actions.js +27 -1
  7. package/lib/constructs/ManagedPolicies.d.ts +4 -0
  8. package/lib/constructs/ManagedPolicies.js +5 -1
  9. package/methods_list.txt +26 -0
  10. package/node_modules/@aws-sdk/client-iam/package.json +5 -5
  11. package/node_modules/@aws-sdk/client-sso/package.json +4 -4
  12. package/node_modules/@aws-sdk/core/dist-cjs/index.js +43 -5
  13. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +43 -5
  14. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +2 -1
  15. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +3 -2
  16. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/SinglePassJsonShapeSerializer.js +2 -1
  17. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +2 -1
  18. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/structIterator.js +38 -0
  19. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +2 -1
  20. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/structIterator.d.ts +27 -0
  21. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/structIterator.d.ts +12 -0
  22. package/node_modules/@aws-sdk/core/package.json +1 -1
  23. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  24. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  25. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  26. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  27. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  28. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  29. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  30. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  31. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  32. package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
  33. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  34. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  35. package/package.json +2 -2
package/methods_list.txt CHANGED
@@ -11757,12 +11757,19 @@ mediaconnect:AddFlowMediaStreams
11757
11757
  mediaconnect:AddFlowOutputs
11758
11758
  mediaconnect:AddFlowSources
11759
11759
  mediaconnect:AddFlowVpcInterfaces
11760
+ mediaconnect:AssociateRouterNetworkInterface
11760
11761
  mediaconnect:CreateBridge
11761
11762
  mediaconnect:CreateFlow
11762
11763
  mediaconnect:CreateGateway
11764
+ mediaconnect:CreateRouterInput
11765
+ mediaconnect:CreateRouterNetworkInterface
11766
+ mediaconnect:CreateRouterOutput
11763
11767
  mediaconnect:DeleteBridge
11764
11768
  mediaconnect:DeleteFlow
11765
11769
  mediaconnect:DeleteGateway
11770
+ mediaconnect:DeleteRouterInput
11771
+ mediaconnect:DeleteRouterNetworkInterface
11772
+ mediaconnect:DeleteRouterOutput
11766
11773
  mediaconnect:DeregisterGatewayInstance
11767
11774
  mediaconnect:DescribeBridge
11768
11775
  mediaconnect:DescribeFlow
@@ -11773,6 +11780,11 @@ mediaconnect:DescribeGatewayInstance
11773
11780
  mediaconnect:DescribeOffering
11774
11781
  mediaconnect:DescribeReservation
11775
11782
  mediaconnect:DiscoverGatewayPollEndpoint
11783
+ mediaconnect:GetRouterInput
11784
+ mediaconnect:GetRouterInputSourceMetadata
11785
+ mediaconnect:GetRouterInputThumbnail
11786
+ mediaconnect:GetRouterNetworkInterface
11787
+ mediaconnect:GetRouterOutput
11776
11788
  mediaconnect:GrantFlowEntitlements
11777
11789
  mediaconnect:ListBridges
11778
11790
  mediaconnect:ListEntitlements
@@ -11781,6 +11793,9 @@ mediaconnect:ListGatewayInstances
11781
11793
  mediaconnect:ListGateways
11782
11794
  mediaconnect:ListOfferings
11783
11795
  mediaconnect:ListReservations
11796
+ mediaconnect:ListRouterInputs
11797
+ mediaconnect:ListRouterNetworkInterfaces
11798
+ mediaconnect:ListRouterOutputs
11784
11799
  mediaconnect:ListTagsForResource
11785
11800
  mediaconnect:PollGateway
11786
11801
  mediaconnect:PurchaseOffering
@@ -11790,11 +11805,18 @@ mediaconnect:RemoveFlowMediaStream
11790
11805
  mediaconnect:RemoveFlowOutput
11791
11806
  mediaconnect:RemoveFlowSource
11792
11807
  mediaconnect:RemoveFlowVpcInterface
11808
+ mediaconnect:RestartRouterInput
11809
+ mediaconnect:RestartRouterOutput
11793
11810
  mediaconnect:RevokeFlowEntitlement
11794
11811
  mediaconnect:StartFlow
11812
+ mediaconnect:StartRouterInput
11813
+ mediaconnect:StartRouterOutput
11795
11814
  mediaconnect:StopFlow
11815
+ mediaconnect:StopRouterInput
11816
+ mediaconnect:StopRouterOutput
11796
11817
  mediaconnect:SubmitGatewayStateChange
11797
11818
  mediaconnect:TagResource
11819
+ mediaconnect:TakeRouterInput
11798
11820
  mediaconnect:UntagResource
11799
11821
  mediaconnect:UpdateBridge
11800
11822
  mediaconnect:UpdateBridgeOutput
@@ -11806,6 +11828,9 @@ mediaconnect:UpdateFlowMediaStream
11806
11828
  mediaconnect:UpdateFlowOutput
11807
11829
  mediaconnect:UpdateFlowSource
11808
11830
  mediaconnect:UpdateGatewayInstance
11831
+ mediaconnect:UpdateRouterInput
11832
+ mediaconnect:UpdateRouterNetworkInterface
11833
+ mediaconnect:UpdateRouterOutput
11809
11834
  mediaconvert:AssociateCertificate
11810
11835
  mediaconvert:CancelJob
11811
11836
  mediaconvert:CreateJob
@@ -15416,6 +15441,7 @@ route53:ListVPCAssociationAuthorizations
15416
15441
  route53:TestDNSAnswer
15417
15442
  route53:UpdateHealthCheck
15418
15443
  route53:UpdateHostedZoneComment
15444
+ route53:UpdateHostedZoneFeatures
15419
15445
  route53:UpdateTrafficPolicyComment
15420
15446
  route53:UpdateTrafficPolicyInstance
15421
15447
  route53domains:AcceptDomainTransferFromAnotherAwsAccount
@@ -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.939.0",
4
+ "version": "3.940.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.936.0",
24
- "@aws-sdk/credential-provider-node": "3.939.0",
23
+ "@aws-sdk/core": "3.940.0",
24
+ "@aws-sdk/credential-provider-node": "3.940.0",
25
25
  "@aws-sdk/middleware-host-header": "3.936.0",
26
26
  "@aws-sdk/middleware-logger": "3.936.0",
27
27
  "@aws-sdk/middleware-recursion-detection": "3.936.0",
28
- "@aws-sdk/middleware-user-agent": "3.936.0",
28
+ "@aws-sdk/middleware-user-agent": "3.940.0",
29
29
  "@aws-sdk/region-config-resolver": "3.936.0",
30
30
  "@aws-sdk/types": "3.936.0",
31
31
  "@aws-sdk/util-endpoints": "3.936.0",
32
32
  "@aws-sdk/util-user-agent-browser": "3.936.0",
33
- "@aws-sdk/util-user-agent-node": "3.936.0",
33
+ "@aws-sdk/util-user-agent-node": "3.940.0",
34
34
  "@smithy/config-resolver": "^4.4.3",
35
35
  "@smithy/core": "^3.18.5",
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.936.0",
4
+ "version": "3.940.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.936.0",
23
+ "@aws-sdk/core": "3.940.0",
24
24
  "@aws-sdk/middleware-host-header": "3.936.0",
25
25
  "@aws-sdk/middleware-logger": "3.936.0",
26
26
  "@aws-sdk/middleware-recursion-detection": "3.936.0",
27
- "@aws-sdk/middleware-user-agent": "3.936.0",
27
+ "@aws-sdk/middleware-user-agent": "3.940.0",
28
28
  "@aws-sdk/region-config-resolver": "3.936.0",
29
29
  "@aws-sdk/types": "3.936.0",
30
30
  "@aws-sdk/util-endpoints": "3.936.0",
31
31
  "@aws-sdk/util-user-agent-browser": "3.936.0",
32
- "@aws-sdk/util-user-agent-node": "3.936.0",
32
+ "@aws-sdk/util-user-agent-node": "3.940.0",
33
33
  "@smithy/config-resolver": "^4.4.3",
34
34
  "@smithy/core": "^3.18.5",
35
35
  "@smithy/fetch-http-handler": "^5.3.6",
@@ -539,6 +539,44 @@ class SerdeContextConfig {
539
539
  }
540
540
  }
541
541
 
542
+ function* serializingStructIterator(ns, sourceObject) {
543
+ if (ns.isUnitSchema()) {
544
+ return;
545
+ }
546
+ const struct = ns.getSchema();
547
+ for (let i = 0; i < struct[4].length; ++i) {
548
+ const key = struct[4][i];
549
+ const memberNs = new schema.NormalizedSchema([struct[5][i], 0], key);
550
+ if (!(key in sourceObject) && !memberNs.isIdempotencyToken()) {
551
+ continue;
552
+ }
553
+ yield [key, memberNs];
554
+ }
555
+ }
556
+ function* deserializingStructIterator(ns, sourceObject, nameTrait) {
557
+ if (ns.isUnitSchema()) {
558
+ return;
559
+ }
560
+ const struct = ns.getSchema();
561
+ let keysRemaining = Object.keys(sourceObject).length;
562
+ for (let i = 0; i < struct[4].length; ++i) {
563
+ if (keysRemaining === 0) {
564
+ break;
565
+ }
566
+ const key = struct[4][i];
567
+ const memberNs = new schema.NormalizedSchema([struct[5][i], 0], key);
568
+ let serializationKey = key;
569
+ if (nameTrait) {
570
+ serializationKey = memberNs.getMergedTraits()[nameTrait] ?? key;
571
+ }
572
+ if (!(serializationKey in sourceObject)) {
573
+ continue;
574
+ }
575
+ yield [key, memberNs];
576
+ keysRemaining -= 1;
577
+ }
578
+ }
579
+
542
580
  function jsonReviver(key, value, context) {
543
581
  if (context?.source) {
544
582
  const numericString = context.source;
@@ -652,7 +690,7 @@ class JsonShapeDeserializer extends SerdeContextConfig {
652
690
  }
653
691
  else if (ns.isStructSchema() && isObject) {
654
692
  const out = {};
655
- for (const [memberName, memberSchema] of ns.structIterator()) {
693
+ for (const [memberName, memberSchema] of deserializingStructIterator(ns, value, this.settings.jsonName ? "jsonName" : false)) {
656
694
  const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
657
695
  const deserializedValue = this._read(memberSchema, value[fromKey]);
658
696
  if (deserializedValue != null) {
@@ -829,10 +867,10 @@ class JsonShapeSerializer extends SerdeContextConfig {
829
867
  }
830
868
  else if (ns.isStructSchema() && isObject) {
831
869
  const out = {};
832
- for (const [memberName, memberSchema] of ns.structIterator()) {
833
- const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
870
+ for (const [memberName, memberSchema] of serializingStructIterator(ns, value)) {
834
871
  const serializableValue = this._write(memberSchema, value[memberName], ns);
835
872
  if (serializableValue !== undefined) {
873
+ const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
836
874
  out[targetKey] = serializableValue;
837
875
  }
838
876
  }
@@ -1360,7 +1398,7 @@ class QueryShapeSerializer extends SerdeContextConfig {
1360
1398
  }
1361
1399
  else if (ns.isStructSchema()) {
1362
1400
  if (value && typeof value === "object") {
1363
- for (const [memberName, member] of ns.structIterator()) {
1401
+ for (const [memberName, member] of serializingStructIterator(ns, value)) {
1364
1402
  if (value[memberName] == null && !member.isIdempotencyToken()) {
1365
1403
  continue;
1366
1404
  }
@@ -1657,7 +1695,7 @@ class XmlShapeSerializer extends SerdeContextConfig {
1657
1695
  }
1658
1696
  const structXmlNode = xmlBuilder.XmlNode.of(name);
1659
1697
  const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);
1660
- for (const [memberName, memberSchema] of ns.structIterator()) {
1698
+ for (const [memberName, memberSchema] of serializingStructIterator(ns, value)) {
1661
1699
  const val = value[memberName];
1662
1700
  if (val != null || memberSchema.isIdempotencyToken()) {
1663
1701
  if (memberSchema.getMergedTraits().xmlAttribute) {
@@ -209,6 +209,44 @@ class SerdeContextConfig {
209
209
  }
210
210
  }
211
211
 
212
+ function* serializingStructIterator(ns, sourceObject) {
213
+ if (ns.isUnitSchema()) {
214
+ return;
215
+ }
216
+ const struct = ns.getSchema();
217
+ for (let i = 0; i < struct[4].length; ++i) {
218
+ const key = struct[4][i];
219
+ const memberNs = new schema.NormalizedSchema([struct[5][i], 0], key);
220
+ if (!(key in sourceObject) && !memberNs.isIdempotencyToken()) {
221
+ continue;
222
+ }
223
+ yield [key, memberNs];
224
+ }
225
+ }
226
+ function* deserializingStructIterator(ns, sourceObject, nameTrait) {
227
+ if (ns.isUnitSchema()) {
228
+ return;
229
+ }
230
+ const struct = ns.getSchema();
231
+ let keysRemaining = Object.keys(sourceObject).length;
232
+ for (let i = 0; i < struct[4].length; ++i) {
233
+ if (keysRemaining === 0) {
234
+ break;
235
+ }
236
+ const key = struct[4][i];
237
+ const memberNs = new schema.NormalizedSchema([struct[5][i], 0], key);
238
+ let serializationKey = key;
239
+ if (nameTrait) {
240
+ serializationKey = memberNs.getMergedTraits()[nameTrait] ?? key;
241
+ }
242
+ if (!(serializationKey in sourceObject)) {
243
+ continue;
244
+ }
245
+ yield [key, memberNs];
246
+ keysRemaining -= 1;
247
+ }
248
+ }
249
+
212
250
  function jsonReviver(key, value, context) {
213
251
  if (context?.source) {
214
252
  const numericString = context.source;
@@ -322,7 +360,7 @@ class JsonShapeDeserializer extends SerdeContextConfig {
322
360
  }
323
361
  else if (ns.isStructSchema() && isObject) {
324
362
  const out = {};
325
- for (const [memberName, memberSchema] of ns.structIterator()) {
363
+ for (const [memberName, memberSchema] of deserializingStructIterator(ns, value, this.settings.jsonName ? "jsonName" : false)) {
326
364
  const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
327
365
  const deserializedValue = this._read(memberSchema, value[fromKey]);
328
366
  if (deserializedValue != null) {
@@ -499,10 +537,10 @@ class JsonShapeSerializer extends SerdeContextConfig {
499
537
  }
500
538
  else if (ns.isStructSchema() && isObject) {
501
539
  const out = {};
502
- for (const [memberName, memberSchema] of ns.structIterator()) {
503
- const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
540
+ for (const [memberName, memberSchema] of serializingStructIterator(ns, value)) {
504
541
  const serializableValue = this._write(memberSchema, value[memberName], ns);
505
542
  if (serializableValue !== undefined) {
543
+ const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
506
544
  out[targetKey] = serializableValue;
507
545
  }
508
546
  }
@@ -1030,7 +1068,7 @@ class QueryShapeSerializer extends SerdeContextConfig {
1030
1068
  }
1031
1069
  else if (ns.isStructSchema()) {
1032
1070
  if (value && typeof value === "object") {
1033
- for (const [memberName, member] of ns.structIterator()) {
1071
+ for (const [memberName, member] of serializingStructIterator(ns, value)) {
1034
1072
  if (value[memberName] == null && !member.isIdempotencyToken()) {
1035
1073
  continue;
1036
1074
  }
@@ -1327,7 +1365,7 @@ class XmlShapeSerializer extends SerdeContextConfig {
1327
1365
  }
1328
1366
  const structXmlNode = xmlBuilder.XmlNode.of(name);
1329
1367
  const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);
1330
- for (const [memberName, memberSchema] of ns.structIterator()) {
1368
+ for (const [memberName, memberSchema] of serializingStructIterator(ns, value)) {
1331
1369
  const val = value[memberName];
1332
1370
  if (val != null || memberSchema.isIdempotencyToken()) {
1333
1371
  if (memberSchema.getMergedTraits().xmlAttribute) {
@@ -3,6 +3,7 @@ import { NormalizedSchema } from "@smithy/core/schema";
3
3
  import { LazyJsonString, NumericValue, parseEpochTimestamp, parseRfc3339DateTimeWithOffset, parseRfc7231DateTime, } from "@smithy/core/serde";
4
4
  import { fromBase64 } from "@smithy/util-base64";
5
5
  import { SerdeContextConfig } from "../ConfigurableSerdeContext";
6
+ import { deserializingStructIterator } from "../structIterator";
6
7
  import { jsonReviver } from "./jsonReviver";
7
8
  import { parseJsonBody } from "./parseJsonBody";
8
9
  export class JsonShapeDeserializer extends SerdeContextConfig {
@@ -44,7 +45,7 @@ export class JsonShapeDeserializer extends SerdeContextConfig {
44
45
  }
45
46
  else if (ns.isStructSchema() && isObject) {
46
47
  const out = {};
47
- for (const [memberName, memberSchema] of ns.structIterator()) {
48
+ for (const [memberName, memberSchema] of deserializingStructIterator(ns, value, this.settings.jsonName ? "jsonName" : false)) {
48
49
  const fromKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
49
50
  const deserializedValue = this._read(memberSchema, value[fromKey]);
50
51
  if (deserializedValue != null) {
@@ -3,6 +3,7 @@ import { NormalizedSchema } from "@smithy/core/schema";
3
3
  import { dateToUtcString, generateIdempotencyToken, LazyJsonString, NumericValue } from "@smithy/core/serde";
4
4
  import { toBase64 } from "@smithy/util-base64";
5
5
  import { SerdeContextConfig } from "../ConfigurableSerdeContext";
6
+ import { serializingStructIterator } from "../structIterator";
6
7
  import { JsonReplacer } from "./jsonReplacer";
7
8
  export class JsonShapeSerializer extends SerdeContextConfig {
8
9
  settings;
@@ -58,10 +59,10 @@ export class JsonShapeSerializer extends SerdeContextConfig {
58
59
  }
59
60
  else if (ns.isStructSchema() && isObject) {
60
61
  const out = {};
61
- for (const [memberName, memberSchema] of ns.structIterator()) {
62
- const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
62
+ for (const [memberName, memberSchema] of serializingStructIterator(ns, value)) {
63
63
  const serializableValue = this._write(memberSchema, value[memberName], ns);
64
64
  if (serializableValue !== undefined) {
65
+ const targetKey = this.settings.jsonName ? memberSchema.getMergedTraits().jsonName ?? memberName : memberName;
65
66
  out[targetKey] = serializableValue;
66
67
  }
67
68
  }
@@ -3,6 +3,7 @@ import { NormalizedSchema } from "@smithy/core/schema";
3
3
  import { dateToUtcString, generateIdempotencyToken, LazyJsonString, NumericValue } from "@smithy/core/serde";
4
4
  import { toBase64 } from "@smithy/util-base64";
5
5
  import { SerdeContextConfig } from "../../ConfigurableSerdeContext";
6
+ import { serializingStructIterator } from "../../structIterator";
6
7
  export class SinglePassJsonShapeSerializer extends SerdeContextConfig {
7
8
  settings;
8
9
  buffer;
@@ -44,7 +45,7 @@ export class SinglePassJsonShapeSerializer extends SerdeContextConfig {
44
45
  }
45
46
  else if (ns.isStructSchema()) {
46
47
  b += "{";
47
- for (const [name, member] of ns.structIterator()) {
48
+ for (const [name, member] of serializingStructIterator(ns, value)) {
48
49
  const item = value[name];
49
50
  const targetKey = this.settings.jsonName ? member.getMergedTraits().jsonName ?? name : name;
50
51
  const serializableValue = this.writeValue(member, item);
@@ -4,6 +4,7 @@ import { generateIdempotencyToken, NumericValue } from "@smithy/core/serde";
4
4
  import { dateToUtcString } from "@smithy/smithy-client";
5
5
  import { toBase64 } from "@smithy/util-base64";
6
6
  import { SerdeContextConfig } from "../ConfigurableSerdeContext";
7
+ import { serializingStructIterator } from "../structIterator";
7
8
  export class QueryShapeSerializer extends SerdeContextConfig {
8
9
  settings;
9
10
  buffer;
@@ -113,7 +114,7 @@ export class QueryShapeSerializer extends SerdeContextConfig {
113
114
  }
114
115
  else if (ns.isStructSchema()) {
115
116
  if (value && typeof value === "object") {
116
- for (const [memberName, member] of ns.structIterator()) {
117
+ for (const [memberName, member] of serializingStructIterator(ns, value)) {
117
118
  if (value[memberName] == null && !member.isIdempotencyToken()) {
118
119
  continue;
119
120
  }
@@ -0,0 +1,38 @@
1
+ import { NormalizedSchema } from "@smithy/core/schema";
2
+ export function* serializingStructIterator(ns, sourceObject) {
3
+ if (ns.isUnitSchema()) {
4
+ return;
5
+ }
6
+ const struct = ns.getSchema();
7
+ for (let i = 0; i < struct[4].length; ++i) {
8
+ const key = struct[4][i];
9
+ const memberNs = new NormalizedSchema([struct[5][i], 0], key);
10
+ if (!(key in sourceObject) && !memberNs.isIdempotencyToken()) {
11
+ continue;
12
+ }
13
+ yield [key, memberNs];
14
+ }
15
+ }
16
+ export function* deserializingStructIterator(ns, sourceObject, nameTrait) {
17
+ if (ns.isUnitSchema()) {
18
+ return;
19
+ }
20
+ const struct = ns.getSchema();
21
+ let keysRemaining = Object.keys(sourceObject).length;
22
+ for (let i = 0; i < struct[4].length; ++i) {
23
+ if (keysRemaining === 0) {
24
+ break;
25
+ }
26
+ const key = struct[4][i];
27
+ const memberNs = new NormalizedSchema([struct[5][i], 0], key);
28
+ let serializationKey = key;
29
+ if (nameTrait) {
30
+ serializationKey = memberNs.getMergedTraits()[nameTrait] ?? key;
31
+ }
32
+ if (!(serializationKey in sourceObject)) {
33
+ continue;
34
+ }
35
+ yield [key, memberNs];
36
+ keysRemaining -= 1;
37
+ }
38
+ }
@@ -5,6 +5,7 @@ import { generateIdempotencyToken, NumericValue } from "@smithy/core/serde";
5
5
  import { dateToUtcString } from "@smithy/smithy-client";
6
6
  import { fromBase64, toBase64 } from "@smithy/util-base64";
7
7
  import { SerdeContextConfig } from "../ConfigurableSerdeContext";
8
+ import { serializingStructIterator } from "../structIterator";
8
9
  export class XmlShapeSerializer extends SerdeContextConfig {
9
10
  settings;
10
11
  stringBuffer;
@@ -63,7 +64,7 @@ export class XmlShapeSerializer extends SerdeContextConfig {
63
64
  }
64
65
  const structXmlNode = XmlNode.of(name);
65
66
  const [xmlnsAttr, xmlns] = this.getXmlnsAttribute(ns, parentXmlns);
66
- for (const [memberName, memberSchema] of ns.structIterator()) {
67
+ for (const [memberName, memberSchema] of serializingStructIterator(ns, value)) {
67
68
  const val = value[memberName];
68
69
  if (val != null || memberSchema.isIdempotencyToken()) {
69
70
  if (memberSchema.getMergedTraits().xmlAttribute) {
@@ -0,0 +1,27 @@
1
+ import { NormalizedSchema } from "@smithy/core/schema";
2
+ /**
3
+ * @internal
4
+ */
5
+ type SourceObject = Record<string, any>;
6
+ /**
7
+ * For serialization use only.
8
+ * @internal
9
+ *
10
+ * @param ns - normalized schema object.
11
+ * @param sourceObject - source object from serialization.
12
+ */
13
+ export declare function serializingStructIterator(ns: NormalizedSchema, sourceObject: SourceObject): Generator<any[], void, unknown>;
14
+ /**
15
+ * For deserialization use only.
16
+ * Yields a subset of NormalizedSchema::structIterator matched to the source object keys.
17
+ * This is a performance optimization to avoid creation of NormalizedSchema member
18
+ * objects for members that are undefined in the source data object but may be numerous
19
+ * in the schema/model.
20
+ * @internal
21
+ *
22
+ * @param ns - normalized schema object.
23
+ * @param sourceObject - source object from deserialization.
24
+ * @param nameTrait - xmlName or jsonName trait to look for.
25
+ */
26
+ export declare function deserializingStructIterator(ns: NormalizedSchema, sourceObject: SourceObject, nameTrait?: "xmlName" | "jsonName" | false): Generator<any[], void, unknown>;
27
+ export {};
@@ -0,0 +1,12 @@
1
+ import { NormalizedSchema } from "@smithy/core/schema";
2
+ type SourceObject = Record<string, any>;
3
+ export declare function serializingStructIterator(
4
+ ns: NormalizedSchema,
5
+ sourceObject: SourceObject
6
+ ): Generator<any[], void, unknown>;
7
+ export declare function deserializingStructIterator(
8
+ ns: NormalizedSchema,
9
+ sourceObject: SourceObject,
10
+ nameTrait?: "xmlName" | "jsonName" | false
11
+ ): Generator<any[], void, unknown>;
12
+ export {};
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/core",
3
- "version": "3.936.0",
3
+ "version": "3.940.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.936.0",
3
+ "version": "3.940.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.936.0",
29
+ "@aws-sdk/core": "3.940.0",
30
30
  "@aws-sdk/types": "3.936.0",
31
31
  "@smithy/property-provider": "^4.2.5",
32
32
  "@smithy/types": "^4.9.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-http",
3
- "version": "3.936.0",
3
+ "version": "3.940.0",
4
4
  "description": "AWS credential provider for containers and HTTP sources",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "license": "Apache-2.0",
30
30
  "dependencies": {
31
- "@aws-sdk/core": "3.936.0",
31
+ "@aws-sdk/core": "3.940.0",
32
32
  "@aws-sdk/types": "3.936.0",
33
33
  "@smithy/fetch-http-handler": "^5.3.6",
34
34
  "@smithy/node-http-handler": "^4.4.5",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-ini",
3
- "version": "3.939.0",
3
+ "version": "3.940.0",
4
4
  "description": "AWS credential provider that sources credentials from ~/.aws/credentials and ~/.aws/config",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -28,14 +28,14 @@
28
28
  },
29
29
  "license": "Apache-2.0",
30
30
  "dependencies": {
31
- "@aws-sdk/core": "3.936.0",
32
- "@aws-sdk/credential-provider-env": "3.936.0",
33
- "@aws-sdk/credential-provider-http": "3.936.0",
34
- "@aws-sdk/credential-provider-login": "3.939.0",
35
- "@aws-sdk/credential-provider-process": "3.936.0",
36
- "@aws-sdk/credential-provider-sso": "3.939.0",
37
- "@aws-sdk/credential-provider-web-identity": "3.939.0",
38
- "@aws-sdk/nested-clients": "3.939.0",
31
+ "@aws-sdk/core": "3.940.0",
32
+ "@aws-sdk/credential-provider-env": "3.940.0",
33
+ "@aws-sdk/credential-provider-http": "3.940.0",
34
+ "@aws-sdk/credential-provider-login": "3.940.0",
35
+ "@aws-sdk/credential-provider-process": "3.940.0",
36
+ "@aws-sdk/credential-provider-sso": "3.940.0",
37
+ "@aws-sdk/credential-provider-web-identity": "3.940.0",
38
+ "@aws-sdk/nested-clients": "3.940.0",
39
39
  "@aws-sdk/types": "3.936.0",
40
40
  "@smithy/credential-provider-imds": "^4.2.5",
41
41
  "@smithy/property-provider": "^4.2.5",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-login",
3
- "version": "3.939.0",
3
+ "version": "3.940.0",
4
4
  "description": "AWS credential provider that sources credentials from aws login cached tokens",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -28,8 +28,8 @@
28
28
  },
29
29
  "license": "Apache-2.0",
30
30
  "dependencies": {
31
- "@aws-sdk/core": "3.936.0",
32
- "@aws-sdk/nested-clients": "3.939.0",
31
+ "@aws-sdk/core": "3.940.0",
32
+ "@aws-sdk/nested-clients": "3.940.0",
33
33
  "@aws-sdk/types": "3.936.0",
34
34
  "@smithy/property-provider": "^4.2.5",
35
35
  "@smithy/protocol-http": "^5.3.5",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-node",
3
- "version": "3.939.0",
3
+ "version": "3.940.0",
4
4
  "description": "AWS credential provider that sources credentials from a Node.JS environment. ",
5
5
  "engines": {
6
6
  "node": ">=18.0.0"
@@ -31,12 +31,12 @@
31
31
  },
32
32
  "license": "Apache-2.0",
33
33
  "dependencies": {
34
- "@aws-sdk/credential-provider-env": "3.936.0",
35
- "@aws-sdk/credential-provider-http": "3.936.0",
36
- "@aws-sdk/credential-provider-ini": "3.939.0",
37
- "@aws-sdk/credential-provider-process": "3.936.0",
38
- "@aws-sdk/credential-provider-sso": "3.939.0",
39
- "@aws-sdk/credential-provider-web-identity": "3.939.0",
34
+ "@aws-sdk/credential-provider-env": "3.940.0",
35
+ "@aws-sdk/credential-provider-http": "3.940.0",
36
+ "@aws-sdk/credential-provider-ini": "3.940.0",
37
+ "@aws-sdk/credential-provider-process": "3.940.0",
38
+ "@aws-sdk/credential-provider-sso": "3.940.0",
39
+ "@aws-sdk/credential-provider-web-identity": "3.940.0",
40
40
  "@aws-sdk/types": "3.936.0",
41
41
  "@smithy/credential-provider-imds": "^4.2.5",
42
42
  "@smithy/property-provider": "^4.2.5",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-process",
3
- "version": "3.936.0",
3
+ "version": "3.940.0",
4
4
  "description": "AWS credential provider that sources credential_process from ~/.aws/credentials and ~/.aws/config",
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.936.0",
29
+ "@aws-sdk/core": "3.940.0",
30
30
  "@aws-sdk/types": "3.936.0",
31
31
  "@smithy/property-provider": "^4.2.5",
32
32
  "@smithy/shared-ini-file-loader": "^4.4.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-sso",
3
- "version": "3.939.0",
3
+ "version": "3.940.0",
4
4
  "description": "AWS credential provider that exchanges a resolved SSO login token file for temporary AWS credentials",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -26,9 +26,9 @@
26
26
  },
27
27
  "license": "Apache-2.0",
28
28
  "dependencies": {
29
- "@aws-sdk/client-sso": "3.936.0",
30
- "@aws-sdk/core": "3.936.0",
31
- "@aws-sdk/token-providers": "3.939.0",
29
+ "@aws-sdk/client-sso": "3.940.0",
30
+ "@aws-sdk/core": "3.940.0",
31
+ "@aws-sdk/token-providers": "3.940.0",
32
32
  "@aws-sdk/types": "3.936.0",
33
33
  "@smithy/property-provider": "^4.2.5",
34
34
  "@smithy/shared-ini-file-loader": "^4.4.0",