@jjrawlins/cdk-iam-policy-builder-helper 0.0.91 → 0.0.93

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 (36) 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 +41 -0
  6. package/lib/constructs/Actions.js +42 -1
  7. package/methods_list.txt +41 -0
  8. package/node_modules/@aws-sdk/client-iam/package.json +5 -5
  9. package/node_modules/@aws-sdk/client-sso/package.json +4 -4
  10. package/node_modules/@aws-sdk/core/dist-cjs/index.js +43 -5
  11. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +43 -5
  12. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +2 -1
  13. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +3 -2
  14. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/SinglePassJsonShapeSerializer.js +2 -1
  15. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +2 -1
  16. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/structIterator.js +38 -0
  17. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +2 -1
  18. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/structIterator.d.ts +27 -0
  19. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/structIterator.d.ts +12 -0
  20. package/node_modules/@aws-sdk/core/package.json +1 -1
  21. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  22. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  23. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  24. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  25. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  26. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  27. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  28. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  29. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  30. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +2 -3
  31. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +2 -3
  32. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +2 -3
  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/package.json +4 -4
package/methods_list.txt CHANGED
@@ -2951,6 +2951,7 @@ cloudfront:CopyDistribution
2951
2951
  cloudfront:CreateAnycastIpList
2952
2952
  cloudfront:CreateCachePolicy
2953
2953
  cloudfront:CreateCloudFrontOriginAccessIdentity
2954
+ cloudfront:CreateConnectionFunction
2954
2955
  cloudfront:CreateConnectionGroup
2955
2956
  cloudfront:CreateContinuousDeploymentPolicy
2956
2957
  cloudfront:CreateDistribution
@@ -2971,10 +2972,12 @@ cloudfront:CreateResponseHeadersPolicy
2971
2972
  cloudfront:CreateSavingsPlan
2972
2973
  cloudfront:CreateStreamingDistribution
2973
2974
  cloudfront:CreateStreamingDistributionWithTags
2975
+ cloudfront:CreateTrustStore
2974
2976
  cloudfront:CreateVpcOrigin
2975
2977
  cloudfront:DeleteAnycastIpList
2976
2978
  cloudfront:DeleteCachePolicy
2977
2979
  cloudfront:DeleteCloudFrontOriginAccessIdentity
2980
+ cloudfront:DeleteConnectionFunction
2978
2981
  cloudfront:DeleteConnectionGroup
2979
2982
  cloudfront:DeleteContinuousDeploymentPolicy
2980
2983
  cloudfront:DeleteDistribution
@@ -2992,7 +2995,9 @@ cloudfront:DeleteRealtimeLogConfig
2992
2995
  cloudfront:DeleteResourcePolicy
2993
2996
  cloudfront:DeleteResponseHeadersPolicy
2994
2997
  cloudfront:DeleteStreamingDistribution
2998
+ cloudfront:DeleteTrustStore
2995
2999
  cloudfront:DeleteVpcOrigin
3000
+ cloudfront:DescribeConnectionFunction
2996
3001
  cloudfront:DescribeFunction
2997
3002
  cloudfront:DescribeKeyValueStore
2998
3003
  cloudfront:DisassociateDistributionTenantWebACL
@@ -3002,6 +3007,7 @@ cloudfront:GetCachePolicy
3002
3007
  cloudfront:GetCachePolicyConfig
3003
3008
  cloudfront:GetCloudFrontOriginAccessIdentity
3004
3009
  cloudfront:GetCloudFrontOriginAccessIdentityConfig
3010
+ cloudfront:GetConnectionFunction
3005
3011
  cloudfront:GetConnectionGroup
3006
3012
  cloudfront:GetConnectionGroupByRoutingEndpoint
3007
3013
  cloudfront:GetContinuousDeploymentPolicy
@@ -3034,22 +3040,26 @@ cloudfront:GetResponseHeadersPolicyConfig
3034
3040
  cloudfront:GetSavingsPlan
3035
3041
  cloudfront:GetStreamingDistribution
3036
3042
  cloudfront:GetStreamingDistributionConfig
3043
+ cloudfront:GetTrustStore
3037
3044
  cloudfront:GetVpcOrigin
3038
3045
  cloudfront:ListAnycastIpLists
3039
3046
  cloudfront:ListCachePolicies
3040
3047
  cloudfront:ListCloudFrontOriginAccessIdentities
3041
3048
  cloudfront:ListConflictingAliases
3049
+ cloudfront:ListConnectionFunctions
3042
3050
  cloudfront:ListConnectionGroups
3043
3051
  cloudfront:ListContinuousDeploymentPolicies
3044
3052
  cloudfront:ListDistributions
3045
3053
  cloudfront:ListDistributionsByAnycastIpListId
3046
3054
  cloudfront:ListDistributionsByCachePolicyId
3055
+ cloudfront:ListDistributionsByConnectionFunction
3047
3056
  cloudfront:ListDistributionsByConnectionMode
3048
3057
  cloudfront:ListDistributionsByKeyGroup
3049
3058
  cloudfront:ListDistributionsByLambdaFunction
3050
3059
  cloudfront:ListDistributionsByOriginRequestPolicyId
3051
3060
  cloudfront:ListDistributionsByRealtimeLogConfig
3052
3061
  cloudfront:ListDistributionsByResponseHeadersPolicyId
3062
+ cloudfront:ListDistributionsByTrustStore
3053
3063
  cloudfront:ListDistributionsByVpcOriginId
3054
3064
  cloudfront:ListDistributionsByWebACLId
3055
3065
  cloudfront:ListDistributionTenants
@@ -3071,16 +3081,20 @@ cloudfront:ListResponseHeadersPolicies
3071
3081
  cloudfront:ListSavingsPlans
3072
3082
  cloudfront:ListStreamingDistributions
3073
3083
  cloudfront:ListTagsForResource
3084
+ cloudfront:ListTrustStores
3074
3085
  cloudfront:ListUsages
3075
3086
  cloudfront:ListVpcOrigins
3087
+ cloudfront:PublishConnectionFunction
3076
3088
  cloudfront:PublishFunction
3077
3089
  cloudfront:PutResourcePolicy
3078
3090
  cloudfront:TagResource
3091
+ cloudfront:TestConnectionFunction
3079
3092
  cloudfront:TestFunction
3080
3093
  cloudfront:UntagResource
3081
3094
  cloudfront:UpdateAnycastIpList
3082
3095
  cloudfront:UpdateCachePolicy
3083
3096
  cloudfront:UpdateCloudFrontOriginAccessIdentity
3097
+ cloudfront:UpdateConnectionFunction
3084
3098
  cloudfront:UpdateConnectionGroup
3085
3099
  cloudfront:UpdateContinuousDeploymentPolicy
3086
3100
  cloudfront:UpdateDistribution
@@ -3099,6 +3113,7 @@ cloudfront:UpdateRealtimeLogConfig
3099
3113
  cloudfront:UpdateResponseHeadersPolicy
3100
3114
  cloudfront:UpdateSavingsPlan
3101
3115
  cloudfront:UpdateStreamingDistribution
3116
+ cloudfront:UpdateTrustStore
3102
3117
  cloudfront:UpdateVpcOrigin
3103
3118
  cloudfront:VerifyDnsConfiguration
3104
3119
  cloudhsm:CopyBackupToRegion
@@ -11376,6 +11391,7 @@ logs:PutDestinationPolicy
11376
11391
  logs:PutIndexPolicy
11377
11392
  logs:PutIntegration
11378
11393
  logs:PutLogEvents
11394
+ logs:PutLogGroupDeletionProtection
11379
11395
  logs:PutMetricFilter
11380
11396
  logs:PutQueryDefinition
11381
11397
  logs:PutResourcePolicy
@@ -11741,12 +11757,19 @@ mediaconnect:AddFlowMediaStreams
11741
11757
  mediaconnect:AddFlowOutputs
11742
11758
  mediaconnect:AddFlowSources
11743
11759
  mediaconnect:AddFlowVpcInterfaces
11760
+ mediaconnect:AssociateRouterNetworkInterface
11744
11761
  mediaconnect:CreateBridge
11745
11762
  mediaconnect:CreateFlow
11746
11763
  mediaconnect:CreateGateway
11764
+ mediaconnect:CreateRouterInput
11765
+ mediaconnect:CreateRouterNetworkInterface
11766
+ mediaconnect:CreateRouterOutput
11747
11767
  mediaconnect:DeleteBridge
11748
11768
  mediaconnect:DeleteFlow
11749
11769
  mediaconnect:DeleteGateway
11770
+ mediaconnect:DeleteRouterInput
11771
+ mediaconnect:DeleteRouterNetworkInterface
11772
+ mediaconnect:DeleteRouterOutput
11750
11773
  mediaconnect:DeregisterGatewayInstance
11751
11774
  mediaconnect:DescribeBridge
11752
11775
  mediaconnect:DescribeFlow
@@ -11757,6 +11780,11 @@ mediaconnect:DescribeGatewayInstance
11757
11780
  mediaconnect:DescribeOffering
11758
11781
  mediaconnect:DescribeReservation
11759
11782
  mediaconnect:DiscoverGatewayPollEndpoint
11783
+ mediaconnect:GetRouterInput
11784
+ mediaconnect:GetRouterInputSourceMetadata
11785
+ mediaconnect:GetRouterInputThumbnail
11786
+ mediaconnect:GetRouterNetworkInterface
11787
+ mediaconnect:GetRouterOutput
11760
11788
  mediaconnect:GrantFlowEntitlements
11761
11789
  mediaconnect:ListBridges
11762
11790
  mediaconnect:ListEntitlements
@@ -11765,6 +11793,9 @@ mediaconnect:ListGatewayInstances
11765
11793
  mediaconnect:ListGateways
11766
11794
  mediaconnect:ListOfferings
11767
11795
  mediaconnect:ListReservations
11796
+ mediaconnect:ListRouterInputs
11797
+ mediaconnect:ListRouterNetworkInterfaces
11798
+ mediaconnect:ListRouterOutputs
11768
11799
  mediaconnect:ListTagsForResource
11769
11800
  mediaconnect:PollGateway
11770
11801
  mediaconnect:PurchaseOffering
@@ -11774,11 +11805,18 @@ mediaconnect:RemoveFlowMediaStream
11774
11805
  mediaconnect:RemoveFlowOutput
11775
11806
  mediaconnect:RemoveFlowSource
11776
11807
  mediaconnect:RemoveFlowVpcInterface
11808
+ mediaconnect:RestartRouterInput
11809
+ mediaconnect:RestartRouterOutput
11777
11810
  mediaconnect:RevokeFlowEntitlement
11778
11811
  mediaconnect:StartFlow
11812
+ mediaconnect:StartRouterInput
11813
+ mediaconnect:StartRouterOutput
11779
11814
  mediaconnect:StopFlow
11815
+ mediaconnect:StopRouterInput
11816
+ mediaconnect:StopRouterOutput
11780
11817
  mediaconnect:SubmitGatewayStateChange
11781
11818
  mediaconnect:TagResource
11819
+ mediaconnect:TakeRouterInput
11782
11820
  mediaconnect:UntagResource
11783
11821
  mediaconnect:UpdateBridge
11784
11822
  mediaconnect:UpdateBridgeOutput
@@ -11790,6 +11828,9 @@ mediaconnect:UpdateFlowMediaStream
11790
11828
  mediaconnect:UpdateFlowOutput
11791
11829
  mediaconnect:UpdateFlowSource
11792
11830
  mediaconnect:UpdateGatewayInstance
11831
+ mediaconnect:UpdateRouterInput
11832
+ mediaconnect:UpdateRouterNetworkInterface
11833
+ mediaconnect:UpdateRouterOutput
11793
11834
  mediaconvert:AssociateCertificate
11794
11835
  mediaconvert:CancelJob
11795
11836
  mediaconvert:CreateJob
@@ -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.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-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.936.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.936.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.936.0",
35
- "@aws-sdk/credential-provider-process": "3.936.0",
36
- "@aws-sdk/credential-provider-sso": "3.936.0",
37
- "@aws-sdk/credential-provider-web-identity": "3.936.0",
38
- "@aws-sdk/nested-clients": "3.936.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",