aws-cdk-lib 2.51.0 → 2.51.1

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 (883) hide show
  1. package/.jsii.gz +0 -0
  2. package/alexa-ask/lib/ask.generated.js +1 -1
  3. package/assertions/lib/annotations.js +1 -1
  4. package/assertions/lib/capture.js +1 -1
  5. package/assertions/lib/match.js +1 -1
  6. package/assertions/lib/matcher.js +1 -1
  7. package/assertions/lib/template.js +1 -1
  8. package/assets/lib/staging.js +1 -1
  9. package/aws-accessanalyzer/lib/accessanalyzer.generated.js +1 -1
  10. package/aws-acmpca/lib/acmpca.generated.js +1 -1
  11. package/aws-acmpca/lib/certificate-authority.js +1 -1
  12. package/aws-amazonmq/lib/amazonmq.generated.js +1 -1
  13. package/aws-amplify/lib/amplify.generated.js +1 -1
  14. package/aws-amplifyuibuilder/lib/amplifyuibuilder.generated.js +1 -1
  15. package/aws-apigateway/lib/access-log.js +1 -1
  16. package/aws-apigateway/lib/api-definition.js +1 -1
  17. package/aws-apigateway/lib/api-key.js +1 -1
  18. package/aws-apigateway/lib/apigateway.generated.js +1 -1
  19. package/aws-apigateway/lib/apigatewayv2.js +1 -1
  20. package/aws-apigateway/lib/authorizer.js +1 -1
  21. package/aws-apigateway/lib/authorizers/cognito.js +1 -1
  22. package/aws-apigateway/lib/authorizers/identity-source.js +1 -1
  23. package/aws-apigateway/lib/authorizers/lambda.js +1 -1
  24. package/aws-apigateway/lib/base-path-mapping.js +1 -1
  25. package/aws-apigateway/lib/cors.js +1 -1
  26. package/aws-apigateway/lib/deployment.js +1 -1
  27. package/aws-apigateway/lib/domain-name.js +1 -1
  28. package/aws-apigateway/lib/gateway-response.js +1 -1
  29. package/aws-apigateway/lib/integration.js +1 -1
  30. package/aws-apigateway/lib/integrations/aws.js +1 -1
  31. package/aws-apigateway/lib/integrations/http.js +1 -1
  32. package/aws-apigateway/lib/integrations/lambda.js +1 -1
  33. package/aws-apigateway/lib/integrations/mock.js +1 -1
  34. package/aws-apigateway/lib/integrations/stepfunctions.js +1 -1
  35. package/aws-apigateway/lib/lambda-api.js +1 -1
  36. package/aws-apigateway/lib/method.js +1 -1
  37. package/aws-apigateway/lib/model.js +1 -1
  38. package/aws-apigateway/lib/requestvalidator.js +1 -1
  39. package/aws-apigateway/lib/resource.js +1 -1
  40. package/aws-apigateway/lib/restapi.js +1 -1
  41. package/aws-apigateway/lib/stage.js +1 -1
  42. package/aws-apigateway/lib/stepfunctions-api.js +1 -1
  43. package/aws-apigateway/lib/usage-plan.js +1 -1
  44. package/aws-apigateway/lib/vpc-link.js +1 -1
  45. package/aws-apigatewayv2/lib/apigatewayv2.generated.js +1 -1
  46. package/aws-appconfig/lib/appconfig.generated.js +1 -1
  47. package/aws-appflow/lib/appflow.generated.js +1 -1
  48. package/aws-appintegrations/lib/appintegrations.generated.js +1 -1
  49. package/aws-applicationautoscaling/lib/applicationautoscaling.generated.js +1 -1
  50. package/aws-applicationautoscaling/lib/base-scalable-attribute.js +1 -1
  51. package/aws-applicationautoscaling/lib/scalable-target.js +1 -1
  52. package/aws-applicationautoscaling/lib/schedule.js +1 -1
  53. package/aws-applicationautoscaling/lib/step-scaling-action.js +1 -1
  54. package/aws-applicationautoscaling/lib/step-scaling-policy.js +1 -1
  55. package/aws-applicationautoscaling/lib/target-tracking-scaling-policy.js +1 -1
  56. package/aws-applicationinsights/lib/applicationinsights.generated.js +1 -1
  57. package/aws-appmesh/lib/appmesh.generated.js +1 -1
  58. package/aws-appmesh/lib/gateway-route-spec.js +1 -1
  59. package/aws-appmesh/lib/gateway-route.js +1 -1
  60. package/aws-appmesh/lib/header-match.js +1 -1
  61. package/aws-appmesh/lib/health-checks.js +1 -1
  62. package/aws-appmesh/lib/http-route-path-match.js +1 -1
  63. package/aws-appmesh/lib/mesh.js +1 -1
  64. package/aws-appmesh/lib/query-parameter-match.js +1 -1
  65. package/aws-appmesh/lib/route-spec.js +1 -1
  66. package/aws-appmesh/lib/route.js +1 -1
  67. package/aws-appmesh/lib/service-discovery.js +1 -1
  68. package/aws-appmesh/lib/shared-interfaces.js +1 -1
  69. package/aws-appmesh/lib/tls-certificate.js +1 -1
  70. package/aws-appmesh/lib/tls-validation.js +1 -1
  71. package/aws-appmesh/lib/virtual-gateway-listener.js +1 -1
  72. package/aws-appmesh/lib/virtual-gateway.js +1 -1
  73. package/aws-appmesh/lib/virtual-node-listener.js +1 -1
  74. package/aws-appmesh/lib/virtual-node.js +1 -1
  75. package/aws-appmesh/lib/virtual-router-listener.js +1 -1
  76. package/aws-appmesh/lib/virtual-router.js +1 -1
  77. package/aws-appmesh/lib/virtual-service.js +1 -1
  78. package/aws-apprunner/lib/apprunner.generated.js +1 -1
  79. package/aws-appstream/lib/appstream.generated.js +1 -1
  80. package/aws-appsync/lib/appsync.generated.js +1 -1
  81. package/aws-aps/lib/aps.generated.js +1 -1
  82. package/aws-athena/lib/athena.generated.js +1 -1
  83. package/aws-auditmanager/lib/auditmanager.generated.js +1 -1
  84. package/aws-autoscaling/lib/aspects/require-imdsv2-aspect.js +1 -1
  85. package/aws-autoscaling/lib/auto-scaling-group.js +1 -1
  86. package/aws-autoscaling/lib/autoscaling.generated.js +1 -1
  87. package/aws-autoscaling/lib/lifecycle-hook.js +1 -1
  88. package/aws-autoscaling/lib/schedule.js +1 -1
  89. package/aws-autoscaling/lib/scheduled-action.js +1 -1
  90. package/aws-autoscaling/lib/step-scaling-action.js +1 -1
  91. package/aws-autoscaling/lib/step-scaling-policy.js +1 -1
  92. package/aws-autoscaling/lib/target-tracking-scaling-policy.js +1 -1
  93. package/aws-autoscaling/lib/volume.js +1 -1
  94. package/aws-autoscaling/lib/warm-pool.js +1 -1
  95. package/aws-autoscaling-hooktargets/lib/lambda-hook.js +1 -1
  96. package/aws-autoscaling-hooktargets/lib/queue-hook.js +1 -1
  97. package/aws-autoscaling-hooktargets/lib/topic-hook.js +1 -1
  98. package/aws-autoscalingplans/lib/autoscalingplans.generated.js +1 -1
  99. package/aws-backup/lib/backup.generated.js +1 -1
  100. package/aws-backup/lib/plan.js +1 -1
  101. package/aws-backup/lib/resource.js +1 -1
  102. package/aws-backup/lib/rule.js +1 -1
  103. package/aws-backup/lib/selection.js +1 -1
  104. package/aws-backup/lib/vault.js +1 -1
  105. package/aws-batch/lib/batch.generated.js +1 -1
  106. package/aws-billingconductor/lib/billingconductor.generated.js +1 -1
  107. package/aws-budgets/lib/budgets.generated.js +1 -1
  108. package/aws-cassandra/lib/cassandra.generated.js +1 -1
  109. package/aws-ce/lib/ce.generated.js +1 -1
  110. package/aws-certificatemanager/lib/certificate.js +1 -1
  111. package/aws-certificatemanager/lib/certificatemanager.generated.js +1 -1
  112. package/aws-certificatemanager/lib/dns-validated-certificate.js +1 -1
  113. package/aws-certificatemanager/lib/private-certificate.js +1 -1
  114. package/aws-chatbot/lib/chatbot.generated.js +1 -1
  115. package/aws-chatbot/lib/slack-channel-configuration.js +1 -1
  116. package/aws-cloud9/lib/cloud9.generated.js +1 -1
  117. package/aws-cloudformation/lib/cloudformation.generated.js +1 -1
  118. package/aws-cloudformation/lib/custom-resource.js +1 -1
  119. package/aws-cloudformation/lib/nested-stack.js +1 -1
  120. package/aws-cloudfront/lib/cache-policy.js +1 -1
  121. package/aws-cloudfront/lib/cloudfront.generated.js +1 -1
  122. package/aws-cloudfront/lib/distribution.js +1 -1
  123. package/aws-cloudfront/lib/experimental/edge-function.js +1 -1
  124. package/aws-cloudfront/lib/function.js +1 -1
  125. package/aws-cloudfront/lib/geo-restriction.js +1 -1
  126. package/aws-cloudfront/lib/key-group.js +1 -1
  127. package/aws-cloudfront/lib/origin-access-identity.js +1 -1
  128. package/aws-cloudfront/lib/origin-request-policy.js +1 -1
  129. package/aws-cloudfront/lib/origin.js +1 -1
  130. package/aws-cloudfront/lib/public-key.js +1 -1
  131. package/aws-cloudfront/lib/response-headers-policy.js +1 -1
  132. package/aws-cloudfront/lib/web-distribution.js +2 -2
  133. package/aws-cloudfront-origins/lib/http-origin.js +1 -1
  134. package/aws-cloudfront-origins/lib/load-balancer-origin.js +1 -1
  135. package/aws-cloudfront-origins/lib/origin-group.js +1 -1
  136. package/aws-cloudfront-origins/lib/rest-api-origin.js +1 -1
  137. package/aws-cloudfront-origins/lib/s3-origin.js +1 -1
  138. package/aws-cloudtrail/lib/cloudtrail.generated.js +1 -1
  139. package/aws-cloudtrail/lib/cloudtrail.js +1 -1
  140. package/aws-cloudwatch/lib/alarm-base.js +1 -1
  141. package/aws-cloudwatch/lib/alarm-rule.js +1 -1
  142. package/aws-cloudwatch/lib/alarm-status-widget.js +1 -1
  143. package/aws-cloudwatch/lib/alarm.js +1 -1
  144. package/aws-cloudwatch/lib/cloudwatch.generated.js +1 -1
  145. package/aws-cloudwatch/lib/composite-alarm.js +1 -1
  146. package/aws-cloudwatch/lib/dashboard.js +1 -1
  147. package/aws-cloudwatch/lib/graph.js +1 -1
  148. package/aws-cloudwatch/lib/layout.js +1 -1
  149. package/aws-cloudwatch/lib/log-query.js +1 -1
  150. package/aws-cloudwatch/lib/metric.js +1 -1
  151. package/aws-cloudwatch/lib/text.js +1 -1
  152. package/aws-cloudwatch/lib/widget.js +1 -1
  153. package/aws-cloudwatch-actions/lib/appscaling.js +1 -1
  154. package/aws-cloudwatch-actions/lib/autoscaling.js +1 -1
  155. package/aws-cloudwatch-actions/lib/ec2.js +1 -1
  156. package/aws-cloudwatch-actions/lib/sns.js +1 -1
  157. package/aws-cloudwatch-actions/lib/ssm.js +1 -1
  158. package/aws-codeartifact/lib/codeartifact.generated.js +1 -1
  159. package/aws-codebuild/lib/artifacts.js +1 -1
  160. package/aws-codebuild/lib/build-spec.js +1 -1
  161. package/aws-codebuild/lib/cache.js +1 -1
  162. package/aws-codebuild/lib/codebuild.generated.js +1 -1
  163. package/aws-codebuild/lib/events.js +1 -1
  164. package/aws-codebuild/lib/file-location.js +1 -1
  165. package/aws-codebuild/lib/linux-arm-build-image.js +1 -1
  166. package/aws-codebuild/lib/linux-gpu-build-image.js +1 -1
  167. package/aws-codebuild/lib/pipeline-project.js +1 -1
  168. package/aws-codebuild/lib/project.js +1 -1
  169. package/aws-codebuild/lib/report-group.js +1 -1
  170. package/aws-codebuild/lib/source-credentials.js +1 -1
  171. package/aws-codebuild/lib/source.js +1 -1
  172. package/aws-codebuild/lib/untrusted-code-boundary-policy.js +1 -1
  173. package/aws-codecommit/lib/code.js +1 -1
  174. package/aws-codecommit/lib/codecommit.generated.js +1 -1
  175. package/aws-codecommit/lib/events.js +1 -1
  176. package/aws-codecommit/lib/repository.js +1 -1
  177. package/aws-codedeploy/lib/base-deployment-config.js +1 -1
  178. package/aws-codedeploy/lib/codedeploy.generated.js +1 -1
  179. package/aws-codedeploy/lib/ecs/application.js +1 -1
  180. package/aws-codedeploy/lib/ecs/deployment-config.js +1 -1
  181. package/aws-codedeploy/lib/ecs/deployment-group.js +1 -1
  182. package/aws-codedeploy/lib/host-health-config.js +1 -1
  183. package/aws-codedeploy/lib/lambda/application.js +1 -1
  184. package/aws-codedeploy/lib/lambda/custom-deployment-config.js +1 -1
  185. package/aws-codedeploy/lib/lambda/deployment-config.js +1 -1
  186. package/aws-codedeploy/lib/lambda/deployment-group.js +1 -1
  187. package/aws-codedeploy/lib/server/application.js +1 -1
  188. package/aws-codedeploy/lib/server/deployment-config.js +1 -1
  189. package/aws-codedeploy/lib/server/deployment-group.js +1 -1
  190. package/aws-codedeploy/lib/server/load-balancer.js +1 -1
  191. package/aws-codedeploy/lib/traffic-routing-config.js +1 -1
  192. package/aws-codeguruprofiler/lib/codeguruprofiler.generated.js +1 -1
  193. package/aws-codeguruprofiler/lib/profiling-group.js +1 -1
  194. package/aws-codegurureviewer/lib/codegurureviewer.generated.js +1 -1
  195. package/aws-codepipeline/lib/action.js +1 -1
  196. package/aws-codepipeline/lib/artifact.js +1 -1
  197. package/aws-codepipeline/lib/codepipeline.generated.js +1 -1
  198. package/aws-codepipeline/lib/custom-action-registration.js +1 -1
  199. package/aws-codepipeline/lib/pipeline.js +1 -1
  200. package/aws-codepipeline-actions/lib/action.js +1 -1
  201. package/aws-codepipeline-actions/lib/alexa-ask/deploy-action.js +1 -1
  202. package/aws-codepipeline-actions/lib/bitbucket/source-action.js +1 -1
  203. package/aws-codepipeline-actions/lib/cloudformation/pipeline-actions.js +1 -1
  204. package/aws-codepipeline-actions/lib/cloudformation/stackinstances-action.js +1 -1
  205. package/aws-codepipeline-actions/lib/cloudformation/stackset-action.js +1 -1
  206. package/aws-codepipeline-actions/lib/cloudformation/stackset-types.js +1 -1
  207. package/aws-codepipeline-actions/lib/codebuild/build-action.js +1 -1
  208. package/aws-codepipeline-actions/lib/codecommit/source-action.js +1 -1
  209. package/aws-codepipeline-actions/lib/codedeploy/ecs-deploy-action.js +1 -1
  210. package/aws-codepipeline-actions/lib/codedeploy/server-deploy-action.js +1 -1
  211. package/aws-codepipeline-actions/lib/codestar-connections/source-action.js +1 -1
  212. package/aws-codepipeline-actions/lib/ecr/source-action.js +1 -1
  213. package/aws-codepipeline-actions/lib/ecs/deploy-action.js +1 -1
  214. package/aws-codepipeline-actions/lib/elastic-beanstalk/deploy-action.js +1 -1
  215. package/aws-codepipeline-actions/lib/github/source-action.js +1 -1
  216. package/aws-codepipeline-actions/lib/jenkins/jenkins-action.js +1 -1
  217. package/aws-codepipeline-actions/lib/jenkins/jenkins-provider.js +1 -1
  218. package/aws-codepipeline-actions/lib/lambda/invoke-action.js +1 -1
  219. package/aws-codepipeline-actions/lib/manual-approval-action.js +1 -1
  220. package/aws-codepipeline-actions/lib/s3/deploy-action.js +1 -1
  221. package/aws-codepipeline-actions/lib/s3/source-action.js +1 -1
  222. package/aws-codepipeline-actions/lib/servicecatalog/deploy-action-beta1.js +1 -1
  223. package/aws-codepipeline-actions/lib/stepfunctions/invoke-action.js +1 -1
  224. package/aws-codestar/lib/codestar.generated.js +1 -1
  225. package/aws-codestarconnections/lib/codestarconnections.generated.js +1 -1
  226. package/aws-codestarnotifications/lib/codestarnotifications.generated.js +1 -1
  227. package/aws-codestarnotifications/lib/notification-rule.js +1 -1
  228. package/aws-cognito/lib/cognito.generated.js +1 -1
  229. package/aws-cognito/lib/user-pool-attr.js +1 -1
  230. package/aws-cognito/lib/user-pool-client.js +1 -1
  231. package/aws-cognito/lib/user-pool-domain.js +1 -1
  232. package/aws-cognito/lib/user-pool-email.js +1 -1
  233. package/aws-cognito/lib/user-pool-idp.js +1 -1
  234. package/aws-cognito/lib/user-pool-idps/amazon.js +1 -1
  235. package/aws-cognito/lib/user-pool-idps/apple.js +1 -1
  236. package/aws-cognito/lib/user-pool-idps/base.js +1 -1
  237. package/aws-cognito/lib/user-pool-idps/facebook.js +1 -1
  238. package/aws-cognito/lib/user-pool-idps/google.js +1 -1
  239. package/aws-cognito/lib/user-pool-idps/oidc.js +1 -1
  240. package/aws-cognito/lib/user-pool-idps/saml.js +1 -1
  241. package/aws-cognito/lib/user-pool-resource-server.js +1 -1
  242. package/aws-cognito/lib/user-pool.js +1 -1
  243. package/aws-config/lib/config.generated.js +1 -1
  244. package/aws-config/lib/managed-rules.js +1 -1
  245. package/aws-config/lib/rule.js +1 -1
  246. package/aws-connect/lib/connect.generated.js +1 -1
  247. package/aws-connectcampaigns/lib/connectcampaigns.generated.js +1 -1
  248. package/aws-controltower/lib/controltower.generated.js +1 -1
  249. package/aws-cur/lib/cur.generated.js +1 -1
  250. package/aws-customerprofiles/lib/customerprofiles.generated.js +1 -1
  251. package/aws-databrew/lib/databrew.generated.js +1 -1
  252. package/aws-datapipeline/lib/datapipeline.generated.js +1 -1
  253. package/aws-datasync/lib/datasync.generated.js +1 -1
  254. package/aws-dax/lib/dax.generated.js +1 -1
  255. package/aws-detective/lib/detective.generated.js +1 -1
  256. package/aws-devopsguru/lib/devopsguru.generated.js +1 -1
  257. package/aws-directoryservice/lib/directoryservice.generated.js +1 -1
  258. package/aws-dlm/lib/dlm.generated.js +1 -1
  259. package/aws-dms/lib/dms.generated.js +1 -1
  260. package/aws-docdb/lib/cluster.js +1 -1
  261. package/aws-docdb/lib/database-secret.js +1 -1
  262. package/aws-docdb/lib/docdb.generated.js +1 -1
  263. package/aws-docdb/lib/endpoint.js +1 -1
  264. package/aws-docdb/lib/instance.js +1 -1
  265. package/aws-docdb/lib/parameter-group.js +1 -1
  266. package/aws-dynamodb/lib/dynamodb.generated.js +1 -1
  267. package/aws-dynamodb/lib/table.js +1 -1
  268. package/aws-ec2/lib/aspects/require-imdsv2-aspect.js +1 -1
  269. package/aws-ec2/lib/bastion-host.js +1 -1
  270. package/aws-ec2/lib/cfn-init-elements.js +1 -1
  271. package/aws-ec2/lib/cfn-init.js +1 -1
  272. package/aws-ec2/lib/client-vpn-authorization-rule.js +1 -1
  273. package/aws-ec2/lib/client-vpn-endpoint.js +1 -1
  274. package/aws-ec2/lib/client-vpn-route.js +1 -1
  275. package/aws-ec2/lib/connections.js +1 -1
  276. package/aws-ec2/lib/ec2.generated.js +1 -1
  277. package/aws-ec2/lib/instance-types.js +1 -1
  278. package/aws-ec2/lib/instance.js +1 -1
  279. package/aws-ec2/lib/ip-addresses.js +1 -1
  280. package/aws-ec2/lib/launch-template.js +1 -1
  281. package/aws-ec2/lib/machine-image.js +1 -1
  282. package/aws-ec2/lib/nat.js +1 -1
  283. package/aws-ec2/lib/network-acl-types.js +1 -1
  284. package/aws-ec2/lib/network-acl.js +1 -1
  285. package/aws-ec2/lib/peer.js +1 -1
  286. package/aws-ec2/lib/port.js +1 -1
  287. package/aws-ec2/lib/security-group.js +1 -1
  288. package/aws-ec2/lib/subnet.js +1 -1
  289. package/aws-ec2/lib/user-data.js +3 -3
  290. package/aws-ec2/lib/volume.js +1 -1
  291. package/aws-ec2/lib/vpc-endpoint-service.js +1 -1
  292. package/aws-ec2/lib/vpc-endpoint.js +1 -1
  293. package/aws-ec2/lib/vpc-flow-logs.js +1 -1
  294. package/aws-ec2/lib/vpc.js +1 -1
  295. package/aws-ec2/lib/vpn.js +1 -1
  296. package/aws-ecr/lib/auth-token.js +1 -1
  297. package/aws-ecr/lib/ecr.generated.js +1 -1
  298. package/aws-ecr/lib/repository.js +1 -1
  299. package/aws-ecr-assets/lib/image-asset.js +2 -2
  300. package/aws-ecr-assets/lib/tarball-asset.js +1 -1
  301. package/aws-ecs/lib/amis.js +1 -1
  302. package/aws-ecs/lib/base/base-service.js +1 -1
  303. package/aws-ecs/lib/base/scalable-task-count.js +1 -1
  304. package/aws-ecs/lib/base/task-definition.js +1 -1
  305. package/aws-ecs/lib/cluster.js +1 -1
  306. package/aws-ecs/lib/container-definition.js +1 -1
  307. package/aws-ecs/lib/container-image.js +1 -1
  308. package/aws-ecs/lib/ec2/ec2-service.js +1 -1
  309. package/aws-ecs/lib/ec2/ec2-task-definition.js +1 -1
  310. package/aws-ecs/lib/ecs.generated.js +1 -1
  311. package/aws-ecs/lib/environment-file.js +1 -1
  312. package/aws-ecs/lib/external/external-service.js +1 -1
  313. package/aws-ecs/lib/external/external-task-definition.js +1 -1
  314. package/aws-ecs/lib/fargate/fargate-service.js +1 -1
  315. package/aws-ecs/lib/fargate/fargate-task-definition.js +1 -1
  316. package/aws-ecs/lib/firelens-log-router.js +1 -1
  317. package/aws-ecs/lib/images/asset-image.js +1 -1
  318. package/aws-ecs/lib/images/ecr.js +1 -1
  319. package/aws-ecs/lib/images/repository.js +1 -1
  320. package/aws-ecs/lib/images/tag-parameter-container-image.js +1 -1
  321. package/aws-ecs/lib/linux-parameters.js +1 -1
  322. package/aws-ecs/lib/log-drivers/aws-log-driver.js +1 -1
  323. package/aws-ecs/lib/log-drivers/firelens-log-driver.js +1 -1
  324. package/aws-ecs/lib/log-drivers/fluentd-log-driver.js +1 -1
  325. package/aws-ecs/lib/log-drivers/gelf-log-driver.js +1 -1
  326. package/aws-ecs/lib/log-drivers/generic-log-driver.js +1 -1
  327. package/aws-ecs/lib/log-drivers/journald-log-driver.js +1 -1
  328. package/aws-ecs/lib/log-drivers/json-file-log-driver.js +1 -1
  329. package/aws-ecs/lib/log-drivers/log-driver.js +1 -1
  330. package/aws-ecs/lib/log-drivers/log-drivers.js +1 -1
  331. package/aws-ecs/lib/log-drivers/splunk-log-driver.js +1 -1
  332. package/aws-ecs/lib/log-drivers/syslog-log-driver.js +1 -1
  333. package/aws-ecs/lib/placement.js +1 -1
  334. package/aws-ecs/lib/proxy-configuration/app-mesh-proxy-configuration.js +1 -1
  335. package/aws-ecs/lib/proxy-configuration/proxy-configuration.js +1 -1
  336. package/aws-ecs/lib/proxy-configuration/proxy-configurations.js +1 -1
  337. package/aws-ecs/lib/runtime-platform.js +1 -1
  338. package/aws-ecs-patterns/lib/base/application-load-balanced-service-base.js +1 -1
  339. package/aws-ecs-patterns/lib/base/application-multiple-target-groups-service-base.js +1 -1
  340. package/aws-ecs-patterns/lib/base/network-load-balanced-service-base.js +1 -1
  341. package/aws-ecs-patterns/lib/base/network-multiple-target-groups-service-base.js +1 -1
  342. package/aws-ecs-patterns/lib/base/queue-processing-service-base.js +1 -1
  343. package/aws-ecs-patterns/lib/base/scheduled-task-base.js +1 -1
  344. package/aws-ecs-patterns/lib/ecs/application-load-balanced-ecs-service.js +1 -1
  345. package/aws-ecs-patterns/lib/ecs/application-multiple-target-groups-ecs-service.js +1 -1
  346. package/aws-ecs-patterns/lib/ecs/network-load-balanced-ecs-service.js +1 -1
  347. package/aws-ecs-patterns/lib/ecs/network-multiple-target-groups-ecs-service.js +1 -1
  348. package/aws-ecs-patterns/lib/ecs/queue-processing-ecs-service.js +1 -1
  349. package/aws-ecs-patterns/lib/ecs/scheduled-ecs-task.js +1 -1
  350. package/aws-ecs-patterns/lib/fargate/application-load-balanced-fargate-service.js +1 -1
  351. package/aws-ecs-patterns/lib/fargate/application-multiple-target-groups-fargate-service.js +1 -1
  352. package/aws-ecs-patterns/lib/fargate/network-load-balanced-fargate-service.js +1 -1
  353. package/aws-ecs-patterns/lib/fargate/network-multiple-target-groups-fargate-service.js +1 -1
  354. package/aws-ecs-patterns/lib/fargate/queue-processing-fargate-service.js +1 -1
  355. package/aws-ecs-patterns/lib/fargate/scheduled-fargate-task.js +1 -1
  356. package/aws-efs/lib/access-point.js +1 -1
  357. package/aws-efs/lib/efs-file-system.js +1 -1
  358. package/aws-efs/lib/efs.generated.js +1 -1
  359. package/aws-eks/lib/alb-controller.js +1 -1
  360. package/aws-eks/lib/aws-auth.js +1 -1
  361. package/aws-eks/lib/cluster.js +1 -1
  362. package/aws-eks/lib/eks.generated.js +1 -1
  363. package/aws-eks/lib/fargate-cluster.js +1 -1
  364. package/aws-eks/lib/fargate-profile.js +1 -1
  365. package/aws-eks/lib/helm-chart.js +1 -1
  366. package/aws-eks/lib/k8s-manifest.js +1 -1
  367. package/aws-eks/lib/k8s-object-value.js +1 -1
  368. package/aws-eks/lib/k8s-patch.js +1 -1
  369. package/aws-eks/lib/kubectl-provider.js +1 -1
  370. package/aws-eks/lib/managed-nodegroup.js +1 -1
  371. package/aws-eks/lib/oidc-provider.js +1 -1
  372. package/aws-eks/lib/service-account.js +1 -1
  373. package/aws-elasticache/lib/elasticache.generated.js +1 -1
  374. package/aws-elasticbeanstalk/lib/elasticbeanstalk.generated.js +1 -1
  375. package/aws-elasticloadbalancing/lib/elasticloadbalancing.generated.js +1 -1
  376. package/aws-elasticloadbalancing/lib/load-balancer.js +1 -1
  377. package/aws-elasticloadbalancingv2/lib/alb/application-listener-action.js +1 -1
  378. package/aws-elasticloadbalancingv2/lib/alb/application-listener-certificate.js +1 -1
  379. package/aws-elasticloadbalancingv2/lib/alb/application-listener-rule.js +1 -1
  380. package/aws-elasticloadbalancingv2/lib/alb/application-listener.js +1 -1
  381. package/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.js +1 -1
  382. package/aws-elasticloadbalancingv2/lib/alb/application-target-group.js +1 -1
  383. package/aws-elasticloadbalancingv2/lib/alb/conditions.js +1 -1
  384. package/aws-elasticloadbalancingv2/lib/elasticloadbalancingv2.generated.js +1 -1
  385. package/aws-elasticloadbalancingv2/lib/nlb/network-listener-action.js +1 -1
  386. package/aws-elasticloadbalancingv2/lib/nlb/network-listener.js +1 -1
  387. package/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.js +1 -1
  388. package/aws-elasticloadbalancingv2/lib/nlb/network-target-group.js +1 -1
  389. package/aws-elasticloadbalancingv2/lib/shared/base-listener.js +1 -1
  390. package/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.js +1 -1
  391. package/aws-elasticloadbalancingv2/lib/shared/base-target-group.js +1 -1
  392. package/aws-elasticloadbalancingv2/lib/shared/listener-certificate.js +1 -1
  393. package/aws-elasticloadbalancingv2/lib/shared/load-balancer-targets.js +1 -1
  394. package/aws-elasticloadbalancingv2-actions/lib/cognito-action.js +1 -1
  395. package/aws-elasticloadbalancingv2-targets/lib/alb-target.js +1 -1
  396. package/aws-elasticloadbalancingv2-targets/lib/instance-target.js +1 -1
  397. package/aws-elasticloadbalancingv2-targets/lib/ip-target.js +1 -1
  398. package/aws-elasticloadbalancingv2-targets/lib/lambda-target.js +1 -1
  399. package/aws-elasticsearch/lib/domain.js +1 -1
  400. package/aws-elasticsearch/lib/elasticsearch.generated.js +1 -1
  401. package/aws-emr/lib/emr.generated.js +1 -1
  402. package/aws-emrcontainers/lib/emrcontainers.generated.js +1 -1
  403. package/aws-emrserverless/lib/emrserverless.generated.js +1 -1
  404. package/aws-events/lib/api-destination.js +1 -1
  405. package/aws-events/lib/archive.js +1 -1
  406. package/aws-events/lib/connection.js +1 -1
  407. package/aws-events/lib/event-bus.js +1 -1
  408. package/aws-events/lib/event-pattern.js +1 -1
  409. package/aws-events/lib/events.generated.js +1 -1
  410. package/aws-events/lib/input.js +2 -2
  411. package/aws-events/lib/rule.js +1 -1
  412. package/aws-events/lib/schedule.js +1 -1
  413. package/aws-events-targets/lib/api-destination.js +1 -1
  414. package/aws-events-targets/lib/api-gateway.js +1 -1
  415. package/aws-events-targets/lib/aws-api.js +1 -1
  416. package/aws-events-targets/lib/batch.js +1 -1
  417. package/aws-events-targets/lib/codebuild.js +1 -1
  418. package/aws-events-targets/lib/codepipeline.js +1 -1
  419. package/aws-events-targets/lib/ecs-task.js +1 -1
  420. package/aws-events-targets/lib/event-bus.js +1 -1
  421. package/aws-events-targets/lib/kinesis-firehose-stream.js +1 -1
  422. package/aws-events-targets/lib/kinesis-stream.js +1 -1
  423. package/aws-events-targets/lib/lambda.js +1 -1
  424. package/aws-events-targets/lib/log-group.js +2 -2
  425. package/aws-events-targets/lib/sns.js +1 -1
  426. package/aws-events-targets/lib/sqs.js +1 -1
  427. package/aws-events-targets/lib/state-machine.js +1 -1
  428. package/aws-eventschemas/lib/eventschemas.generated.js +1 -1
  429. package/aws-evidently/lib/evidently.generated.js +1 -1
  430. package/aws-finspace/lib/finspace.generated.js +1 -1
  431. package/aws-fis/lib/fis.generated.js +1 -1
  432. package/aws-fms/lib/fms.generated.js +1 -1
  433. package/aws-forecast/lib/forecast.generated.js +1 -1
  434. package/aws-frauddetector/lib/frauddetector.generated.js +1 -1
  435. package/aws-fsx/lib/file-system.js +1 -1
  436. package/aws-fsx/lib/fsx.generated.js +1 -1
  437. package/aws-fsx/lib/lustre-file-system.js +1 -1
  438. package/aws-fsx/lib/maintenance-time.js +1 -1
  439. package/aws-gamelift/lib/gamelift.generated.js +1 -1
  440. package/aws-globalaccelerator/lib/accelerator.js +1 -1
  441. package/aws-globalaccelerator/lib/endpoint-group.js +1 -1
  442. package/aws-globalaccelerator/lib/endpoint.js +1 -1
  443. package/aws-globalaccelerator/lib/globalaccelerator.generated.js +1 -1
  444. package/aws-globalaccelerator/lib/listener.js +1 -1
  445. package/aws-globalaccelerator-endpoints/lib/alb.js +1 -1
  446. package/aws-globalaccelerator-endpoints/lib/eip.js +1 -1
  447. package/aws-globalaccelerator-endpoints/lib/instance.js +1 -1
  448. package/aws-globalaccelerator-endpoints/lib/nlb.js +1 -1
  449. package/aws-glue/lib/glue.generated.js +1 -1
  450. package/aws-greengrass/lib/greengrass.generated.js +1 -1
  451. package/aws-greengrassv2/lib/greengrassv2.generated.js +1 -1
  452. package/aws-groundstation/lib/groundstation.generated.js +1 -1
  453. package/aws-guardduty/lib/guardduty.generated.js +1 -1
  454. package/aws-healthlake/lib/healthlake.generated.js +1 -1
  455. package/aws-iam/lib/access-key.js +1 -1
  456. package/aws-iam/lib/grant.js +1 -1
  457. package/aws-iam/lib/group.js +1 -1
  458. package/aws-iam/lib/iam.generated.js +1 -1
  459. package/aws-iam/lib/lazy-role.js +1 -1
  460. package/aws-iam/lib/managed-policy.js +1 -1
  461. package/aws-iam/lib/oidc-provider.js +1 -1
  462. package/aws-iam/lib/permissions-boundary.js +1 -1
  463. package/aws-iam/lib/policy-document.js +1 -1
  464. package/aws-iam/lib/policy-statement.js +1 -1
  465. package/aws-iam/lib/policy.js +1 -1
  466. package/aws-iam/lib/principals.js +1 -1
  467. package/aws-iam/lib/role.js +1 -1
  468. package/aws-iam/lib/saml-provider.js +1 -1
  469. package/aws-iam/lib/unknown-principal.js +1 -1
  470. package/aws-iam/lib/user.js +1 -1
  471. package/aws-identitystore/lib/identitystore.generated.js +1 -1
  472. package/aws-imagebuilder/lib/imagebuilder.generated.js +1 -1
  473. package/aws-inspector/lib/inspector.generated.js +1 -1
  474. package/aws-inspectorv2/lib/inspectorv2.generated.js +1 -1
  475. package/aws-iot/lib/iot.generated.js +1 -1
  476. package/aws-iot1click/lib/iot1click.generated.js +1 -1
  477. package/aws-iotanalytics/lib/iotanalytics.generated.js +1 -1
  478. package/aws-iotcoredeviceadvisor/lib/iotcoredeviceadvisor.generated.js +1 -1
  479. package/aws-iotevents/lib/iotevents.generated.js +1 -1
  480. package/aws-iotfleethub/lib/iotfleethub.generated.js +1 -1
  481. package/aws-iotfleetwise/lib/iotfleetwise.generated.js +1 -1
  482. package/aws-iotsitewise/lib/iotsitewise.generated.js +1 -1
  483. package/aws-iotthingsgraph/lib/iotthingsgraph.generated.js +1 -1
  484. package/aws-iottwinmaker/lib/iottwinmaker.generated.js +1 -1
  485. package/aws-iotwireless/lib/iotwireless.generated.js +1 -1
  486. package/aws-ivs/lib/ivs.generated.js +1 -1
  487. package/aws-kafkaconnect/lib/kafkaconnect.generated.js +1 -1
  488. package/aws-kendra/lib/kendra.generated.js +1 -1
  489. package/aws-kinesis/lib/kinesis.generated.js +1 -1
  490. package/aws-kinesis/lib/stream.js +1 -1
  491. package/aws-kinesisanalytics/lib/kinesisanalytics.generated.js +1 -1
  492. package/aws-kinesisanalytics/lib/kinesisanalyticsv2.generated.js +1 -1
  493. package/aws-kinesisanalyticsv2/lib/kinesisanalyticsv2.generated.js +1 -1
  494. package/aws-kinesisfirehose/lib/kinesisfirehose.generated.js +1 -1
  495. package/aws-kinesisvideo/lib/kinesisvideo.generated.js +1 -1
  496. package/aws-kms/lib/alias.js +1 -1
  497. package/aws-kms/lib/key.js +1 -1
  498. package/aws-kms/lib/kms.generated.js +1 -1
  499. package/aws-kms/lib/via-service-principal.js +1 -1
  500. package/aws-lakeformation/lib/lakeformation.generated.js +1 -1
  501. package/aws-lambda/lib/alias.js +1 -1
  502. package/aws-lambda/lib/architecture.js +1 -1
  503. package/aws-lambda/lib/code-signing-config.js +1 -1
  504. package/aws-lambda/lib/code.js +1 -1
  505. package/aws-lambda/lib/event-invoke-config.js +1 -1
  506. package/aws-lambda/lib/event-source-filter.js +1 -1
  507. package/aws-lambda/lib/event-source-mapping.js +1 -1
  508. package/aws-lambda/lib/filesystem.js +1 -1
  509. package/aws-lambda/lib/function-base.js +1 -1
  510. package/aws-lambda/lib/function-url.js +1 -1
  511. package/aws-lambda/lib/function.js +1 -1
  512. package/aws-lambda/lib/handler.js +1 -1
  513. package/aws-lambda/lib/image-function.js +1 -1
  514. package/aws-lambda/lib/lambda-insights.js +1 -1
  515. package/aws-lambda/lib/lambda-version.js +1 -1
  516. package/aws-lambda/lib/lambda.generated.js +1 -1
  517. package/aws-lambda/lib/layers.js +1 -1
  518. package/aws-lambda/lib/log-retention.js +1 -1
  519. package/aws-lambda/lib/runtime.js +1 -1
  520. package/aws-lambda/lib/singleton-lambda.js +1 -1
  521. package/aws-lambda-destinations/lib/event-bridge.js +1 -1
  522. package/aws-lambda-destinations/lib/lambda.js +1 -1
  523. package/aws-lambda-destinations/lib/sns.js +1 -1
  524. package/aws-lambda-destinations/lib/sqs.js +1 -1
  525. package/aws-lambda-event-sources/lib/api.js +1 -1
  526. package/aws-lambda-event-sources/lib/dynamodb.js +1 -1
  527. package/aws-lambda-event-sources/lib/kafka.js +1 -1
  528. package/aws-lambda-event-sources/lib/kinesis.js +1 -1
  529. package/aws-lambda-event-sources/lib/s3.js +1 -1
  530. package/aws-lambda-event-sources/lib/sns-dlq.js +1 -1
  531. package/aws-lambda-event-sources/lib/sns.js +1 -1
  532. package/aws-lambda-event-sources/lib/sqs-dlq.js +1 -1
  533. package/aws-lambda-event-sources/lib/sqs.js +1 -1
  534. package/aws-lambda-event-sources/lib/stream.js +1 -1
  535. package/aws-lambda-nodejs/lib/function.js +1 -1
  536. package/aws-lex/lib/lex.generated.js +1 -1
  537. package/aws-licensemanager/lib/licensemanager.generated.js +1 -1
  538. package/aws-lightsail/lib/lightsail.generated.js +1 -1
  539. package/aws-location/lib/location.generated.js +1 -1
  540. package/aws-logs/lib/cross-account-destination.js +1 -1
  541. package/aws-logs/lib/log-group.js +1 -1
  542. package/aws-logs/lib/log-retention.js +1 -1
  543. package/aws-logs/lib/log-stream.js +1 -1
  544. package/aws-logs/lib/logs.generated.js +1 -1
  545. package/aws-logs/lib/metric-filter.js +1 -1
  546. package/aws-logs/lib/pattern.js +1 -1
  547. package/aws-logs/lib/policy.js +1 -1
  548. package/aws-logs/lib/query-definition.js +1 -1
  549. package/aws-logs/lib/subscription-filter.js +1 -1
  550. package/aws-logs-destinations/lib/kinesis.js +1 -1
  551. package/aws-logs-destinations/lib/lambda.js +1 -1
  552. package/aws-lookoutequipment/lib/lookoutequipment.generated.js +1 -1
  553. package/aws-lookoutmetrics/lib/lookoutmetrics.generated.js +1 -1
  554. package/aws-lookoutvision/lib/lookoutvision.generated.js +1 -1
  555. package/aws-m2/lib/m2.generated.js +1 -1
  556. package/aws-macie/lib/macie.generated.js +1 -1
  557. package/aws-managedblockchain/lib/managedblockchain.generated.js +1 -1
  558. package/aws-mediaconnect/lib/mediaconnect.generated.js +1 -1
  559. package/aws-mediaconvert/lib/mediaconvert.generated.js +1 -1
  560. package/aws-medialive/lib/medialive.generated.js +1 -1
  561. package/aws-mediapackage/lib/mediapackage.generated.js +1 -1
  562. package/aws-mediastore/lib/mediastore.generated.js +1 -1
  563. package/aws-mediatailor/lib/mediatailor.generated.js +1 -1
  564. package/aws-memorydb/lib/memorydb.generated.js +1 -1
  565. package/aws-msk/lib/msk.generated.js +1 -1
  566. package/aws-mwaa/lib/mwaa.generated.js +1 -1
  567. package/aws-neptune/lib/neptune.generated.js +1 -1
  568. package/aws-networkfirewall/lib/networkfirewall.generated.js +1 -1
  569. package/aws-networkmanager/lib/networkmanager.generated.js +1 -1
  570. package/aws-nimblestudio/lib/nimblestudio.generated.js +1 -1
  571. package/aws-opensearchservice/lib/domain.js +1 -1
  572. package/aws-opensearchservice/lib/opensearchservice.generated.js +1 -1
  573. package/aws-opensearchservice/lib/version.js +1 -1
  574. package/aws-opsworks/lib/opsworks.generated.js +1 -1
  575. package/aws-opsworkscm/lib/opsworkscm.generated.js +1 -1
  576. package/aws-organizations/lib/organizations.generated.js +1 -1
  577. package/aws-panorama/lib/panorama.generated.js +1 -1
  578. package/aws-personalize/lib/personalize.generated.js +1 -1
  579. package/aws-pinpoint/lib/pinpoint.generated.js +1 -1
  580. package/aws-pinpointemail/lib/pinpointemail.generated.js +1 -1
  581. package/aws-qldb/lib/qldb.generated.js +1 -1
  582. package/aws-quicksight/lib/quicksight.generated.js +1 -1
  583. package/aws-ram/lib/ram.generated.js +1 -1
  584. package/aws-rds/lib/cluster-engine.js +1 -1
  585. package/aws-rds/lib/cluster.js +1 -1
  586. package/aws-rds/lib/database-secret.js +1 -1
  587. package/aws-rds/lib/endpoint.js +1 -1
  588. package/aws-rds/lib/instance-engine.js +1 -1
  589. package/aws-rds/lib/instance.js +1 -1
  590. package/aws-rds/lib/option-group.js +1 -1
  591. package/aws-rds/lib/parameter-group.js +1 -1
  592. package/aws-rds/lib/props.js +1 -1
  593. package/aws-rds/lib/proxy.js +1 -1
  594. package/aws-rds/lib/rds.generated.js +1 -1
  595. package/aws-rds/lib/serverless-cluster.js +1 -1
  596. package/aws-rds/lib/subnet-group.js +1 -1
  597. package/aws-redshift/lib/redshift.generated.js +1 -1
  598. package/aws-redshiftserverless/lib/redshiftserverless.generated.js +1 -1
  599. package/aws-refactorspaces/lib/refactorspaces.generated.js +1 -1
  600. package/aws-rekognition/lib/rekognition.generated.js +1 -1
  601. package/aws-resiliencehub/lib/resiliencehub.generated.js +1 -1
  602. package/aws-resourceexplorer2/lib/resourceexplorer2.generated.js +1 -1
  603. package/aws-resourcegroups/lib/resourcegroups.generated.js +1 -1
  604. package/aws-robomaker/lib/robomaker.generated.js +1 -1
  605. package/aws-rolesanywhere/lib/rolesanywhere.generated.js +1 -1
  606. package/aws-route53/lib/hosted-zone.js +1 -1
  607. package/aws-route53/lib/record-set.js +1 -1
  608. package/aws-route53/lib/route53.generated.js +1 -1
  609. package/aws-route53/lib/vpc-endpoint-service-domain-name.js +1 -1
  610. package/aws-route53-patterns/lib/website-redirect.js +1 -1
  611. package/aws-route53-targets/lib/api-gateway-domain-name.js +1 -1
  612. package/aws-route53-targets/lib/api-gatewayv2-domain-name.js +1 -1
  613. package/aws-route53-targets/lib/bucket-website-target.js +1 -1
  614. package/aws-route53-targets/lib/classic-load-balancer-target.js +1 -1
  615. package/aws-route53-targets/lib/cloudfront-target.js +1 -1
  616. package/aws-route53-targets/lib/elastic-beanstalk-environment-target.js +1 -1
  617. package/aws-route53-targets/lib/global-accelerator-target.js +1 -1
  618. package/aws-route53-targets/lib/interface-vpc-endpoint-target.js +1 -1
  619. package/aws-route53-targets/lib/load-balancer-target.js +1 -1
  620. package/aws-route53-targets/lib/route53-record.js +1 -1
  621. package/aws-route53-targets/lib/userpool-domain.js +1 -1
  622. package/aws-route53recoverycontrol/lib/route53recoverycontrol.generated.js +1 -1
  623. package/aws-route53recoveryreadiness/lib/route53recoveryreadiness.generated.js +1 -1
  624. package/aws-route53resolver/lib/route53resolver.generated.js +1 -1
  625. package/aws-rum/lib/rum.generated.js +1 -1
  626. package/aws-s3/lib/bucket-policy.js +1 -1
  627. package/aws-s3/lib/bucket.js +1 -1
  628. package/aws-s3/lib/rule.js +1 -1
  629. package/aws-s3/lib/s3.generated.js +1 -1
  630. package/aws-s3-assets/lib/asset.js +1 -1
  631. package/aws-s3-deployment/lib/bucket-deployment.js +1 -1
  632. package/aws-s3-deployment/lib/source.js +1 -1
  633. package/aws-s3-notifications/lib/lambda.js +1 -1
  634. package/aws-s3-notifications/lib/sns.js +1 -1
  635. package/aws-s3-notifications/lib/sqs.js +1 -1
  636. package/aws-s3objectlambda/lib/s3objectlambda.generated.js +1 -1
  637. package/aws-s3outposts/lib/s3outposts.generated.js +1 -1
  638. package/aws-sagemaker/lib/sagemaker.generated.js +1 -1
  639. package/aws-sam/lib/sam.generated.js +1 -1
  640. package/aws-scheduler/lib/scheduler.generated.js +1 -1
  641. package/aws-sdb/lib/sdb.generated.js +1 -1
  642. package/aws-secretsmanager/lib/policy.js +1 -1
  643. package/aws-secretsmanager/lib/rotation-schedule.js +1 -1
  644. package/aws-secretsmanager/lib/secret-rotation.js +1 -1
  645. package/aws-secretsmanager/lib/secret.js +1 -1
  646. package/aws-secretsmanager/lib/secretsmanager.generated.js +1 -1
  647. package/aws-securityhub/lib/securityhub.generated.js +1 -1
  648. package/aws-servicecatalog/lib/cloudformation-template.js +1 -1
  649. package/aws-servicecatalog/lib/portfolio.js +1 -1
  650. package/aws-servicecatalog/lib/product-stack-history.js +1 -1
  651. package/aws-servicecatalog/lib/product-stack.js +1 -1
  652. package/aws-servicecatalog/lib/product.js +1 -1
  653. package/aws-servicecatalog/lib/servicecatalog.generated.js +1 -1
  654. package/aws-servicecatalog/lib/tag-options.js +1 -1
  655. package/aws-servicecatalogappregistry/lib/servicecatalogappregistry.generated.js +1 -1
  656. package/aws-servicediscovery/lib/alias-target-instance.js +1 -1
  657. package/aws-servicediscovery/lib/cname-instance.js +1 -1
  658. package/aws-servicediscovery/lib/http-namespace.js +1 -1
  659. package/aws-servicediscovery/lib/instance.js +1 -1
  660. package/aws-servicediscovery/lib/ip-instance.js +1 -1
  661. package/aws-servicediscovery/lib/non-ip-instance.js +1 -1
  662. package/aws-servicediscovery/lib/private-dns-namespace.js +1 -1
  663. package/aws-servicediscovery/lib/public-dns-namespace.js +1 -1
  664. package/aws-servicediscovery/lib/service.js +1 -1
  665. package/aws-servicediscovery/lib/servicediscovery.generated.js +1 -1
  666. package/aws-ses/lib/configuration-set.js +1 -1
  667. package/aws-ses/lib/dedicated-ip-pool.js +1 -1
  668. package/aws-ses/lib/email-identity.js +1 -1
  669. package/aws-ses/lib/receipt-filter.js +1 -1
  670. package/aws-ses/lib/receipt-rule-set.js +1 -1
  671. package/aws-ses/lib/receipt-rule.js +1 -1
  672. package/aws-ses/lib/ses.generated.js +1 -1
  673. package/aws-ses-actions/lib/add-header.js +1 -1
  674. package/aws-ses-actions/lib/bounce.js +1 -1
  675. package/aws-ses-actions/lib/lambda.js +1 -1
  676. package/aws-ses-actions/lib/s3.js +1 -1
  677. package/aws-ses-actions/lib/sns.js +1 -1
  678. package/aws-ses-actions/lib/stop.js +1 -1
  679. package/aws-signer/lib/signer.generated.js +1 -1
  680. package/aws-signer/lib/signing-profile.js +1 -1
  681. package/aws-sns/lib/policy.js +1 -1
  682. package/aws-sns/lib/sns.generated.js +1 -1
  683. package/aws-sns/lib/subscription-filter.js +1 -1
  684. package/aws-sns/lib/subscription.js +1 -1
  685. package/aws-sns/lib/topic-base.js +1 -1
  686. package/aws-sns/lib/topic.js +1 -1
  687. package/aws-sns-subscriptions/lib/email.js +1 -1
  688. package/aws-sns-subscriptions/lib/lambda.js +1 -1
  689. package/aws-sns-subscriptions/lib/sms.js +1 -1
  690. package/aws-sns-subscriptions/lib/sqs.js +1 -1
  691. package/aws-sns-subscriptions/lib/url.js +1 -1
  692. package/aws-sqs/lib/policy.js +1 -1
  693. package/aws-sqs/lib/queue-base.js +1 -1
  694. package/aws-sqs/lib/queue.js +1 -1
  695. package/aws-sqs/lib/sqs.generated.js +1 -1
  696. package/aws-ssm/lib/parameter.js +1 -1
  697. package/aws-ssm/lib/ssm.generated.js +1 -1
  698. package/aws-ssmcontacts/lib/ssmcontacts.generated.js +1 -1
  699. package/aws-ssmincidents/lib/ssmincidents.generated.js +1 -1
  700. package/aws-sso/lib/sso.generated.js +1 -1
  701. package/aws-stepfunctions/lib/activity.js +1 -1
  702. package/aws-stepfunctions/lib/chain.js +1 -1
  703. package/aws-stepfunctions/lib/condition.js +1 -1
  704. package/aws-stepfunctions/lib/fields.js +1 -1
  705. package/aws-stepfunctions/lib/input.js +1 -1
  706. package/aws-stepfunctions/lib/state-graph.js +1 -1
  707. package/aws-stepfunctions/lib/state-machine-fragment.js +1 -1
  708. package/aws-stepfunctions/lib/state-machine.js +1 -1
  709. package/aws-stepfunctions/lib/state-transition-metrics.js +1 -1
  710. package/aws-stepfunctions/lib/states/choice.js +1 -1
  711. package/aws-stepfunctions/lib/states/custom-state.js +1 -1
  712. package/aws-stepfunctions/lib/states/fail.js +1 -1
  713. package/aws-stepfunctions/lib/states/map.js +1 -1
  714. package/aws-stepfunctions/lib/states/parallel.js +1 -1
  715. package/aws-stepfunctions/lib/states/pass.js +1 -1
  716. package/aws-stepfunctions/lib/states/state.js +1 -1
  717. package/aws-stepfunctions/lib/states/succeed.js +1 -1
  718. package/aws-stepfunctions/lib/states/task-base.js +1 -1
  719. package/aws-stepfunctions/lib/states/task.js +1 -1
  720. package/aws-stepfunctions/lib/states/wait.js +1 -1
  721. package/aws-stepfunctions/lib/stepfunctions.generated.js +1 -1
  722. package/aws-stepfunctions/lib/types.js +1 -1
  723. package/aws-stepfunctions-tasks/lib/apigateway/call-http-api.js +1 -1
  724. package/aws-stepfunctions-tasks/lib/apigateway/call-rest-api.js +1 -1
  725. package/aws-stepfunctions-tasks/lib/athena/get-query-execution.js +1 -1
  726. package/aws-stepfunctions-tasks/lib/athena/get-query-results.js +1 -1
  727. package/aws-stepfunctions-tasks/lib/athena/start-query-execution.js +1 -1
  728. package/aws-stepfunctions-tasks/lib/athena/stop-query-execution.js +1 -1
  729. package/aws-stepfunctions-tasks/lib/aws-sdk/call-aws-service.js +1 -1
  730. package/aws-stepfunctions-tasks/lib/batch/run-batch-job.js +1 -1
  731. package/aws-stepfunctions-tasks/lib/batch/submit-job.js +1 -1
  732. package/aws-stepfunctions-tasks/lib/codebuild/start-build.js +1 -1
  733. package/aws-stepfunctions-tasks/lib/databrew/start-job-run.js +1 -1
  734. package/aws-stepfunctions-tasks/lib/dynamodb/delete-item.js +1 -1
  735. package/aws-stepfunctions-tasks/lib/dynamodb/get-item.js +1 -1
  736. package/aws-stepfunctions-tasks/lib/dynamodb/put-item.js +1 -1
  737. package/aws-stepfunctions-tasks/lib/dynamodb/shared-types.js +1 -1
  738. package/aws-stepfunctions-tasks/lib/dynamodb/update-item.js +1 -1
  739. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-ec2-task.js +1 -1
  740. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-fargate-task.js +1 -1
  741. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-task-base.js +1 -1
  742. package/aws-stepfunctions-tasks/lib/ecs/run-task.js +1 -1
  743. package/aws-stepfunctions-tasks/lib/eks/call.js +1 -1
  744. package/aws-stepfunctions-tasks/lib/emr/emr-add-step.js +1 -1
  745. package/aws-stepfunctions-tasks/lib/emr/emr-cancel-step.js +1 -1
  746. package/aws-stepfunctions-tasks/lib/emr/emr-create-cluster.js +1 -1
  747. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-fleet-by-name.js +1 -1
  748. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-group-by-name.js +1 -1
  749. package/aws-stepfunctions-tasks/lib/emr/emr-set-cluster-termination-protection.js +1 -1
  750. package/aws-stepfunctions-tasks/lib/emr/emr-terminate-cluster.js +1 -1
  751. package/aws-stepfunctions-tasks/lib/emrcontainers/create-virtual-cluster.js +1 -1
  752. package/aws-stepfunctions-tasks/lib/emrcontainers/delete-virtual-cluster.js +1 -1
  753. package/aws-stepfunctions-tasks/lib/emrcontainers/start-job-run.js +1 -1
  754. package/aws-stepfunctions-tasks/lib/evaluate-expression.js +1 -1
  755. package/aws-stepfunctions-tasks/lib/eventbridge/put-events.js +1 -1
  756. package/aws-stepfunctions-tasks/lib/glue/run-glue-job-task.js +1 -1
  757. package/aws-stepfunctions-tasks/lib/glue/start-job-run.js +1 -1
  758. package/aws-stepfunctions-tasks/lib/invoke-activity.js +1 -1
  759. package/aws-stepfunctions-tasks/lib/lambda/invoke-function.js +1 -1
  760. package/aws-stepfunctions-tasks/lib/lambda/invoke.js +1 -1
  761. package/aws-stepfunctions-tasks/lib/lambda/run-lambda-task.js +1 -1
  762. package/aws-stepfunctions-tasks/lib/sagemaker/base-types.js +1 -1
  763. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint-config.js +1 -1
  764. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint.js +1 -1
  765. package/aws-stepfunctions-tasks/lib/sagemaker/create-model.js +1 -1
  766. package/aws-stepfunctions-tasks/lib/sagemaker/create-training-job.js +1 -1
  767. package/aws-stepfunctions-tasks/lib/sagemaker/create-transform-job.js +1 -1
  768. package/aws-stepfunctions-tasks/lib/sagemaker/update-endpoint.js +1 -1
  769. package/aws-stepfunctions-tasks/lib/sns/publish-to-topic.js +1 -1
  770. package/aws-stepfunctions-tasks/lib/sns/publish.js +1 -1
  771. package/aws-stepfunctions-tasks/lib/sqs/send-message.js +1 -1
  772. package/aws-stepfunctions-tasks/lib/sqs/send-to-queue.js +1 -1
  773. package/aws-stepfunctions-tasks/lib/start-execution.js +1 -1
  774. package/aws-stepfunctions-tasks/lib/stepfunctions/invoke-activity.js +1 -1
  775. package/aws-stepfunctions-tasks/lib/stepfunctions/start-execution.js +1 -1
  776. package/aws-supportapp/lib/supportapp.generated.js +1 -1
  777. package/aws-synthetics/lib/synthetics.generated.js +1 -1
  778. package/aws-timestream/lib/timestream.generated.js +1 -1
  779. package/aws-transfer/lib/transfer.generated.js +1 -1
  780. package/aws-voiceid/lib/voiceid.generated.js +1 -1
  781. package/aws-waf/lib/waf.generated.js +1 -1
  782. package/aws-wafregional/lib/wafregional.generated.js +1 -1
  783. package/aws-wafv2/lib/wafv2.generated.js +1 -1
  784. package/aws-wisdom/lib/wisdom.generated.js +1 -1
  785. package/aws-workspaces/lib/workspaces.generated.js +1 -1
  786. package/aws-xray/lib/xray.generated.js +1 -1
  787. package/cloud-assembly-schema/lib/manifest.js +1 -1
  788. package/cloudformation-include/lib/cfn-include.js +1 -1
  789. package/core/lib/annotations.js +1 -1
  790. package/core/lib/app.js +1 -1
  791. package/core/lib/arn.js +1 -1
  792. package/core/lib/aspect.js +1 -1
  793. package/core/lib/asset-staging.js +1 -1
  794. package/core/lib/bundling.js +1 -1
  795. package/core/lib/cfn-codedeploy-blue-green-hook.js +1 -1
  796. package/core/lib/cfn-condition.js +1 -1
  797. package/core/lib/cfn-dynamic-reference.js +1 -1
  798. package/core/lib/cfn-element.js +1 -1
  799. package/core/lib/cfn-fn.js +1 -1
  800. package/core/lib/cfn-hook.js +1 -1
  801. package/core/lib/cfn-include.js +1 -1
  802. package/core/lib/cfn-json.js +1 -1
  803. package/core/lib/cfn-mapping.js +1 -1
  804. package/core/lib/cfn-output.js +1 -1
  805. package/core/lib/cfn-parameter.js +1 -1
  806. package/core/lib/cfn-pseudo.js +1 -1
  807. package/core/lib/cfn-resource.js +1 -1
  808. package/core/lib/cfn-rule.js +1 -1
  809. package/core/lib/cloudformation.generated.js +1 -1
  810. package/core/lib/context-provider.js +1 -1
  811. package/core/lib/custom-resource-provider/custom-resource-provider.js +1 -1
  812. package/core/lib/custom-resource.js +1 -1
  813. package/core/lib/duration.js +1 -1
  814. package/core/lib/expiration.js +1 -1
  815. package/core/lib/feature-flags.js +1 -1
  816. package/core/lib/fs/ignore.js +1 -1
  817. package/core/lib/fs/index.js +1 -1
  818. package/core/lib/lazy.js +1 -1
  819. package/core/lib/names.js +1 -1
  820. package/core/lib/nested-stack.js +1 -1
  821. package/core/lib/physical-name.js +1 -1
  822. package/core/lib/private/intrinsic.js +1 -1
  823. package/core/lib/reference.js +1 -1
  824. package/core/lib/resolvable.js +2 -2
  825. package/core/lib/resource.js +1 -1
  826. package/core/lib/runtime.js +2 -2
  827. package/core/lib/secret-value.js +1 -1
  828. package/core/lib/size.js +1 -1
  829. package/core/lib/stack-synthesizers/asset-manifest-builder.js +1 -1
  830. package/core/lib/stack-synthesizers/bootstrapless-synthesizer.js +1 -1
  831. package/core/lib/stack-synthesizers/cli-credentials-synthesizer.js +1 -1
  832. package/core/lib/stack-synthesizers/default-synthesizer.js +1 -1
  833. package/core/lib/stack-synthesizers/legacy.js +1 -1
  834. package/core/lib/stack-synthesizers/nested.js +1 -1
  835. package/core/lib/stack-synthesizers/stack-synthesizer.js +1 -1
  836. package/core/lib/stack.js +1 -1
  837. package/core/lib/stage.js +1 -1
  838. package/core/lib/string-fragments.js +1 -1
  839. package/core/lib/tag-aspect.js +1 -1
  840. package/core/lib/tag-manager.js +1 -1
  841. package/core/lib/token.js +1 -1
  842. package/core/lib/tree.js +1 -1
  843. package/custom-resources/lib/aws-custom-resource/aws-custom-resource.js +1 -1
  844. package/custom-resources/lib/provider-framework/provider.js +1 -1
  845. package/cx-api/lib/artifacts/asset-manifest-artifact.js +1 -1
  846. package/cx-api/lib/artifacts/cloudformation-artifact.js +1 -1
  847. package/cx-api/lib/artifacts/nested-cloud-assembly-artifact.js +1 -1
  848. package/cx-api/lib/artifacts/tree-cloud-artifact.js +1 -1
  849. package/cx-api/lib/cloud-artifact.js +1 -1
  850. package/cx-api/lib/cloud-assembly.js +1 -1
  851. package/cx-api/lib/environment.js +1 -1
  852. package/cx-api/lib/placeholders.js +1 -1
  853. package/lambda-layer-awscli/lib/awscli-layer.js +1 -1
  854. package/lambda-layer-kubectl/lib/kubectl-layer.js +1 -1
  855. package/lambda-layer-node-proxy-agent/lib/node-proxy-agent-layer.js +1 -1
  856. package/package.json +253 -253
  857. package/pipelines/lib/blueprint/file-set.js +1 -1
  858. package/pipelines/lib/blueprint/manual-approval.js +1 -1
  859. package/pipelines/lib/blueprint/shell-step.js +1 -1
  860. package/pipelines/lib/blueprint/stack-deployment.js +1 -1
  861. package/pipelines/lib/blueprint/stage-deployment.js +1 -1
  862. package/pipelines/lib/blueprint/step.js +1 -1
  863. package/pipelines/lib/blueprint/wave.js +1 -1
  864. package/pipelines/lib/codepipeline/artifact-map.js +1 -1
  865. package/pipelines/lib/codepipeline/codebuild-step.js +1 -1
  866. package/pipelines/lib/codepipeline/codepipeline-source.js +1 -1
  867. package/pipelines/lib/codepipeline/codepipeline.js +1 -1
  868. package/pipelines/lib/codepipeline/confirm-permissions-broadening.js +1 -1
  869. package/pipelines/lib/docker-credentials.js +1 -1
  870. package/pipelines/lib/legacy/actions/deploy-cdk-stack-action.js +1 -1
  871. package/pipelines/lib/legacy/actions/publish-assets-action.js +1 -1
  872. package/pipelines/lib/legacy/actions/update-pipeline-action.js +1 -1
  873. package/pipelines/lib/legacy/pipeline.js +1 -1
  874. package/pipelines/lib/legacy/stage.js +1 -1
  875. package/pipelines/lib/legacy/synths/simple-synth-action.js +1 -1
  876. package/pipelines/lib/legacy/validation/shell-script-action.js +1 -1
  877. package/pipelines/lib/main/pipeline-base.js +1 -1
  878. package/region-info/lib/built-ins.generated.d.ts +1 -1
  879. package/region-info/lib/default.js +1 -1
  880. package/region-info/lib/fact.js +1 -1
  881. package/region-info/lib/region-info.js +1 -1
  882. package/triggers/lib/trigger-function.js +1 -1
  883. package/triggers/lib/trigger.js +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnTable=exports.CfnGlobalTable=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnGlobalTablePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeDefinitions",cdk.requiredValidator)(properties.attributeDefinitions)),errors.collect(cdk.propertyValidator("attributeDefinitions",cdk.listValidator(CfnGlobalTable_AttributeDefinitionPropertyValidator))(properties.attributeDefinitions)),errors.collect(cdk.propertyValidator("billingMode",cdk.validateString)(properties.billingMode)),errors.collect(cdk.propertyValidator("globalSecondaryIndexes",cdk.listValidator(CfnGlobalTable_GlobalSecondaryIndexPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnGlobalTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("localSecondaryIndexes",cdk.listValidator(CfnGlobalTable_LocalSecondaryIndexPropertyValidator))(properties.localSecondaryIndexes)),errors.collect(cdk.propertyValidator("replicas",cdk.requiredValidator)(properties.replicas)),errors.collect(cdk.propertyValidator("replicas",cdk.listValidator(CfnGlobalTable_ReplicaSpecificationPropertyValidator))(properties.replicas)),errors.collect(cdk.propertyValidator("sseSpecification",CfnGlobalTable_SSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk.propertyValidator("streamSpecification",CfnGlobalTable_StreamSpecificationPropertyValidator)(properties.streamSpecification)),errors.collect(cdk.propertyValidator("tableName",cdk.validateString)(properties.tableName)),errors.collect(cdk.propertyValidator("timeToLiveSpecification",CfnGlobalTable_TimeToLiveSpecificationPropertyValidator)(properties.timeToLiveSpecification)),errors.collect(cdk.propertyValidator("writeProvisionedThroughputSettings",CfnGlobalTable_WriteProvisionedThroughputSettingsPropertyValidator)(properties.writeProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "CfnGlobalTableProps"')}function cfnGlobalTablePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTablePropsValidator(properties).assertSuccess(),{AttributeDefinitions:cdk.listMapper(cfnGlobalTableAttributeDefinitionPropertyToCloudFormation)(properties.attributeDefinitions),KeySchema:cdk.listMapper(cfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Replicas:cdk.listMapper(cfnGlobalTableReplicaSpecificationPropertyToCloudFormation)(properties.replicas),BillingMode:cdk.stringToCloudFormation(properties.billingMode),GlobalSecondaryIndexes:cdk.listMapper(cfnGlobalTableGlobalSecondaryIndexPropertyToCloudFormation)(properties.globalSecondaryIndexes),LocalSecondaryIndexes:cdk.listMapper(cfnGlobalTableLocalSecondaryIndexPropertyToCloudFormation)(properties.localSecondaryIndexes),SSESpecification:cfnGlobalTableSSESpecificationPropertyToCloudFormation(properties.sseSpecification),StreamSpecification:cfnGlobalTableStreamSpecificationPropertyToCloudFormation(properties.streamSpecification),TableName:cdk.stringToCloudFormation(properties.tableName),TimeToLiveSpecification:cfnGlobalTableTimeToLiveSpecificationPropertyToCloudFormation(properties.timeToLiveSpecification),WriteProvisionedThroughputSettings:cfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties.writeProvisionedThroughputSettings)}):properties}function CfnGlobalTablePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeDefinitions","AttributeDefinitions",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableAttributeDefinitionPropertyFromCloudFormation)(properties.AttributeDefinitions)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("replicas","Replicas",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableReplicaSpecificationPropertyFromCloudFormation)(properties.Replicas)),ret.addPropertyResult("billingMode","BillingMode",properties.BillingMode!=null?cfn_parse.FromCloudFormation.getString(properties.BillingMode):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnGlobalTableGlobalSecondaryIndexPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("localSecondaryIndexes","LocalSecondaryIndexes",properties.LocalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnGlobalTableLocalSecondaryIndexPropertyFromCloudFormation)(properties.LocalSecondaryIndexes):void 0),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnGlobalTableSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("streamSpecification","StreamSpecification",properties.StreamSpecification!=null?CfnGlobalTableStreamSpecificationPropertyFromCloudFormation(properties.StreamSpecification):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse.FromCloudFormation.getString(properties.TableName):void 0),ret.addPropertyResult("timeToLiveSpecification","TimeToLiveSpecification",properties.TimeToLiveSpecification!=null?CfnGlobalTableTimeToLiveSpecificationPropertyFromCloudFormation(properties.TimeToLiveSpecification):void 0),ret.addPropertyResult("writeProvisionedThroughputSettings","WriteProvisionedThroughputSettings",properties.WriteProvisionedThroughputSettings!=null?CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties.WriteProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGlobalTable extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnGlobalTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_CfnGlobalTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGlobalTable),error}cdk.requireProperty(props,"attributeDefinitions",this),cdk.requireProperty(props,"keySchema",this),cdk.requireProperty(props,"replicas",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrStreamArn=cdk.Token.asString(this.getAtt("StreamArn")),this.attrTableId=cdk.Token.asString(this.getAtt("TableId")),this.attributeDefinitions=props.attributeDefinitions,this.keySchema=props.keySchema,this.replicas=props.replicas,this.billingMode=props.billingMode,this.globalSecondaryIndexes=props.globalSecondaryIndexes,this.localSecondaryIndexes=props.localSecondaryIndexes,this.sseSpecification=props.sseSpecification,this.streamSpecification=props.streamSpecification,this.tableName=props.tableName,this.timeToLiveSpecification=props.timeToLiveSpecification,this.writeProvisionedThroughputSettings=props.writeProvisionedThroughputSettings,this.node.scope&&cdk.Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::DynamoDB::GlobalTable' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGlobalTablePropsFromCloudFormation(resourceProperties),ret=new CfnGlobalTable(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnGlobalTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{attributeDefinitions:this.attributeDefinitions,keySchema:this.keySchema,replicas:this.replicas,billingMode:this.billingMode,globalSecondaryIndexes:this.globalSecondaryIndexes,localSecondaryIndexes:this.localSecondaryIndexes,sseSpecification:this.sseSpecification,streamSpecification:this.streamSpecification,tableName:this.tableName,timeToLiveSpecification:this.timeToLiveSpecification,writeProvisionedThroughputSettings:this.writeProvisionedThroughputSettings}}renderProperties(props){return cfnGlobalTablePropsToCloudFormation(props)}}exports.CfnGlobalTable=CfnGlobalTable,_a=JSII_RTTI_SYMBOL_1,CfnGlobalTable[_a]={fqn:"aws-cdk-lib.aws_dynamodb.CfnGlobalTable",version:"2.51.0"},CfnGlobalTable.CFN_RESOURCE_TYPE_NAME="AWS::DynamoDB::GlobalTable";function CfnGlobalTable_AttributeDefinitionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeType",cdk.requiredValidator)(properties.attributeType)),errors.collect(cdk.propertyValidator("attributeType",cdk.validateString)(properties.attributeType)),errors.wrap('supplied properties not correct for "AttributeDefinitionProperty"')}function cfnGlobalTableAttributeDefinitionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_AttributeDefinitionPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),AttributeType:cdk.stringToCloudFormation(properties.attributeType)}):properties}function CfnGlobalTableAttributeDefinitionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("attributeType","AttributeType",cfn_parse.FromCloudFormation.getString(properties.AttributeType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_CapacityAutoScalingSettingsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxCapacity",cdk.requiredValidator)(properties.maxCapacity)),errors.collect(cdk.propertyValidator("maxCapacity",cdk.validateNumber)(properties.maxCapacity)),errors.collect(cdk.propertyValidator("minCapacity",cdk.requiredValidator)(properties.minCapacity)),errors.collect(cdk.propertyValidator("minCapacity",cdk.validateNumber)(properties.minCapacity)),errors.collect(cdk.propertyValidator("seedCapacity",cdk.validateNumber)(properties.seedCapacity)),errors.collect(cdk.propertyValidator("targetTrackingScalingPolicyConfiguration",cdk.requiredValidator)(properties.targetTrackingScalingPolicyConfiguration)),errors.collect(cdk.propertyValidator("targetTrackingScalingPolicyConfiguration",CfnGlobalTable_TargetTrackingScalingPolicyConfigurationPropertyValidator)(properties.targetTrackingScalingPolicyConfiguration)),errors.wrap('supplied properties not correct for "CapacityAutoScalingSettingsProperty"')}function cfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_CapacityAutoScalingSettingsPropertyValidator(properties).assertSuccess(),{MaxCapacity:cdk.numberToCloudFormation(properties.maxCapacity),MinCapacity:cdk.numberToCloudFormation(properties.minCapacity),SeedCapacity:cdk.numberToCloudFormation(properties.seedCapacity),TargetTrackingScalingPolicyConfiguration:cfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties.targetTrackingScalingPolicyConfiguration)}):properties}function CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxCapacity","MaxCapacity",cfn_parse.FromCloudFormation.getNumber(properties.MaxCapacity)),ret.addPropertyResult("minCapacity","MinCapacity",cfn_parse.FromCloudFormation.getNumber(properties.MinCapacity)),ret.addPropertyResult("seedCapacity","SeedCapacity",properties.SeedCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.SeedCapacity):void 0),ret.addPropertyResult("targetTrackingScalingPolicyConfiguration","TargetTrackingScalingPolicyConfiguration",CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyFromCloudFormation(properties.TargetTrackingScalingPolicyConfiguration)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ContributorInsightsSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ContributorInsightsSpecificationProperty"')}function cfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ContributorInsightsSpecificationPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_GlobalSecondaryIndexPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnGlobalTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("projection",cdk.requiredValidator)(properties.projection)),errors.collect(cdk.propertyValidator("projection",CfnGlobalTable_ProjectionPropertyValidator)(properties.projection)),errors.collect(cdk.propertyValidator("writeProvisionedThroughputSettings",CfnGlobalTable_WriteProvisionedThroughputSettingsPropertyValidator)(properties.writeProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "GlobalSecondaryIndexProperty"')}function cfnGlobalTableGlobalSecondaryIndexPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_GlobalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk.stringToCloudFormation(properties.indexName),KeySchema:cdk.listMapper(cfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:cfnGlobalTableProjectionPropertyToCloudFormation(properties.projection),WriteProvisionedThroughputSettings:cfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties.writeProvisionedThroughputSettings)}):properties}function CfnGlobalTableGlobalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("projection","Projection",CfnGlobalTableProjectionPropertyFromCloudFormation(properties.Projection)),ret.addPropertyResult("writeProvisionedThroughputSettings","WriteProvisionedThroughputSettings",properties.WriteProvisionedThroughputSettings!=null?CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties.WriteProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_KeySchemaPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("keyType",cdk.requiredValidator)(properties.keyType)),errors.collect(cdk.propertyValidator("keyType",cdk.validateString)(properties.keyType)),errors.wrap('supplied properties not correct for "KeySchemaProperty"')}function cfnGlobalTableKeySchemaPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_KeySchemaPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),KeyType:cdk.stringToCloudFormation(properties.keyType)}):properties}function CfnGlobalTableKeySchemaPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("keyType","KeyType",cfn_parse.FromCloudFormation.getString(properties.KeyType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_LocalSecondaryIndexPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnGlobalTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("projection",cdk.requiredValidator)(properties.projection)),errors.collect(cdk.propertyValidator("projection",CfnGlobalTable_ProjectionPropertyValidator)(properties.projection)),errors.wrap('supplied properties not correct for "LocalSecondaryIndexProperty"')}function cfnGlobalTableLocalSecondaryIndexPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_LocalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk.stringToCloudFormation(properties.indexName),KeySchema:cdk.listMapper(cfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:cfnGlobalTableProjectionPropertyToCloudFormation(properties.projection)}):properties}function CfnGlobalTableLocalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("projection","Projection",CfnGlobalTableProjectionPropertyFromCloudFormation(properties.Projection)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_PointInTimeRecoverySpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("pointInTimeRecoveryEnabled",cdk.validateBoolean)(properties.pointInTimeRecoveryEnabled)),errors.wrap('supplied properties not correct for "PointInTimeRecoverySpecificationProperty"')}function cfnGlobalTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_PointInTimeRecoverySpecificationPropertyValidator(properties).assertSuccess(),{PointInTimeRecoveryEnabled:cdk.booleanToCloudFormation(properties.pointInTimeRecoveryEnabled)}):properties}function CfnGlobalTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("pointInTimeRecoveryEnabled","PointInTimeRecoveryEnabled",properties.PointInTimeRecoveryEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PointInTimeRecoveryEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ProjectionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("nonKeyAttributes",cdk.listValidator(cdk.validateString))(properties.nonKeyAttributes)),errors.collect(cdk.propertyValidator("projectionType",cdk.validateString)(properties.projectionType)),errors.wrap('supplied properties not correct for "ProjectionProperty"')}function cfnGlobalTableProjectionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ProjectionPropertyValidator(properties).assertSuccess(),{NonKeyAttributes:cdk.listMapper(cdk.stringToCloudFormation)(properties.nonKeyAttributes),ProjectionType:cdk.stringToCloudFormation(properties.projectionType)}):properties}function CfnGlobalTableProjectionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("nonKeyAttributes","NonKeyAttributes",properties.NonKeyAttributes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NonKeyAttributes):void 0),ret.addPropertyResult("projectionType","ProjectionType",properties.ProjectionType!=null?cfn_parse.FromCloudFormation.getString(properties.ProjectionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ReadProvisionedThroughputSettingsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("readCapacityAutoScalingSettings",CfnGlobalTable_CapacityAutoScalingSettingsPropertyValidator)(properties.readCapacityAutoScalingSettings)),errors.collect(cdk.propertyValidator("readCapacityUnits",cdk.validateNumber)(properties.readCapacityUnits)),errors.wrap('supplied properties not correct for "ReadProvisionedThroughputSettingsProperty"')}function cfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ReadProvisionedThroughputSettingsPropertyValidator(properties).assertSuccess(),{ReadCapacityAutoScalingSettings:cfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties.readCapacityAutoScalingSettings),ReadCapacityUnits:cdk.numberToCloudFormation(properties.readCapacityUnits)}):properties}function CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("readCapacityAutoScalingSettings","ReadCapacityAutoScalingSettings",properties.ReadCapacityAutoScalingSettings!=null?CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties.ReadCapacityAutoScalingSettings):void 0),ret.addPropertyResult("readCapacityUnits","ReadCapacityUnits",properties.ReadCapacityUnits!=null?cfn_parse.FromCloudFormation.getNumber(properties.ReadCapacityUnits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ReplicaGlobalSecondaryIndexSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("contributorInsightsSpecification",CfnGlobalTable_ContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("readProvisionedThroughputSettings",CfnGlobalTable_ReadProvisionedThroughputSettingsPropertyValidator)(properties.readProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "ReplicaGlobalSecondaryIndexSpecificationProperty"')}function cfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ReplicaGlobalSecondaryIndexSpecificationPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:cfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),IndexName:cdk.stringToCloudFormation(properties.indexName),ReadProvisionedThroughputSettings:cfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties.readProvisionedThroughputSettings)}):properties}function CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("readProvisionedThroughputSettings","ReadProvisionedThroughputSettings",properties.ReadProvisionedThroughputSettings!=null?CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties.ReadProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ReplicaSSESpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("kmsMasterKeyId",cdk.requiredValidator)(properties.kmsMasterKeyId)),errors.collect(cdk.propertyValidator("kmsMasterKeyId",cdk.validateString)(properties.kmsMasterKeyId)),errors.wrap('supplied properties not correct for "ReplicaSSESpecificationProperty"')}function cfnGlobalTableReplicaSSESpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ReplicaSSESpecificationPropertyValidator(properties).assertSuccess(),{KMSMasterKeyId:cdk.stringToCloudFormation(properties.kmsMasterKeyId)}):properties}function CfnGlobalTableReplicaSSESpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("kmsMasterKeyId","KMSMasterKeyId",cfn_parse.FromCloudFormation.getString(properties.KMSMasterKeyId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ReplicaSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("contributorInsightsSpecification",CfnGlobalTable_ContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk.propertyValidator("globalSecondaryIndexes",cdk.listValidator(CfnGlobalTable_ReplicaGlobalSecondaryIndexSpecificationPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk.propertyValidator("pointInTimeRecoverySpecification",CfnGlobalTable_PointInTimeRecoverySpecificationPropertyValidator)(properties.pointInTimeRecoverySpecification)),errors.collect(cdk.propertyValidator("readProvisionedThroughputSettings",CfnGlobalTable_ReadProvisionedThroughputSettingsPropertyValidator)(properties.readProvisionedThroughputSettings)),errors.collect(cdk.propertyValidator("region",cdk.requiredValidator)(properties.region)),errors.collect(cdk.propertyValidator("region",cdk.validateString)(properties.region)),errors.collect(cdk.propertyValidator("sseSpecification",CfnGlobalTable_ReplicaSSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk.propertyValidator("tableClass",cdk.validateString)(properties.tableClass)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ReplicaSpecificationProperty"')}function cfnGlobalTableReplicaSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ReplicaSpecificationPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:cfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),GlobalSecondaryIndexes:cdk.listMapper(cfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyToCloudFormation)(properties.globalSecondaryIndexes),PointInTimeRecoverySpecification:cfnGlobalTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties.pointInTimeRecoverySpecification),ReadProvisionedThroughputSettings:cfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties.readProvisionedThroughputSettings),Region:cdk.stringToCloudFormation(properties.region),SSESpecification:cfnGlobalTableReplicaSSESpecificationPropertyToCloudFormation(properties.sseSpecification),TableClass:cdk.stringToCloudFormation(properties.tableClass),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnGlobalTableReplicaSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("pointInTimeRecoverySpecification","PointInTimeRecoverySpecification",properties.PointInTimeRecoverySpecification!=null?CfnGlobalTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties.PointInTimeRecoverySpecification):void 0),ret.addPropertyResult("readProvisionedThroughputSettings","ReadProvisionedThroughputSettings",properties.ReadProvisionedThroughputSettings!=null?CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties.ReadProvisionedThroughputSettings):void 0),ret.addPropertyResult("region","Region",cfn_parse.FromCloudFormation.getString(properties.Region)),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnGlobalTableReplicaSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("tableClass","TableClass",properties.TableClass!=null?cfn_parse.FromCloudFormation.getString(properties.TableClass):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_SSESpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("sseEnabled",cdk.requiredValidator)(properties.sseEnabled)),errors.collect(cdk.propertyValidator("sseEnabled",cdk.validateBoolean)(properties.sseEnabled)),errors.collect(cdk.propertyValidator("sseType",cdk.validateString)(properties.sseType)),errors.wrap('supplied properties not correct for "SSESpecificationProperty"')}function cfnGlobalTableSSESpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_SSESpecificationPropertyValidator(properties).assertSuccess(),{SSEEnabled:cdk.booleanToCloudFormation(properties.sseEnabled),SSEType:cdk.stringToCloudFormation(properties.sseType)}):properties}function CfnGlobalTableSSESpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("sseEnabled","SSEEnabled",cfn_parse.FromCloudFormation.getBoolean(properties.SSEEnabled)),ret.addPropertyResult("sseType","SSEType",properties.SSEType!=null?cfn_parse.FromCloudFormation.getString(properties.SSEType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_StreamSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("streamViewType",cdk.requiredValidator)(properties.streamViewType)),errors.collect(cdk.propertyValidator("streamViewType",cdk.validateString)(properties.streamViewType)),errors.wrap('supplied properties not correct for "StreamSpecificationProperty"')}function cfnGlobalTableStreamSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_StreamSpecificationPropertyValidator(properties).assertSuccess(),{StreamViewType:cdk.stringToCloudFormation(properties.streamViewType)}):properties}function CfnGlobalTableStreamSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("streamViewType","StreamViewType",cfn_parse.FromCloudFormation.getString(properties.StreamViewType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_TargetTrackingScalingPolicyConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("disableScaleIn",cdk.validateBoolean)(properties.disableScaleIn)),errors.collect(cdk.propertyValidator("scaleInCooldown",cdk.validateNumber)(properties.scaleInCooldown)),errors.collect(cdk.propertyValidator("scaleOutCooldown",cdk.validateNumber)(properties.scaleOutCooldown)),errors.collect(cdk.propertyValidator("targetValue",cdk.requiredValidator)(properties.targetValue)),errors.collect(cdk.propertyValidator("targetValue",cdk.validateNumber)(properties.targetValue)),errors.wrap('supplied properties not correct for "TargetTrackingScalingPolicyConfigurationProperty"')}function cfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_TargetTrackingScalingPolicyConfigurationPropertyValidator(properties).assertSuccess(),{DisableScaleIn:cdk.booleanToCloudFormation(properties.disableScaleIn),ScaleInCooldown:cdk.numberToCloudFormation(properties.scaleInCooldown),ScaleOutCooldown:cdk.numberToCloudFormation(properties.scaleOutCooldown),TargetValue:cdk.numberToCloudFormation(properties.targetValue)}):properties}function CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("disableScaleIn","DisableScaleIn",properties.DisableScaleIn!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DisableScaleIn):void 0),ret.addPropertyResult("scaleInCooldown","ScaleInCooldown",properties.ScaleInCooldown!=null?cfn_parse.FromCloudFormation.getNumber(properties.ScaleInCooldown):void 0),ret.addPropertyResult("scaleOutCooldown","ScaleOutCooldown",properties.ScaleOutCooldown!=null?cfn_parse.FromCloudFormation.getNumber(properties.ScaleOutCooldown):void 0),ret.addPropertyResult("targetValue","TargetValue",cfn_parse.FromCloudFormation.getNumber(properties.TargetValue)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_TimeToLiveSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "TimeToLiveSpecificationProperty"')}function cfnGlobalTableTimeToLiveSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_TimeToLiveSpecificationPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnGlobalTableTimeToLiveSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",properties.AttributeName!=null?cfn_parse.FromCloudFormation.getString(properties.AttributeName):void 0),ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_WriteProvisionedThroughputSettingsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("writeCapacityAutoScalingSettings",CfnGlobalTable_CapacityAutoScalingSettingsPropertyValidator)(properties.writeCapacityAutoScalingSettings)),errors.wrap('supplied properties not correct for "WriteProvisionedThroughputSettingsProperty"')}function cfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_WriteProvisionedThroughputSettingsPropertyValidator(properties).assertSuccess(),{WriteCapacityAutoScalingSettings:cfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties.writeCapacityAutoScalingSettings)}):properties}function CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("writeCapacityAutoScalingSettings","WriteCapacityAutoScalingSettings",properties.WriteCapacityAutoScalingSettings!=null?CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties.WriteCapacityAutoScalingSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTablePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeDefinitions",cdk.listValidator(CfnTable_AttributeDefinitionPropertyValidator))(properties.attributeDefinitions)),errors.collect(cdk.propertyValidator("billingMode",cdk.validateString)(properties.billingMode)),errors.collect(cdk.propertyValidator("contributorInsightsSpecification",CfnTable_ContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk.propertyValidator("globalSecondaryIndexes",cdk.listValidator(CfnTable_GlobalSecondaryIndexPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk.propertyValidator("importSourceSpecification",CfnTable_ImportSourceSpecificationPropertyValidator)(properties.importSourceSpecification)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("kinesisStreamSpecification",CfnTable_KinesisStreamSpecificationPropertyValidator)(properties.kinesisStreamSpecification)),errors.collect(cdk.propertyValidator("localSecondaryIndexes",cdk.listValidator(CfnTable_LocalSecondaryIndexPropertyValidator))(properties.localSecondaryIndexes)),errors.collect(cdk.propertyValidator("pointInTimeRecoverySpecification",CfnTable_PointInTimeRecoverySpecificationPropertyValidator)(properties.pointInTimeRecoverySpecification)),errors.collect(cdk.propertyValidator("provisionedThroughput",CfnTable_ProvisionedThroughputPropertyValidator)(properties.provisionedThroughput)),errors.collect(cdk.propertyValidator("sseSpecification",CfnTable_SSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk.propertyValidator("streamSpecification",CfnTable_StreamSpecificationPropertyValidator)(properties.streamSpecification)),errors.collect(cdk.propertyValidator("tableClass",cdk.validateString)(properties.tableClass)),errors.collect(cdk.propertyValidator("tableName",cdk.validateString)(properties.tableName)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("timeToLiveSpecification",CfnTable_TimeToLiveSpecificationPropertyValidator)(properties.timeToLiveSpecification)),errors.wrap('supplied properties not correct for "CfnTableProps"')}function cfnTablePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTablePropsValidator(properties).assertSuccess(),{KeySchema:cdk.listMapper(cfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),AttributeDefinitions:cdk.listMapper(cfnTableAttributeDefinitionPropertyToCloudFormation)(properties.attributeDefinitions),BillingMode:cdk.stringToCloudFormation(properties.billingMode),ContributorInsightsSpecification:cfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),GlobalSecondaryIndexes:cdk.listMapper(cfnTableGlobalSecondaryIndexPropertyToCloudFormation)(properties.globalSecondaryIndexes),ImportSourceSpecification:cfnTableImportSourceSpecificationPropertyToCloudFormation(properties.importSourceSpecification),KinesisStreamSpecification:cfnTableKinesisStreamSpecificationPropertyToCloudFormation(properties.kinesisStreamSpecification),LocalSecondaryIndexes:cdk.listMapper(cfnTableLocalSecondaryIndexPropertyToCloudFormation)(properties.localSecondaryIndexes),PointInTimeRecoverySpecification:cfnTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties.pointInTimeRecoverySpecification),ProvisionedThroughput:cfnTableProvisionedThroughputPropertyToCloudFormation(properties.provisionedThroughput),SSESpecification:cfnTableSSESpecificationPropertyToCloudFormation(properties.sseSpecification),StreamSpecification:cfnTableStreamSpecificationPropertyToCloudFormation(properties.streamSpecification),TableClass:cdk.stringToCloudFormation(properties.tableClass),TableName:cdk.stringToCloudFormation(properties.tableName),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TimeToLiveSpecification:cfnTableTimeToLiveSpecificationPropertyToCloudFormation(properties.timeToLiveSpecification)}):properties}function CfnTablePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("attributeDefinitions","AttributeDefinitions",properties.AttributeDefinitions!=null?cfn_parse.FromCloudFormation.getArray(CfnTableAttributeDefinitionPropertyFromCloudFormation)(properties.AttributeDefinitions):void 0),ret.addPropertyResult("billingMode","BillingMode",properties.BillingMode!=null?cfn_parse.FromCloudFormation.getString(properties.BillingMode):void 0),ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnTableGlobalSecondaryIndexPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("importSourceSpecification","ImportSourceSpecification",properties.ImportSourceSpecification!=null?CfnTableImportSourceSpecificationPropertyFromCloudFormation(properties.ImportSourceSpecification):void 0),ret.addPropertyResult("kinesisStreamSpecification","KinesisStreamSpecification",properties.KinesisStreamSpecification!=null?CfnTableKinesisStreamSpecificationPropertyFromCloudFormation(properties.KinesisStreamSpecification):void 0),ret.addPropertyResult("localSecondaryIndexes","LocalSecondaryIndexes",properties.LocalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnTableLocalSecondaryIndexPropertyFromCloudFormation)(properties.LocalSecondaryIndexes):void 0),ret.addPropertyResult("pointInTimeRecoverySpecification","PointInTimeRecoverySpecification",properties.PointInTimeRecoverySpecification!=null?CfnTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties.PointInTimeRecoverySpecification):void 0),ret.addPropertyResult("provisionedThroughput","ProvisionedThroughput",properties.ProvisionedThroughput!=null?CfnTableProvisionedThroughputPropertyFromCloudFormation(properties.ProvisionedThroughput):void 0),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnTableSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("streamSpecification","StreamSpecification",properties.StreamSpecification!=null?CfnTableStreamSpecificationPropertyFromCloudFormation(properties.StreamSpecification):void 0),ret.addPropertyResult("tableClass","TableClass",properties.TableClass!=null?cfn_parse.FromCloudFormation.getString(properties.TableClass):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse.FromCloudFormation.getString(properties.TableName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("timeToLiveSpecification","TimeToLiveSpecification",properties.TimeToLiveSpecification!=null?CfnTableTimeToLiveSpecificationPropertyFromCloudFormation(properties.TimeToLiveSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTable extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_CfnTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTable),error}cdk.requireProperty(props,"keySchema",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrStreamArn=cdk.Token.asString(this.getAtt("StreamArn")),this.keySchema=props.keySchema,this.attributeDefinitions=props.attributeDefinitions,this.billingMode=props.billingMode,this.contributorInsightsSpecification=props.contributorInsightsSpecification,this.globalSecondaryIndexes=props.globalSecondaryIndexes,this.importSourceSpecification=props.importSourceSpecification,this.kinesisStreamSpecification=props.kinesisStreamSpecification,this.localSecondaryIndexes=props.localSecondaryIndexes,this.pointInTimeRecoverySpecification=props.pointInTimeRecoverySpecification,this.provisionedThroughput=props.provisionedThroughput,this.sseSpecification=props.sseSpecification,this.streamSpecification=props.streamSpecification,this.tableClass=props.tableClass,this.tableName=props.tableName,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::DynamoDB::Table",props.tags,{tagPropertyName:"tags"}),this.timeToLiveSpecification=props.timeToLiveSpecification,this.node.scope&&cdk.Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::DynamoDB::Table' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTablePropsFromCloudFormation(resourceProperties),ret=new CfnTable(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{keySchema:this.keySchema,attributeDefinitions:this.attributeDefinitions,billingMode:this.billingMode,contributorInsightsSpecification:this.contributorInsightsSpecification,globalSecondaryIndexes:this.globalSecondaryIndexes,importSourceSpecification:this.importSourceSpecification,kinesisStreamSpecification:this.kinesisStreamSpecification,localSecondaryIndexes:this.localSecondaryIndexes,pointInTimeRecoverySpecification:this.pointInTimeRecoverySpecification,provisionedThroughput:this.provisionedThroughput,sseSpecification:this.sseSpecification,streamSpecification:this.streamSpecification,tableClass:this.tableClass,tableName:this.tableName,tags:this.tags.renderTags(),timeToLiveSpecification:this.timeToLiveSpecification}}renderProperties(props){return cfnTablePropsToCloudFormation(props)}}exports.CfnTable=CfnTable,_b=JSII_RTTI_SYMBOL_1,CfnTable[_b]={fqn:"aws-cdk-lib.aws_dynamodb.CfnTable",version:"2.51.0"},CfnTable.CFN_RESOURCE_TYPE_NAME="AWS::DynamoDB::Table";function CfnTable_AttributeDefinitionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeType",cdk.requiredValidator)(properties.attributeType)),errors.collect(cdk.propertyValidator("attributeType",cdk.validateString)(properties.attributeType)),errors.wrap('supplied properties not correct for "AttributeDefinitionProperty"')}function cfnTableAttributeDefinitionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_AttributeDefinitionPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),AttributeType:cdk.stringToCloudFormation(properties.attributeType)}):properties}function CfnTableAttributeDefinitionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("attributeType","AttributeType",cfn_parse.FromCloudFormation.getString(properties.AttributeType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_ContributorInsightsSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ContributorInsightsSpecificationProperty"')}function cfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_ContributorInsightsSpecificationPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_CsvPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("delimiter",cdk.validateString)(properties.delimiter)),errors.collect(cdk.propertyValidator("headerList",cdk.listValidator(cdk.validateString))(properties.headerList)),errors.wrap('supplied properties not correct for "CsvProperty"')}function cfnTableCsvPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_CsvPropertyValidator(properties).assertSuccess(),{Delimiter:cdk.stringToCloudFormation(properties.delimiter),HeaderList:cdk.listMapper(cdk.stringToCloudFormation)(properties.headerList)}):properties}function CfnTableCsvPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("delimiter","Delimiter",properties.Delimiter!=null?cfn_parse.FromCloudFormation.getString(properties.Delimiter):void 0),ret.addPropertyResult("headerList","HeaderList",properties.HeaderList!=null?cfn_parse.FromCloudFormation.getStringArray(properties.HeaderList):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_GlobalSecondaryIndexPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("contributorInsightsSpecification",CfnTable_ContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("projection",cdk.requiredValidator)(properties.projection)),errors.collect(cdk.propertyValidator("projection",CfnTable_ProjectionPropertyValidator)(properties.projection)),errors.collect(cdk.propertyValidator("provisionedThroughput",CfnTable_ProvisionedThroughputPropertyValidator)(properties.provisionedThroughput)),errors.wrap('supplied properties not correct for "GlobalSecondaryIndexProperty"')}function cfnTableGlobalSecondaryIndexPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_GlobalSecondaryIndexPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:cfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),IndexName:cdk.stringToCloudFormation(properties.indexName),KeySchema:cdk.listMapper(cfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:cfnTableProjectionPropertyToCloudFormation(properties.projection),ProvisionedThroughput:cfnTableProvisionedThroughputPropertyToCloudFormation(properties.provisionedThroughput)}):properties}function CfnTableGlobalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("projection","Projection",CfnTableProjectionPropertyFromCloudFormation(properties.Projection)),ret.addPropertyResult("provisionedThroughput","ProvisionedThroughput",properties.ProvisionedThroughput!=null?CfnTableProvisionedThroughputPropertyFromCloudFormation(properties.ProvisionedThroughput):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_ImportSourceSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("inputCompressionType",cdk.validateString)(properties.inputCompressionType)),errors.collect(cdk.propertyValidator("inputFormat",cdk.requiredValidator)(properties.inputFormat)),errors.collect(cdk.propertyValidator("inputFormat",cdk.validateString)(properties.inputFormat)),errors.collect(cdk.propertyValidator("inputFormatOptions",CfnTable_InputFormatOptionsPropertyValidator)(properties.inputFormatOptions)),errors.collect(cdk.propertyValidator("s3BucketSource",cdk.requiredValidator)(properties.s3BucketSource)),errors.collect(cdk.propertyValidator("s3BucketSource",CfnTable_S3BucketSourcePropertyValidator)(properties.s3BucketSource)),errors.wrap('supplied properties not correct for "ImportSourceSpecificationProperty"')}function cfnTableImportSourceSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_ImportSourceSpecificationPropertyValidator(properties).assertSuccess(),{InputCompressionType:cdk.stringToCloudFormation(properties.inputCompressionType),InputFormat:cdk.stringToCloudFormation(properties.inputFormat),InputFormatOptions:cfnTableInputFormatOptionsPropertyToCloudFormation(properties.inputFormatOptions),S3BucketSource:cfnTableS3BucketSourcePropertyToCloudFormation(properties.s3BucketSource)}):properties}function CfnTableImportSourceSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("inputCompressionType","InputCompressionType",properties.InputCompressionType!=null?cfn_parse.FromCloudFormation.getString(properties.InputCompressionType):void 0),ret.addPropertyResult("inputFormat","InputFormat",cfn_parse.FromCloudFormation.getString(properties.InputFormat)),ret.addPropertyResult("inputFormatOptions","InputFormatOptions",properties.InputFormatOptions!=null?CfnTableInputFormatOptionsPropertyFromCloudFormation(properties.InputFormatOptions):void 0),ret.addPropertyResult("s3BucketSource","S3BucketSource",CfnTableS3BucketSourcePropertyFromCloudFormation(properties.S3BucketSource)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_InputFormatOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("csv",CfnTable_CsvPropertyValidator)(properties.csv)),errors.wrap('supplied properties not correct for "InputFormatOptionsProperty"')}function cfnTableInputFormatOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_InputFormatOptionsPropertyValidator(properties).assertSuccess(),{Csv:cfnTableCsvPropertyToCloudFormation(properties.csv)}):properties}function CfnTableInputFormatOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("csv","Csv",properties.Csv!=null?CfnTableCsvPropertyFromCloudFormation(properties.Csv):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_KeySchemaPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("keyType",cdk.requiredValidator)(properties.keyType)),errors.collect(cdk.propertyValidator("keyType",cdk.validateString)(properties.keyType)),errors.wrap('supplied properties not correct for "KeySchemaProperty"')}function cfnTableKeySchemaPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_KeySchemaPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),KeyType:cdk.stringToCloudFormation(properties.keyType)}):properties}function CfnTableKeySchemaPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("keyType","KeyType",cfn_parse.FromCloudFormation.getString(properties.KeyType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_KinesisStreamSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("streamArn",cdk.requiredValidator)(properties.streamArn)),errors.collect(cdk.propertyValidator("streamArn",cdk.validateString)(properties.streamArn)),errors.wrap('supplied properties not correct for "KinesisStreamSpecificationProperty"')}function cfnTableKinesisStreamSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_KinesisStreamSpecificationPropertyValidator(properties).assertSuccess(),{StreamArn:cdk.stringToCloudFormation(properties.streamArn)}):properties}function CfnTableKinesisStreamSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("streamArn","StreamArn",cfn_parse.FromCloudFormation.getString(properties.StreamArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_LocalSecondaryIndexPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("projection",cdk.requiredValidator)(properties.projection)),errors.collect(cdk.propertyValidator("projection",CfnTable_ProjectionPropertyValidator)(properties.projection)),errors.wrap('supplied properties not correct for "LocalSecondaryIndexProperty"')}function cfnTableLocalSecondaryIndexPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_LocalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk.stringToCloudFormation(properties.indexName),KeySchema:cdk.listMapper(cfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:cfnTableProjectionPropertyToCloudFormation(properties.projection)}):properties}function CfnTableLocalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("projection","Projection",CfnTableProjectionPropertyFromCloudFormation(properties.Projection)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_PointInTimeRecoverySpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("pointInTimeRecoveryEnabled",cdk.validateBoolean)(properties.pointInTimeRecoveryEnabled)),errors.wrap('supplied properties not correct for "PointInTimeRecoverySpecificationProperty"')}function cfnTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_PointInTimeRecoverySpecificationPropertyValidator(properties).assertSuccess(),{PointInTimeRecoveryEnabled:cdk.booleanToCloudFormation(properties.pointInTimeRecoveryEnabled)}):properties}function CfnTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("pointInTimeRecoveryEnabled","PointInTimeRecoveryEnabled",properties.PointInTimeRecoveryEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PointInTimeRecoveryEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_ProjectionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("nonKeyAttributes",cdk.listValidator(cdk.validateString))(properties.nonKeyAttributes)),errors.collect(cdk.propertyValidator("projectionType",cdk.validateString)(properties.projectionType)),errors.wrap('supplied properties not correct for "ProjectionProperty"')}function cfnTableProjectionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_ProjectionPropertyValidator(properties).assertSuccess(),{NonKeyAttributes:cdk.listMapper(cdk.stringToCloudFormation)(properties.nonKeyAttributes),ProjectionType:cdk.stringToCloudFormation(properties.projectionType)}):properties}function CfnTableProjectionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("nonKeyAttributes","NonKeyAttributes",properties.NonKeyAttributes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NonKeyAttributes):void 0),ret.addPropertyResult("projectionType","ProjectionType",properties.ProjectionType!=null?cfn_parse.FromCloudFormation.getString(properties.ProjectionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_ProvisionedThroughputPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("readCapacityUnits",cdk.requiredValidator)(properties.readCapacityUnits)),errors.collect(cdk.propertyValidator("readCapacityUnits",cdk.validateNumber)(properties.readCapacityUnits)),errors.collect(cdk.propertyValidator("writeCapacityUnits",cdk.requiredValidator)(properties.writeCapacityUnits)),errors.collect(cdk.propertyValidator("writeCapacityUnits",cdk.validateNumber)(properties.writeCapacityUnits)),errors.wrap('supplied properties not correct for "ProvisionedThroughputProperty"')}function cfnTableProvisionedThroughputPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_ProvisionedThroughputPropertyValidator(properties).assertSuccess(),{ReadCapacityUnits:cdk.numberToCloudFormation(properties.readCapacityUnits),WriteCapacityUnits:cdk.numberToCloudFormation(properties.writeCapacityUnits)}):properties}function CfnTableProvisionedThroughputPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("readCapacityUnits","ReadCapacityUnits",cfn_parse.FromCloudFormation.getNumber(properties.ReadCapacityUnits)),ret.addPropertyResult("writeCapacityUnits","WriteCapacityUnits",cfn_parse.FromCloudFormation.getNumber(properties.WriteCapacityUnits)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_S3BucketSourcePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("s3Bucket",cdk.requiredValidator)(properties.s3Bucket)),errors.collect(cdk.propertyValidator("s3Bucket",cdk.validateString)(properties.s3Bucket)),errors.collect(cdk.propertyValidator("s3BucketOwner",cdk.validateString)(properties.s3BucketOwner)),errors.collect(cdk.propertyValidator("s3KeyPrefix",cdk.validateString)(properties.s3KeyPrefix)),errors.wrap('supplied properties not correct for "S3BucketSourceProperty"')}function cfnTableS3BucketSourcePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_S3BucketSourcePropertyValidator(properties).assertSuccess(),{S3Bucket:cdk.stringToCloudFormation(properties.s3Bucket),S3BucketOwner:cdk.stringToCloudFormation(properties.s3BucketOwner),S3KeyPrefix:cdk.stringToCloudFormation(properties.s3KeyPrefix)}):properties}function CfnTableS3BucketSourcePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("s3Bucket","S3Bucket",cfn_parse.FromCloudFormation.getString(properties.S3Bucket)),ret.addPropertyResult("s3BucketOwner","S3BucketOwner",properties.S3BucketOwner!=null?cfn_parse.FromCloudFormation.getString(properties.S3BucketOwner):void 0),ret.addPropertyResult("s3KeyPrefix","S3KeyPrefix",properties.S3KeyPrefix!=null?cfn_parse.FromCloudFormation.getString(properties.S3KeyPrefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_SSESpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("kmsMasterKeyId",cdk.validateString)(properties.kmsMasterKeyId)),errors.collect(cdk.propertyValidator("sseEnabled",cdk.requiredValidator)(properties.sseEnabled)),errors.collect(cdk.propertyValidator("sseEnabled",cdk.validateBoolean)(properties.sseEnabled)),errors.collect(cdk.propertyValidator("sseType",cdk.validateString)(properties.sseType)),errors.wrap('supplied properties not correct for "SSESpecificationProperty"')}function cfnTableSSESpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_SSESpecificationPropertyValidator(properties).assertSuccess(),{KMSMasterKeyId:cdk.stringToCloudFormation(properties.kmsMasterKeyId),SSEEnabled:cdk.booleanToCloudFormation(properties.sseEnabled),SSEType:cdk.stringToCloudFormation(properties.sseType)}):properties}function CfnTableSSESpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("kmsMasterKeyId","KMSMasterKeyId",properties.KMSMasterKeyId!=null?cfn_parse.FromCloudFormation.getString(properties.KMSMasterKeyId):void 0),ret.addPropertyResult("sseEnabled","SSEEnabled",cfn_parse.FromCloudFormation.getBoolean(properties.SSEEnabled)),ret.addPropertyResult("sseType","SSEType",properties.SSEType!=null?cfn_parse.FromCloudFormation.getString(properties.SSEType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_StreamSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("streamViewType",cdk.requiredValidator)(properties.streamViewType)),errors.collect(cdk.propertyValidator("streamViewType",cdk.validateString)(properties.streamViewType)),errors.wrap('supplied properties not correct for "StreamSpecificationProperty"')}function cfnTableStreamSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_StreamSpecificationPropertyValidator(properties).assertSuccess(),{StreamViewType:cdk.stringToCloudFormation(properties.streamViewType)}):properties}function CfnTableStreamSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("streamViewType","StreamViewType",cfn_parse.FromCloudFormation.getString(properties.StreamViewType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_TimeToLiveSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "TimeToLiveSpecificationProperty"')}function cfnTableTimeToLiveSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_TimeToLiveSpecificationPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnTableTimeToLiveSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}
1
+ "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnTable=exports.CfnGlobalTable=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnGlobalTablePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeDefinitions",cdk.requiredValidator)(properties.attributeDefinitions)),errors.collect(cdk.propertyValidator("attributeDefinitions",cdk.listValidator(CfnGlobalTable_AttributeDefinitionPropertyValidator))(properties.attributeDefinitions)),errors.collect(cdk.propertyValidator("billingMode",cdk.validateString)(properties.billingMode)),errors.collect(cdk.propertyValidator("globalSecondaryIndexes",cdk.listValidator(CfnGlobalTable_GlobalSecondaryIndexPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnGlobalTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("localSecondaryIndexes",cdk.listValidator(CfnGlobalTable_LocalSecondaryIndexPropertyValidator))(properties.localSecondaryIndexes)),errors.collect(cdk.propertyValidator("replicas",cdk.requiredValidator)(properties.replicas)),errors.collect(cdk.propertyValidator("replicas",cdk.listValidator(CfnGlobalTable_ReplicaSpecificationPropertyValidator))(properties.replicas)),errors.collect(cdk.propertyValidator("sseSpecification",CfnGlobalTable_SSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk.propertyValidator("streamSpecification",CfnGlobalTable_StreamSpecificationPropertyValidator)(properties.streamSpecification)),errors.collect(cdk.propertyValidator("tableName",cdk.validateString)(properties.tableName)),errors.collect(cdk.propertyValidator("timeToLiveSpecification",CfnGlobalTable_TimeToLiveSpecificationPropertyValidator)(properties.timeToLiveSpecification)),errors.collect(cdk.propertyValidator("writeProvisionedThroughputSettings",CfnGlobalTable_WriteProvisionedThroughputSettingsPropertyValidator)(properties.writeProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "CfnGlobalTableProps"')}function cfnGlobalTablePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTablePropsValidator(properties).assertSuccess(),{AttributeDefinitions:cdk.listMapper(cfnGlobalTableAttributeDefinitionPropertyToCloudFormation)(properties.attributeDefinitions),KeySchema:cdk.listMapper(cfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Replicas:cdk.listMapper(cfnGlobalTableReplicaSpecificationPropertyToCloudFormation)(properties.replicas),BillingMode:cdk.stringToCloudFormation(properties.billingMode),GlobalSecondaryIndexes:cdk.listMapper(cfnGlobalTableGlobalSecondaryIndexPropertyToCloudFormation)(properties.globalSecondaryIndexes),LocalSecondaryIndexes:cdk.listMapper(cfnGlobalTableLocalSecondaryIndexPropertyToCloudFormation)(properties.localSecondaryIndexes),SSESpecification:cfnGlobalTableSSESpecificationPropertyToCloudFormation(properties.sseSpecification),StreamSpecification:cfnGlobalTableStreamSpecificationPropertyToCloudFormation(properties.streamSpecification),TableName:cdk.stringToCloudFormation(properties.tableName),TimeToLiveSpecification:cfnGlobalTableTimeToLiveSpecificationPropertyToCloudFormation(properties.timeToLiveSpecification),WriteProvisionedThroughputSettings:cfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties.writeProvisionedThroughputSettings)}):properties}function CfnGlobalTablePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeDefinitions","AttributeDefinitions",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableAttributeDefinitionPropertyFromCloudFormation)(properties.AttributeDefinitions)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("replicas","Replicas",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableReplicaSpecificationPropertyFromCloudFormation)(properties.Replicas)),ret.addPropertyResult("billingMode","BillingMode",properties.BillingMode!=null?cfn_parse.FromCloudFormation.getString(properties.BillingMode):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnGlobalTableGlobalSecondaryIndexPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("localSecondaryIndexes","LocalSecondaryIndexes",properties.LocalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnGlobalTableLocalSecondaryIndexPropertyFromCloudFormation)(properties.LocalSecondaryIndexes):void 0),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnGlobalTableSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("streamSpecification","StreamSpecification",properties.StreamSpecification!=null?CfnGlobalTableStreamSpecificationPropertyFromCloudFormation(properties.StreamSpecification):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse.FromCloudFormation.getString(properties.TableName):void 0),ret.addPropertyResult("timeToLiveSpecification","TimeToLiveSpecification",properties.TimeToLiveSpecification!=null?CfnGlobalTableTimeToLiveSpecificationPropertyFromCloudFormation(properties.TimeToLiveSpecification):void 0),ret.addPropertyResult("writeProvisionedThroughputSettings","WriteProvisionedThroughputSettings",properties.WriteProvisionedThroughputSettings!=null?CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties.WriteProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGlobalTable extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnGlobalTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_CfnGlobalTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGlobalTable),error}cdk.requireProperty(props,"attributeDefinitions",this),cdk.requireProperty(props,"keySchema",this),cdk.requireProperty(props,"replicas",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrStreamArn=cdk.Token.asString(this.getAtt("StreamArn")),this.attrTableId=cdk.Token.asString(this.getAtt("TableId")),this.attributeDefinitions=props.attributeDefinitions,this.keySchema=props.keySchema,this.replicas=props.replicas,this.billingMode=props.billingMode,this.globalSecondaryIndexes=props.globalSecondaryIndexes,this.localSecondaryIndexes=props.localSecondaryIndexes,this.sseSpecification=props.sseSpecification,this.streamSpecification=props.streamSpecification,this.tableName=props.tableName,this.timeToLiveSpecification=props.timeToLiveSpecification,this.writeProvisionedThroughputSettings=props.writeProvisionedThroughputSettings,this.node.scope&&cdk.Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::DynamoDB::GlobalTable' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGlobalTablePropsFromCloudFormation(resourceProperties),ret=new CfnGlobalTable(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnGlobalTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{attributeDefinitions:this.attributeDefinitions,keySchema:this.keySchema,replicas:this.replicas,billingMode:this.billingMode,globalSecondaryIndexes:this.globalSecondaryIndexes,localSecondaryIndexes:this.localSecondaryIndexes,sseSpecification:this.sseSpecification,streamSpecification:this.streamSpecification,tableName:this.tableName,timeToLiveSpecification:this.timeToLiveSpecification,writeProvisionedThroughputSettings:this.writeProvisionedThroughputSettings}}renderProperties(props){return cfnGlobalTablePropsToCloudFormation(props)}}exports.CfnGlobalTable=CfnGlobalTable,_a=JSII_RTTI_SYMBOL_1,CfnGlobalTable[_a]={fqn:"aws-cdk-lib.aws_dynamodb.CfnGlobalTable",version:"2.51.1"},CfnGlobalTable.CFN_RESOURCE_TYPE_NAME="AWS::DynamoDB::GlobalTable";function CfnGlobalTable_AttributeDefinitionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeType",cdk.requiredValidator)(properties.attributeType)),errors.collect(cdk.propertyValidator("attributeType",cdk.validateString)(properties.attributeType)),errors.wrap('supplied properties not correct for "AttributeDefinitionProperty"')}function cfnGlobalTableAttributeDefinitionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_AttributeDefinitionPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),AttributeType:cdk.stringToCloudFormation(properties.attributeType)}):properties}function CfnGlobalTableAttributeDefinitionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("attributeType","AttributeType",cfn_parse.FromCloudFormation.getString(properties.AttributeType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_CapacityAutoScalingSettingsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxCapacity",cdk.requiredValidator)(properties.maxCapacity)),errors.collect(cdk.propertyValidator("maxCapacity",cdk.validateNumber)(properties.maxCapacity)),errors.collect(cdk.propertyValidator("minCapacity",cdk.requiredValidator)(properties.minCapacity)),errors.collect(cdk.propertyValidator("minCapacity",cdk.validateNumber)(properties.minCapacity)),errors.collect(cdk.propertyValidator("seedCapacity",cdk.validateNumber)(properties.seedCapacity)),errors.collect(cdk.propertyValidator("targetTrackingScalingPolicyConfiguration",cdk.requiredValidator)(properties.targetTrackingScalingPolicyConfiguration)),errors.collect(cdk.propertyValidator("targetTrackingScalingPolicyConfiguration",CfnGlobalTable_TargetTrackingScalingPolicyConfigurationPropertyValidator)(properties.targetTrackingScalingPolicyConfiguration)),errors.wrap('supplied properties not correct for "CapacityAutoScalingSettingsProperty"')}function cfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_CapacityAutoScalingSettingsPropertyValidator(properties).assertSuccess(),{MaxCapacity:cdk.numberToCloudFormation(properties.maxCapacity),MinCapacity:cdk.numberToCloudFormation(properties.minCapacity),SeedCapacity:cdk.numberToCloudFormation(properties.seedCapacity),TargetTrackingScalingPolicyConfiguration:cfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties.targetTrackingScalingPolicyConfiguration)}):properties}function CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxCapacity","MaxCapacity",cfn_parse.FromCloudFormation.getNumber(properties.MaxCapacity)),ret.addPropertyResult("minCapacity","MinCapacity",cfn_parse.FromCloudFormation.getNumber(properties.MinCapacity)),ret.addPropertyResult("seedCapacity","SeedCapacity",properties.SeedCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.SeedCapacity):void 0),ret.addPropertyResult("targetTrackingScalingPolicyConfiguration","TargetTrackingScalingPolicyConfiguration",CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyFromCloudFormation(properties.TargetTrackingScalingPolicyConfiguration)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ContributorInsightsSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ContributorInsightsSpecificationProperty"')}function cfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ContributorInsightsSpecificationPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_GlobalSecondaryIndexPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnGlobalTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("projection",cdk.requiredValidator)(properties.projection)),errors.collect(cdk.propertyValidator("projection",CfnGlobalTable_ProjectionPropertyValidator)(properties.projection)),errors.collect(cdk.propertyValidator("writeProvisionedThroughputSettings",CfnGlobalTable_WriteProvisionedThroughputSettingsPropertyValidator)(properties.writeProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "GlobalSecondaryIndexProperty"')}function cfnGlobalTableGlobalSecondaryIndexPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_GlobalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk.stringToCloudFormation(properties.indexName),KeySchema:cdk.listMapper(cfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:cfnGlobalTableProjectionPropertyToCloudFormation(properties.projection),WriteProvisionedThroughputSettings:cfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties.writeProvisionedThroughputSettings)}):properties}function CfnGlobalTableGlobalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("projection","Projection",CfnGlobalTableProjectionPropertyFromCloudFormation(properties.Projection)),ret.addPropertyResult("writeProvisionedThroughputSettings","WriteProvisionedThroughputSettings",properties.WriteProvisionedThroughputSettings!=null?CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties.WriteProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_KeySchemaPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("keyType",cdk.requiredValidator)(properties.keyType)),errors.collect(cdk.propertyValidator("keyType",cdk.validateString)(properties.keyType)),errors.wrap('supplied properties not correct for "KeySchemaProperty"')}function cfnGlobalTableKeySchemaPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_KeySchemaPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),KeyType:cdk.stringToCloudFormation(properties.keyType)}):properties}function CfnGlobalTableKeySchemaPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("keyType","KeyType",cfn_parse.FromCloudFormation.getString(properties.KeyType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_LocalSecondaryIndexPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnGlobalTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("projection",cdk.requiredValidator)(properties.projection)),errors.collect(cdk.propertyValidator("projection",CfnGlobalTable_ProjectionPropertyValidator)(properties.projection)),errors.wrap('supplied properties not correct for "LocalSecondaryIndexProperty"')}function cfnGlobalTableLocalSecondaryIndexPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_LocalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk.stringToCloudFormation(properties.indexName),KeySchema:cdk.listMapper(cfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:cfnGlobalTableProjectionPropertyToCloudFormation(properties.projection)}):properties}function CfnGlobalTableLocalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("projection","Projection",CfnGlobalTableProjectionPropertyFromCloudFormation(properties.Projection)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_PointInTimeRecoverySpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("pointInTimeRecoveryEnabled",cdk.validateBoolean)(properties.pointInTimeRecoveryEnabled)),errors.wrap('supplied properties not correct for "PointInTimeRecoverySpecificationProperty"')}function cfnGlobalTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_PointInTimeRecoverySpecificationPropertyValidator(properties).assertSuccess(),{PointInTimeRecoveryEnabled:cdk.booleanToCloudFormation(properties.pointInTimeRecoveryEnabled)}):properties}function CfnGlobalTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("pointInTimeRecoveryEnabled","PointInTimeRecoveryEnabled",properties.PointInTimeRecoveryEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PointInTimeRecoveryEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ProjectionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("nonKeyAttributes",cdk.listValidator(cdk.validateString))(properties.nonKeyAttributes)),errors.collect(cdk.propertyValidator("projectionType",cdk.validateString)(properties.projectionType)),errors.wrap('supplied properties not correct for "ProjectionProperty"')}function cfnGlobalTableProjectionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ProjectionPropertyValidator(properties).assertSuccess(),{NonKeyAttributes:cdk.listMapper(cdk.stringToCloudFormation)(properties.nonKeyAttributes),ProjectionType:cdk.stringToCloudFormation(properties.projectionType)}):properties}function CfnGlobalTableProjectionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("nonKeyAttributes","NonKeyAttributes",properties.NonKeyAttributes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NonKeyAttributes):void 0),ret.addPropertyResult("projectionType","ProjectionType",properties.ProjectionType!=null?cfn_parse.FromCloudFormation.getString(properties.ProjectionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ReadProvisionedThroughputSettingsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("readCapacityAutoScalingSettings",CfnGlobalTable_CapacityAutoScalingSettingsPropertyValidator)(properties.readCapacityAutoScalingSettings)),errors.collect(cdk.propertyValidator("readCapacityUnits",cdk.validateNumber)(properties.readCapacityUnits)),errors.wrap('supplied properties not correct for "ReadProvisionedThroughputSettingsProperty"')}function cfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ReadProvisionedThroughputSettingsPropertyValidator(properties).assertSuccess(),{ReadCapacityAutoScalingSettings:cfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties.readCapacityAutoScalingSettings),ReadCapacityUnits:cdk.numberToCloudFormation(properties.readCapacityUnits)}):properties}function CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("readCapacityAutoScalingSettings","ReadCapacityAutoScalingSettings",properties.ReadCapacityAutoScalingSettings!=null?CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties.ReadCapacityAutoScalingSettings):void 0),ret.addPropertyResult("readCapacityUnits","ReadCapacityUnits",properties.ReadCapacityUnits!=null?cfn_parse.FromCloudFormation.getNumber(properties.ReadCapacityUnits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ReplicaGlobalSecondaryIndexSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("contributorInsightsSpecification",CfnGlobalTable_ContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("readProvisionedThroughputSettings",CfnGlobalTable_ReadProvisionedThroughputSettingsPropertyValidator)(properties.readProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "ReplicaGlobalSecondaryIndexSpecificationProperty"')}function cfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ReplicaGlobalSecondaryIndexSpecificationPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:cfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),IndexName:cdk.stringToCloudFormation(properties.indexName),ReadProvisionedThroughputSettings:cfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties.readProvisionedThroughputSettings)}):properties}function CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("readProvisionedThroughputSettings","ReadProvisionedThroughputSettings",properties.ReadProvisionedThroughputSettings!=null?CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties.ReadProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ReplicaSSESpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("kmsMasterKeyId",cdk.requiredValidator)(properties.kmsMasterKeyId)),errors.collect(cdk.propertyValidator("kmsMasterKeyId",cdk.validateString)(properties.kmsMasterKeyId)),errors.wrap('supplied properties not correct for "ReplicaSSESpecificationProperty"')}function cfnGlobalTableReplicaSSESpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ReplicaSSESpecificationPropertyValidator(properties).assertSuccess(),{KMSMasterKeyId:cdk.stringToCloudFormation(properties.kmsMasterKeyId)}):properties}function CfnGlobalTableReplicaSSESpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("kmsMasterKeyId","KMSMasterKeyId",cfn_parse.FromCloudFormation.getString(properties.KMSMasterKeyId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_ReplicaSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("contributorInsightsSpecification",CfnGlobalTable_ContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk.propertyValidator("globalSecondaryIndexes",cdk.listValidator(CfnGlobalTable_ReplicaGlobalSecondaryIndexSpecificationPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk.propertyValidator("pointInTimeRecoverySpecification",CfnGlobalTable_PointInTimeRecoverySpecificationPropertyValidator)(properties.pointInTimeRecoverySpecification)),errors.collect(cdk.propertyValidator("readProvisionedThroughputSettings",CfnGlobalTable_ReadProvisionedThroughputSettingsPropertyValidator)(properties.readProvisionedThroughputSettings)),errors.collect(cdk.propertyValidator("region",cdk.requiredValidator)(properties.region)),errors.collect(cdk.propertyValidator("region",cdk.validateString)(properties.region)),errors.collect(cdk.propertyValidator("sseSpecification",CfnGlobalTable_ReplicaSSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk.propertyValidator("tableClass",cdk.validateString)(properties.tableClass)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ReplicaSpecificationProperty"')}function cfnGlobalTableReplicaSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_ReplicaSpecificationPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:cfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),GlobalSecondaryIndexes:cdk.listMapper(cfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyToCloudFormation)(properties.globalSecondaryIndexes),PointInTimeRecoverySpecification:cfnGlobalTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties.pointInTimeRecoverySpecification),ReadProvisionedThroughputSettings:cfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties.readProvisionedThroughputSettings),Region:cdk.stringToCloudFormation(properties.region),SSESpecification:cfnGlobalTableReplicaSSESpecificationPropertyToCloudFormation(properties.sseSpecification),TableClass:cdk.stringToCloudFormation(properties.tableClass),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnGlobalTableReplicaSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("pointInTimeRecoverySpecification","PointInTimeRecoverySpecification",properties.PointInTimeRecoverySpecification!=null?CfnGlobalTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties.PointInTimeRecoverySpecification):void 0),ret.addPropertyResult("readProvisionedThroughputSettings","ReadProvisionedThroughputSettings",properties.ReadProvisionedThroughputSettings!=null?CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties.ReadProvisionedThroughputSettings):void 0),ret.addPropertyResult("region","Region",cfn_parse.FromCloudFormation.getString(properties.Region)),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnGlobalTableReplicaSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("tableClass","TableClass",properties.TableClass!=null?cfn_parse.FromCloudFormation.getString(properties.TableClass):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_SSESpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("sseEnabled",cdk.requiredValidator)(properties.sseEnabled)),errors.collect(cdk.propertyValidator("sseEnabled",cdk.validateBoolean)(properties.sseEnabled)),errors.collect(cdk.propertyValidator("sseType",cdk.validateString)(properties.sseType)),errors.wrap('supplied properties not correct for "SSESpecificationProperty"')}function cfnGlobalTableSSESpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_SSESpecificationPropertyValidator(properties).assertSuccess(),{SSEEnabled:cdk.booleanToCloudFormation(properties.sseEnabled),SSEType:cdk.stringToCloudFormation(properties.sseType)}):properties}function CfnGlobalTableSSESpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("sseEnabled","SSEEnabled",cfn_parse.FromCloudFormation.getBoolean(properties.SSEEnabled)),ret.addPropertyResult("sseType","SSEType",properties.SSEType!=null?cfn_parse.FromCloudFormation.getString(properties.SSEType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_StreamSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("streamViewType",cdk.requiredValidator)(properties.streamViewType)),errors.collect(cdk.propertyValidator("streamViewType",cdk.validateString)(properties.streamViewType)),errors.wrap('supplied properties not correct for "StreamSpecificationProperty"')}function cfnGlobalTableStreamSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_StreamSpecificationPropertyValidator(properties).assertSuccess(),{StreamViewType:cdk.stringToCloudFormation(properties.streamViewType)}):properties}function CfnGlobalTableStreamSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("streamViewType","StreamViewType",cfn_parse.FromCloudFormation.getString(properties.StreamViewType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_TargetTrackingScalingPolicyConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("disableScaleIn",cdk.validateBoolean)(properties.disableScaleIn)),errors.collect(cdk.propertyValidator("scaleInCooldown",cdk.validateNumber)(properties.scaleInCooldown)),errors.collect(cdk.propertyValidator("scaleOutCooldown",cdk.validateNumber)(properties.scaleOutCooldown)),errors.collect(cdk.propertyValidator("targetValue",cdk.requiredValidator)(properties.targetValue)),errors.collect(cdk.propertyValidator("targetValue",cdk.validateNumber)(properties.targetValue)),errors.wrap('supplied properties not correct for "TargetTrackingScalingPolicyConfigurationProperty"')}function cfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_TargetTrackingScalingPolicyConfigurationPropertyValidator(properties).assertSuccess(),{DisableScaleIn:cdk.booleanToCloudFormation(properties.disableScaleIn),ScaleInCooldown:cdk.numberToCloudFormation(properties.scaleInCooldown),ScaleOutCooldown:cdk.numberToCloudFormation(properties.scaleOutCooldown),TargetValue:cdk.numberToCloudFormation(properties.targetValue)}):properties}function CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("disableScaleIn","DisableScaleIn",properties.DisableScaleIn!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DisableScaleIn):void 0),ret.addPropertyResult("scaleInCooldown","ScaleInCooldown",properties.ScaleInCooldown!=null?cfn_parse.FromCloudFormation.getNumber(properties.ScaleInCooldown):void 0),ret.addPropertyResult("scaleOutCooldown","ScaleOutCooldown",properties.ScaleOutCooldown!=null?cfn_parse.FromCloudFormation.getNumber(properties.ScaleOutCooldown):void 0),ret.addPropertyResult("targetValue","TargetValue",cfn_parse.FromCloudFormation.getNumber(properties.TargetValue)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_TimeToLiveSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "TimeToLiveSpecificationProperty"')}function cfnGlobalTableTimeToLiveSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_TimeToLiveSpecificationPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnGlobalTableTimeToLiveSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",properties.AttributeName!=null?cfn_parse.FromCloudFormation.getString(properties.AttributeName):void 0),ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTable_WriteProvisionedThroughputSettingsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("writeCapacityAutoScalingSettings",CfnGlobalTable_CapacityAutoScalingSettingsPropertyValidator)(properties.writeCapacityAutoScalingSettings)),errors.wrap('supplied properties not correct for "WriteProvisionedThroughputSettingsProperty"')}function cfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGlobalTable_WriteProvisionedThroughputSettingsPropertyValidator(properties).assertSuccess(),{WriteCapacityAutoScalingSettings:cfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties.writeCapacityAutoScalingSettings)}):properties}function CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("writeCapacityAutoScalingSettings","WriteCapacityAutoScalingSettings",properties.WriteCapacityAutoScalingSettings!=null?CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties.WriteCapacityAutoScalingSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTablePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeDefinitions",cdk.listValidator(CfnTable_AttributeDefinitionPropertyValidator))(properties.attributeDefinitions)),errors.collect(cdk.propertyValidator("billingMode",cdk.validateString)(properties.billingMode)),errors.collect(cdk.propertyValidator("contributorInsightsSpecification",CfnTable_ContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk.propertyValidator("globalSecondaryIndexes",cdk.listValidator(CfnTable_GlobalSecondaryIndexPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk.propertyValidator("importSourceSpecification",CfnTable_ImportSourceSpecificationPropertyValidator)(properties.importSourceSpecification)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("kinesisStreamSpecification",CfnTable_KinesisStreamSpecificationPropertyValidator)(properties.kinesisStreamSpecification)),errors.collect(cdk.propertyValidator("localSecondaryIndexes",cdk.listValidator(CfnTable_LocalSecondaryIndexPropertyValidator))(properties.localSecondaryIndexes)),errors.collect(cdk.propertyValidator("pointInTimeRecoverySpecification",CfnTable_PointInTimeRecoverySpecificationPropertyValidator)(properties.pointInTimeRecoverySpecification)),errors.collect(cdk.propertyValidator("provisionedThroughput",CfnTable_ProvisionedThroughputPropertyValidator)(properties.provisionedThroughput)),errors.collect(cdk.propertyValidator("sseSpecification",CfnTable_SSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk.propertyValidator("streamSpecification",CfnTable_StreamSpecificationPropertyValidator)(properties.streamSpecification)),errors.collect(cdk.propertyValidator("tableClass",cdk.validateString)(properties.tableClass)),errors.collect(cdk.propertyValidator("tableName",cdk.validateString)(properties.tableName)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("timeToLiveSpecification",CfnTable_TimeToLiveSpecificationPropertyValidator)(properties.timeToLiveSpecification)),errors.wrap('supplied properties not correct for "CfnTableProps"')}function cfnTablePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTablePropsValidator(properties).assertSuccess(),{KeySchema:cdk.listMapper(cfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),AttributeDefinitions:cdk.listMapper(cfnTableAttributeDefinitionPropertyToCloudFormation)(properties.attributeDefinitions),BillingMode:cdk.stringToCloudFormation(properties.billingMode),ContributorInsightsSpecification:cfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),GlobalSecondaryIndexes:cdk.listMapper(cfnTableGlobalSecondaryIndexPropertyToCloudFormation)(properties.globalSecondaryIndexes),ImportSourceSpecification:cfnTableImportSourceSpecificationPropertyToCloudFormation(properties.importSourceSpecification),KinesisStreamSpecification:cfnTableKinesisStreamSpecificationPropertyToCloudFormation(properties.kinesisStreamSpecification),LocalSecondaryIndexes:cdk.listMapper(cfnTableLocalSecondaryIndexPropertyToCloudFormation)(properties.localSecondaryIndexes),PointInTimeRecoverySpecification:cfnTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties.pointInTimeRecoverySpecification),ProvisionedThroughput:cfnTableProvisionedThroughputPropertyToCloudFormation(properties.provisionedThroughput),SSESpecification:cfnTableSSESpecificationPropertyToCloudFormation(properties.sseSpecification),StreamSpecification:cfnTableStreamSpecificationPropertyToCloudFormation(properties.streamSpecification),TableClass:cdk.stringToCloudFormation(properties.tableClass),TableName:cdk.stringToCloudFormation(properties.tableName),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TimeToLiveSpecification:cfnTableTimeToLiveSpecificationPropertyToCloudFormation(properties.timeToLiveSpecification)}):properties}function CfnTablePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("attributeDefinitions","AttributeDefinitions",properties.AttributeDefinitions!=null?cfn_parse.FromCloudFormation.getArray(CfnTableAttributeDefinitionPropertyFromCloudFormation)(properties.AttributeDefinitions):void 0),ret.addPropertyResult("billingMode","BillingMode",properties.BillingMode!=null?cfn_parse.FromCloudFormation.getString(properties.BillingMode):void 0),ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnTableGlobalSecondaryIndexPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("importSourceSpecification","ImportSourceSpecification",properties.ImportSourceSpecification!=null?CfnTableImportSourceSpecificationPropertyFromCloudFormation(properties.ImportSourceSpecification):void 0),ret.addPropertyResult("kinesisStreamSpecification","KinesisStreamSpecification",properties.KinesisStreamSpecification!=null?CfnTableKinesisStreamSpecificationPropertyFromCloudFormation(properties.KinesisStreamSpecification):void 0),ret.addPropertyResult("localSecondaryIndexes","LocalSecondaryIndexes",properties.LocalSecondaryIndexes!=null?cfn_parse.FromCloudFormation.getArray(CfnTableLocalSecondaryIndexPropertyFromCloudFormation)(properties.LocalSecondaryIndexes):void 0),ret.addPropertyResult("pointInTimeRecoverySpecification","PointInTimeRecoverySpecification",properties.PointInTimeRecoverySpecification!=null?CfnTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties.PointInTimeRecoverySpecification):void 0),ret.addPropertyResult("provisionedThroughput","ProvisionedThroughput",properties.ProvisionedThroughput!=null?CfnTableProvisionedThroughputPropertyFromCloudFormation(properties.ProvisionedThroughput):void 0),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnTableSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("streamSpecification","StreamSpecification",properties.StreamSpecification!=null?CfnTableStreamSpecificationPropertyFromCloudFormation(properties.StreamSpecification):void 0),ret.addPropertyResult("tableClass","TableClass",properties.TableClass!=null?cfn_parse.FromCloudFormation.getString(properties.TableClass):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse.FromCloudFormation.getString(properties.TableName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("timeToLiveSpecification","TimeToLiveSpecification",properties.TimeToLiveSpecification!=null?CfnTableTimeToLiveSpecificationPropertyFromCloudFormation(properties.TimeToLiveSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTable extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_CfnTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTable),error}cdk.requireProperty(props,"keySchema",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrStreamArn=cdk.Token.asString(this.getAtt("StreamArn")),this.keySchema=props.keySchema,this.attributeDefinitions=props.attributeDefinitions,this.billingMode=props.billingMode,this.contributorInsightsSpecification=props.contributorInsightsSpecification,this.globalSecondaryIndexes=props.globalSecondaryIndexes,this.importSourceSpecification=props.importSourceSpecification,this.kinesisStreamSpecification=props.kinesisStreamSpecification,this.localSecondaryIndexes=props.localSecondaryIndexes,this.pointInTimeRecoverySpecification=props.pointInTimeRecoverySpecification,this.provisionedThroughput=props.provisionedThroughput,this.sseSpecification=props.sseSpecification,this.streamSpecification=props.streamSpecification,this.tableClass=props.tableClass,this.tableName=props.tableName,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::DynamoDB::Table",props.tags,{tagPropertyName:"tags"}),this.timeToLiveSpecification=props.timeToLiveSpecification,this.node.scope&&cdk.Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::DynamoDB::Table' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTablePropsFromCloudFormation(resourceProperties),ret=new CfnTable(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{keySchema:this.keySchema,attributeDefinitions:this.attributeDefinitions,billingMode:this.billingMode,contributorInsightsSpecification:this.contributorInsightsSpecification,globalSecondaryIndexes:this.globalSecondaryIndexes,importSourceSpecification:this.importSourceSpecification,kinesisStreamSpecification:this.kinesisStreamSpecification,localSecondaryIndexes:this.localSecondaryIndexes,pointInTimeRecoverySpecification:this.pointInTimeRecoverySpecification,provisionedThroughput:this.provisionedThroughput,sseSpecification:this.sseSpecification,streamSpecification:this.streamSpecification,tableClass:this.tableClass,tableName:this.tableName,tags:this.tags.renderTags(),timeToLiveSpecification:this.timeToLiveSpecification}}renderProperties(props){return cfnTablePropsToCloudFormation(props)}}exports.CfnTable=CfnTable,_b=JSII_RTTI_SYMBOL_1,CfnTable[_b]={fqn:"aws-cdk-lib.aws_dynamodb.CfnTable",version:"2.51.1"},CfnTable.CFN_RESOURCE_TYPE_NAME="AWS::DynamoDB::Table";function CfnTable_AttributeDefinitionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeType",cdk.requiredValidator)(properties.attributeType)),errors.collect(cdk.propertyValidator("attributeType",cdk.validateString)(properties.attributeType)),errors.wrap('supplied properties not correct for "AttributeDefinitionProperty"')}function cfnTableAttributeDefinitionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_AttributeDefinitionPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),AttributeType:cdk.stringToCloudFormation(properties.attributeType)}):properties}function CfnTableAttributeDefinitionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("attributeType","AttributeType",cfn_parse.FromCloudFormation.getString(properties.AttributeType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_ContributorInsightsSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ContributorInsightsSpecificationProperty"')}function cfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_ContributorInsightsSpecificationPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_CsvPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("delimiter",cdk.validateString)(properties.delimiter)),errors.collect(cdk.propertyValidator("headerList",cdk.listValidator(cdk.validateString))(properties.headerList)),errors.wrap('supplied properties not correct for "CsvProperty"')}function cfnTableCsvPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_CsvPropertyValidator(properties).assertSuccess(),{Delimiter:cdk.stringToCloudFormation(properties.delimiter),HeaderList:cdk.listMapper(cdk.stringToCloudFormation)(properties.headerList)}):properties}function CfnTableCsvPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("delimiter","Delimiter",properties.Delimiter!=null?cfn_parse.FromCloudFormation.getString(properties.Delimiter):void 0),ret.addPropertyResult("headerList","HeaderList",properties.HeaderList!=null?cfn_parse.FromCloudFormation.getStringArray(properties.HeaderList):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_GlobalSecondaryIndexPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("contributorInsightsSpecification",CfnTable_ContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("projection",cdk.requiredValidator)(properties.projection)),errors.collect(cdk.propertyValidator("projection",CfnTable_ProjectionPropertyValidator)(properties.projection)),errors.collect(cdk.propertyValidator("provisionedThroughput",CfnTable_ProvisionedThroughputPropertyValidator)(properties.provisionedThroughput)),errors.wrap('supplied properties not correct for "GlobalSecondaryIndexProperty"')}function cfnTableGlobalSecondaryIndexPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_GlobalSecondaryIndexPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:cfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),IndexName:cdk.stringToCloudFormation(properties.indexName),KeySchema:cdk.listMapper(cfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:cfnTableProjectionPropertyToCloudFormation(properties.projection),ProvisionedThroughput:cfnTableProvisionedThroughputPropertyToCloudFormation(properties.provisionedThroughput)}):properties}function CfnTableGlobalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("projection","Projection",CfnTableProjectionPropertyFromCloudFormation(properties.Projection)),ret.addPropertyResult("provisionedThroughput","ProvisionedThroughput",properties.ProvisionedThroughput!=null?CfnTableProvisionedThroughputPropertyFromCloudFormation(properties.ProvisionedThroughput):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_ImportSourceSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("inputCompressionType",cdk.validateString)(properties.inputCompressionType)),errors.collect(cdk.propertyValidator("inputFormat",cdk.requiredValidator)(properties.inputFormat)),errors.collect(cdk.propertyValidator("inputFormat",cdk.validateString)(properties.inputFormat)),errors.collect(cdk.propertyValidator("inputFormatOptions",CfnTable_InputFormatOptionsPropertyValidator)(properties.inputFormatOptions)),errors.collect(cdk.propertyValidator("s3BucketSource",cdk.requiredValidator)(properties.s3BucketSource)),errors.collect(cdk.propertyValidator("s3BucketSource",CfnTable_S3BucketSourcePropertyValidator)(properties.s3BucketSource)),errors.wrap('supplied properties not correct for "ImportSourceSpecificationProperty"')}function cfnTableImportSourceSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_ImportSourceSpecificationPropertyValidator(properties).assertSuccess(),{InputCompressionType:cdk.stringToCloudFormation(properties.inputCompressionType),InputFormat:cdk.stringToCloudFormation(properties.inputFormat),InputFormatOptions:cfnTableInputFormatOptionsPropertyToCloudFormation(properties.inputFormatOptions),S3BucketSource:cfnTableS3BucketSourcePropertyToCloudFormation(properties.s3BucketSource)}):properties}function CfnTableImportSourceSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("inputCompressionType","InputCompressionType",properties.InputCompressionType!=null?cfn_parse.FromCloudFormation.getString(properties.InputCompressionType):void 0),ret.addPropertyResult("inputFormat","InputFormat",cfn_parse.FromCloudFormation.getString(properties.InputFormat)),ret.addPropertyResult("inputFormatOptions","InputFormatOptions",properties.InputFormatOptions!=null?CfnTableInputFormatOptionsPropertyFromCloudFormation(properties.InputFormatOptions):void 0),ret.addPropertyResult("s3BucketSource","S3BucketSource",CfnTableS3BucketSourcePropertyFromCloudFormation(properties.S3BucketSource)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_InputFormatOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("csv",CfnTable_CsvPropertyValidator)(properties.csv)),errors.wrap('supplied properties not correct for "InputFormatOptionsProperty"')}function cfnTableInputFormatOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_InputFormatOptionsPropertyValidator(properties).assertSuccess(),{Csv:cfnTableCsvPropertyToCloudFormation(properties.csv)}):properties}function CfnTableInputFormatOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("csv","Csv",properties.Csv!=null?CfnTableCsvPropertyFromCloudFormation(properties.Csv):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_KeySchemaPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("keyType",cdk.requiredValidator)(properties.keyType)),errors.collect(cdk.propertyValidator("keyType",cdk.validateString)(properties.keyType)),errors.wrap('supplied properties not correct for "KeySchemaProperty"')}function cfnTableKeySchemaPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_KeySchemaPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),KeyType:cdk.stringToCloudFormation(properties.keyType)}):properties}function CfnTableKeySchemaPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("keyType","KeyType",cfn_parse.FromCloudFormation.getString(properties.KeyType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_KinesisStreamSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("streamArn",cdk.requiredValidator)(properties.streamArn)),errors.collect(cdk.propertyValidator("streamArn",cdk.validateString)(properties.streamArn)),errors.wrap('supplied properties not correct for "KinesisStreamSpecificationProperty"')}function cfnTableKinesisStreamSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_KinesisStreamSpecificationPropertyValidator(properties).assertSuccess(),{StreamArn:cdk.stringToCloudFormation(properties.streamArn)}):properties}function CfnTableKinesisStreamSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("streamArn","StreamArn",cfn_parse.FromCloudFormation.getString(properties.StreamArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_LocalSecondaryIndexPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("indexName",cdk.requiredValidator)(properties.indexName)),errors.collect(cdk.propertyValidator("indexName",cdk.validateString)(properties.indexName)),errors.collect(cdk.propertyValidator("keySchema",cdk.requiredValidator)(properties.keySchema)),errors.collect(cdk.propertyValidator("keySchema",cdk.listValidator(CfnTable_KeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk.propertyValidator("projection",cdk.requiredValidator)(properties.projection)),errors.collect(cdk.propertyValidator("projection",CfnTable_ProjectionPropertyValidator)(properties.projection)),errors.wrap('supplied properties not correct for "LocalSecondaryIndexProperty"')}function cfnTableLocalSecondaryIndexPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_LocalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk.stringToCloudFormation(properties.indexName),KeySchema:cdk.listMapper(cfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:cfnTableProjectionPropertyToCloudFormation(properties.projection)}):properties}function CfnTableLocalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",cfn_parse.FromCloudFormation.getString(properties.IndexName)),ret.addPropertyResult("keySchema","KeySchema",cfn_parse.FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema)),ret.addPropertyResult("projection","Projection",CfnTableProjectionPropertyFromCloudFormation(properties.Projection)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_PointInTimeRecoverySpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("pointInTimeRecoveryEnabled",cdk.validateBoolean)(properties.pointInTimeRecoveryEnabled)),errors.wrap('supplied properties not correct for "PointInTimeRecoverySpecificationProperty"')}function cfnTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_PointInTimeRecoverySpecificationPropertyValidator(properties).assertSuccess(),{PointInTimeRecoveryEnabled:cdk.booleanToCloudFormation(properties.pointInTimeRecoveryEnabled)}):properties}function CfnTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("pointInTimeRecoveryEnabled","PointInTimeRecoveryEnabled",properties.PointInTimeRecoveryEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PointInTimeRecoveryEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_ProjectionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("nonKeyAttributes",cdk.listValidator(cdk.validateString))(properties.nonKeyAttributes)),errors.collect(cdk.propertyValidator("projectionType",cdk.validateString)(properties.projectionType)),errors.wrap('supplied properties not correct for "ProjectionProperty"')}function cfnTableProjectionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_ProjectionPropertyValidator(properties).assertSuccess(),{NonKeyAttributes:cdk.listMapper(cdk.stringToCloudFormation)(properties.nonKeyAttributes),ProjectionType:cdk.stringToCloudFormation(properties.projectionType)}):properties}function CfnTableProjectionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("nonKeyAttributes","NonKeyAttributes",properties.NonKeyAttributes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NonKeyAttributes):void 0),ret.addPropertyResult("projectionType","ProjectionType",properties.ProjectionType!=null?cfn_parse.FromCloudFormation.getString(properties.ProjectionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_ProvisionedThroughputPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("readCapacityUnits",cdk.requiredValidator)(properties.readCapacityUnits)),errors.collect(cdk.propertyValidator("readCapacityUnits",cdk.validateNumber)(properties.readCapacityUnits)),errors.collect(cdk.propertyValidator("writeCapacityUnits",cdk.requiredValidator)(properties.writeCapacityUnits)),errors.collect(cdk.propertyValidator("writeCapacityUnits",cdk.validateNumber)(properties.writeCapacityUnits)),errors.wrap('supplied properties not correct for "ProvisionedThroughputProperty"')}function cfnTableProvisionedThroughputPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_ProvisionedThroughputPropertyValidator(properties).assertSuccess(),{ReadCapacityUnits:cdk.numberToCloudFormation(properties.readCapacityUnits),WriteCapacityUnits:cdk.numberToCloudFormation(properties.writeCapacityUnits)}):properties}function CfnTableProvisionedThroughputPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("readCapacityUnits","ReadCapacityUnits",cfn_parse.FromCloudFormation.getNumber(properties.ReadCapacityUnits)),ret.addPropertyResult("writeCapacityUnits","WriteCapacityUnits",cfn_parse.FromCloudFormation.getNumber(properties.WriteCapacityUnits)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_S3BucketSourcePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("s3Bucket",cdk.requiredValidator)(properties.s3Bucket)),errors.collect(cdk.propertyValidator("s3Bucket",cdk.validateString)(properties.s3Bucket)),errors.collect(cdk.propertyValidator("s3BucketOwner",cdk.validateString)(properties.s3BucketOwner)),errors.collect(cdk.propertyValidator("s3KeyPrefix",cdk.validateString)(properties.s3KeyPrefix)),errors.wrap('supplied properties not correct for "S3BucketSourceProperty"')}function cfnTableS3BucketSourcePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_S3BucketSourcePropertyValidator(properties).assertSuccess(),{S3Bucket:cdk.stringToCloudFormation(properties.s3Bucket),S3BucketOwner:cdk.stringToCloudFormation(properties.s3BucketOwner),S3KeyPrefix:cdk.stringToCloudFormation(properties.s3KeyPrefix)}):properties}function CfnTableS3BucketSourcePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("s3Bucket","S3Bucket",cfn_parse.FromCloudFormation.getString(properties.S3Bucket)),ret.addPropertyResult("s3BucketOwner","S3BucketOwner",properties.S3BucketOwner!=null?cfn_parse.FromCloudFormation.getString(properties.S3BucketOwner):void 0),ret.addPropertyResult("s3KeyPrefix","S3KeyPrefix",properties.S3KeyPrefix!=null?cfn_parse.FromCloudFormation.getString(properties.S3KeyPrefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_SSESpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("kmsMasterKeyId",cdk.validateString)(properties.kmsMasterKeyId)),errors.collect(cdk.propertyValidator("sseEnabled",cdk.requiredValidator)(properties.sseEnabled)),errors.collect(cdk.propertyValidator("sseEnabled",cdk.validateBoolean)(properties.sseEnabled)),errors.collect(cdk.propertyValidator("sseType",cdk.validateString)(properties.sseType)),errors.wrap('supplied properties not correct for "SSESpecificationProperty"')}function cfnTableSSESpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_SSESpecificationPropertyValidator(properties).assertSuccess(),{KMSMasterKeyId:cdk.stringToCloudFormation(properties.kmsMasterKeyId),SSEEnabled:cdk.booleanToCloudFormation(properties.sseEnabled),SSEType:cdk.stringToCloudFormation(properties.sseType)}):properties}function CfnTableSSESpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("kmsMasterKeyId","KMSMasterKeyId",properties.KMSMasterKeyId!=null?cfn_parse.FromCloudFormation.getString(properties.KMSMasterKeyId):void 0),ret.addPropertyResult("sseEnabled","SSEEnabled",cfn_parse.FromCloudFormation.getBoolean(properties.SSEEnabled)),ret.addPropertyResult("sseType","SSEType",properties.SSEType!=null?cfn_parse.FromCloudFormation.getString(properties.SSEType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_StreamSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("streamViewType",cdk.requiredValidator)(properties.streamViewType)),errors.collect(cdk.propertyValidator("streamViewType",cdk.validateString)(properties.streamViewType)),errors.wrap('supplied properties not correct for "StreamSpecificationProperty"')}function cfnTableStreamSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_StreamSpecificationPropertyValidator(properties).assertSuccess(),{StreamViewType:cdk.stringToCloudFormation(properties.streamViewType)}):properties}function CfnTableStreamSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("streamViewType","StreamViewType",cfn_parse.FromCloudFormation.getString(properties.StreamViewType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTable_TimeToLiveSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributeName",cdk.requiredValidator)(properties.attributeName)),errors.collect(cdk.propertyValidator("attributeName",cdk.validateString)(properties.attributeName)),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "TimeToLiveSpecificationProperty"')}function cfnTableTimeToLiveSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTable_TimeToLiveSpecificationPropertyValidator(properties).assertSuccess(),{AttributeName:cdk.stringToCloudFormation(properties.attributeName),Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnTableTimeToLiveSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",cfn_parse.FromCloudFormation.getString(properties.AttributeName)),ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}
2
2
  //# sourceMappingURL=dynamodb.generated.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.TableClass=exports.StreamViewType=exports.ProjectionType=exports.BillingMode=exports.AttributeType=exports.Table=exports.TableEncryption=exports.Operation=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),appscaling=require("../../aws-applicationautoscaling"),cloudwatch=require("../../aws-cloudwatch"),iam=require("../../aws-iam"),kms=require("../../aws-kms"),core_1=require("../../core"),constructs_1=require("constructs"),dynamodb_canned_metrics_generated_1=require("./dynamodb-canned-metrics.generated"),dynamodb_generated_1=require("./dynamodb.generated"),perms=require("./perms"),replica_provider_1=require("./replica-provider"),scalable_table_attribute_1=require("./scalable-table-attribute"),HASH_KEY_TYPE="HASH",RANGE_KEY_TYPE="RANGE",MAX_LOCAL_SECONDARY_INDEX_COUNT=5;var Operation;(function(Operation2){Operation2.GET_ITEM="GetItem",Operation2.BATCH_GET_ITEM="BatchGetItem",Operation2.SCAN="Scan",Operation2.QUERY="Query",Operation2.GET_RECORDS="GetRecords",Operation2.PUT_ITEM="PutItem",Operation2.DELETE_ITEM="DeleteItem",Operation2.UPDATE_ITEM="UpdateItem",Operation2.BATCH_WRITE_ITEM="BatchWriteItem",Operation2.TRANSACT_WRITE_ITEMS="TransactWriteItems",Operation2.TRANSACT_GET_ITEMS="TransactGetItems",Operation2.EXECUTE_TRANSACTION="ExecuteTransaction",Operation2.BATCH_EXECUTE_STATEMENT="BatchExecuteStatement",Operation2.EXECUTE_STATEMENT="ExecuteStatement"})(Operation=exports.Operation||(exports.Operation={}));var TableEncryption;(function(TableEncryption2){TableEncryption2.DEFAULT="AWS_OWNED",TableEncryption2.CUSTOMER_MANAGED="CUSTOMER_MANAGED",TableEncryption2.AWS_MANAGED="AWS_MANAGED"})(TableEncryption=exports.TableEncryption||(exports.TableEncryption={}));class TableBase extends core_1.Resource{constructor(){super(...arguments),this.regionalArns=new Array}grant(grantee,...actions){return iam.Grant.addToPrincipal({grantee,actions,resourceArns:[this.tableArn,core_1.Lazy.string({produce:()=>this.hasIndex?`${this.tableArn}/index/*`:core_1.Aws.NO_VALUE}),...this.regionalArns,...this.regionalArns.map(arn=>core_1.Lazy.string({produce:()=>this.hasIndex?`${arn}/index/*`:core_1.Aws.NO_VALUE}))],scope:this})}grantStream(grantee,...actions){if(!this.tableStreamArn)throw new Error(`DynamoDB Streams must be enabled on the table ${this.node.path}`);return iam.Grant.addToPrincipal({grantee,actions,resourceArns:[this.tableStreamArn],scope:this})}grantReadData(grantee){const tableActions=perms.READ_DATA_ACTIONS.concat(perms.DESCRIBE_TABLE);return this.combinedGrant(grantee,{keyActions:perms.KEY_READ_ACTIONS,tableActions})}grantTableListStreams(grantee){if(!this.tableStreamArn)throw new Error(`DynamoDB Streams must be enabled on the table ${this.node.path}`);return iam.Grant.addToPrincipal({grantee,actions:["dynamodb:ListStreams"],resourceArns:["*"]})}grantStreamRead(grantee){return this.grantTableListStreams(grantee),this.combinedGrant(grantee,{keyActions:perms.KEY_READ_ACTIONS,streamActions:perms.READ_STREAM_DATA_ACTIONS})}grantWriteData(grantee){const tableActions=perms.WRITE_DATA_ACTIONS.concat(perms.DESCRIBE_TABLE),keyActions=perms.KEY_READ_ACTIONS.concat(perms.KEY_WRITE_ACTIONS);return this.combinedGrant(grantee,{keyActions,tableActions})}grantReadWriteData(grantee){const tableActions=perms.READ_DATA_ACTIONS.concat(perms.WRITE_DATA_ACTIONS).concat(perms.DESCRIBE_TABLE),keyActions=perms.KEY_READ_ACTIONS.concat(perms.KEY_WRITE_ACTIONS);return this.combinedGrant(grantee,{keyActions,tableActions})}grantFullAccess(grantee){const keyActions=perms.KEY_READ_ACTIONS.concat(perms.KEY_WRITE_ACTIONS);return this.combinedGrant(grantee,{keyActions,tableActions:["dynamodb:*"]})}metric(metricName,props){return new cloudwatch.Metric({namespace:"AWS/DynamoDB",metricName,dimensionsMap:{TableName:this.tableName},...props}).attachTo(this)}metricConsumedReadCapacityUnits(props){return this.cannedMetric(dynamodb_canned_metrics_generated_1.DynamoDBMetrics.consumedReadCapacityUnitsSum,props)}metricConsumedWriteCapacityUnits(props){return this.cannedMetric(dynamodb_canned_metrics_generated_1.DynamoDBMetrics.consumedWriteCapacityUnitsSum,props)}metricSystemErrors(props){if(!props?.dimensions?.Operation&&!props?.dimensionsMap?.Operation)throw new Error("'Operation' dimension must be passed for the 'SystemErrors' metric.");const dimensionsMap={TableName:this.tableName,...props?.dimensions??{},...props?.dimensionsMap??{}};return this.metric("SystemErrors",{statistic:"sum",...props,dimensionsMap})}metricUserErrors(props){if(props?.dimensions)throw new Error("'dimensions' is not supported for the 'UserErrors' metric");return this.metric("UserErrors",{statistic:"sum",...props,dimensionsMap:{}})}metricConditionalCheckFailedRequests(props){return this.metric("ConditionalCheckFailedRequests",{statistic:"sum",...props})}metricThrottledRequests(props){return this.metric("ThrottledRequests",{statistic:"sum",...props})}metricSuccessfulRequestLatency(props){if(!props?.dimensions?.Operation&&!props?.dimensionsMap?.Operation)throw new Error("'Operation' dimension must be passed for the 'SuccessfulRequestLatency' metric.");const dimensionsMap={TableName:this.tableName,Operation:props.dimensionsMap?.Operation??props.dimensions?.Operation};return new cloudwatch.Metric({...dynamodb_canned_metrics_generated_1.DynamoDBMetrics.successfulRequestLatencyAverage(dimensionsMap),...props,dimensionsMap}).attachTo(this)}metricThrottledRequestsForOperation(operation,props){return new cloudwatch.Metric({...dynamodb_canned_metrics_generated_1.DynamoDBMetrics.throttledRequestsSum({Operation:operation,TableName:this.tableName}),...props}).attachTo(this)}metricThrottledRequestsForOperations(props){return this.sumMetricsForOperations("ThrottledRequests","Sum of throttled requests across all operations",props)}metricSystemErrorsForOperations(props){return this.sumMetricsForOperations("SystemErrors","Sum of errors across all operations",props)}sumMetricsForOperations(metricName,expressionLabel,props){if(props?.dimensions?.Operation)throw new Error("The Operation dimension is not supported. Use the 'operations' property.");const operations=props?.operations??Object.values(Operation),values=this.createMetricsForOperations(metricName,operations,{statistic:"sum",...props});return new cloudwatch.MathExpression({expression:`${Object.keys(values).join(" + ")}`,usingMetrics:{...values},color:props?.color,label:expressionLabel,period:props?.period})}createMetricsForOperations(metricName,operations,props,metricNameMapper){const metrics={},mapper=metricNameMapper??(op=>op.toLowerCase());if(props?.dimensions?.Operation)throw new Error("Invalid properties. Operation dimension is not supported when calculating operational metrics");for(const operation of operations){const metric=this.metric(metricName,{...props,dimensionsMap:{TableName:this.tableName,Operation:operation,...props?.dimensions}}),operationMetricName=mapper(operation),firstChar=operationMetricName.charAt(0);if(firstChar===firstChar.toUpperCase())throw new Error(`Mapper generated an illegal operation metric name: ${operationMetricName}. Must start with a lowercase letter`);metrics[operationMetricName]=metric}return metrics}combinedGrant(grantee,opts){if(opts.tableActions){const resources=[this.tableArn,core_1.Lazy.string({produce:()=>this.hasIndex?`${this.tableArn}/index/*`:core_1.Aws.NO_VALUE}),...this.regionalArns,...this.regionalArns.map(arn=>core_1.Lazy.string({produce:()=>this.hasIndex?`${arn}/index/*`:core_1.Aws.NO_VALUE}))],ret=iam.Grant.addToPrincipal({grantee,actions:opts.tableActions,resourceArns:resources,scope:this});return this.encryptionKey&&opts.keyActions&&this.encryptionKey.grant(grantee,...opts.keyActions),ret}if(opts.streamActions){if(!this.tableStreamArn)throw new Error(`DynamoDB Streams must be enabled on the table ${this.node.path}`);const resources=[this.tableStreamArn];return iam.Grant.addToPrincipal({grantee,actions:opts.streamActions,resourceArns:resources,scope:this})}throw new Error(`Unexpected 'action', ${opts.tableActions||opts.streamActions}`)}cannedMetric(fn,props){return new cloudwatch.Metric({...fn({TableName:this.tableName}),...props}).attachTo(this)}}class Table extends TableBase{constructor(scope,id,props){super(scope,id,{physicalName:props.tableName}),this.keySchema=new Array,this.attributeDefinitions=new Array,this.globalSecondaryIndexes=new Array,this.localSecondaryIndexes=new Array,this.secondaryIndexSchemas=new Map,this.nonKeyAttributes=new Set,this.tableScaling={},this.indexScaling=new Map,this.globalReplicaCustomResources=new Array;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_TableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Table),error}const{sseSpecification,encryptionKey}=this.parseEncryption(props);let streamSpecification;if(props.replicationRegions){if(props.stream&&props.stream!==StreamViewType.NEW_AND_OLD_IMAGES)throw new Error("`stream` must be set to `NEW_AND_OLD_IMAGES` when specifying `replicationRegions`");streamSpecification={streamViewType:StreamViewType.NEW_AND_OLD_IMAGES},this.billingMode=props.billingMode??BillingMode.PAY_PER_REQUEST}else this.billingMode=props.billingMode??BillingMode.PROVISIONED,props.stream&&(streamSpecification={streamViewType:props.stream});this.validateProvisioning(props),this.table=new dynamodb_generated_1.CfnTable(this,"Resource",{tableName:this.physicalName,keySchema:this.keySchema,attributeDefinitions:this.attributeDefinitions,globalSecondaryIndexes:core_1.Lazy.any({produce:()=>this.globalSecondaryIndexes},{omitEmptyArray:!0}),localSecondaryIndexes:core_1.Lazy.any({produce:()=>this.localSecondaryIndexes},{omitEmptyArray:!0}),pointInTimeRecoverySpecification:props.pointInTimeRecovery!=null?{pointInTimeRecoveryEnabled:props.pointInTimeRecovery}:void 0,billingMode:this.billingMode===BillingMode.PAY_PER_REQUEST?this.billingMode:void 0,provisionedThroughput:this.billingMode===BillingMode.PAY_PER_REQUEST?void 0:{readCapacityUnits:props.readCapacity||5,writeCapacityUnits:props.writeCapacity||5},sseSpecification,streamSpecification,tableClass:props.tableClass,timeToLiveSpecification:props.timeToLiveAttribute?{attributeName:props.timeToLiveAttribute,enabled:!0}:void 0,contributorInsightsSpecification:props.contributorInsightsEnabled!==void 0?{enabled:props.contributorInsightsEnabled}:void 0,kinesisStreamSpecification:props.kinesisStream?{streamArn:props.kinesisStream.streamArn}:void 0}),this.table.applyRemovalPolicy(props.removalPolicy),this.encryptionKey=encryptionKey,this.tableArn=this.getResourceArnAttribute(this.table.attrArn,{service:"dynamodb",resource:"table",resourceName:this.physicalName}),this.tableName=this.getResourceNameAttribute(this.table.ref),props.tableName&&this.node.addMetadata("aws:cdk:hasPhysicalName",this.tableName),this.tableStreamArn=streamSpecification?this.table.attrStreamArn:void 0,this.scalingRole=this.makeScalingRole(),this.addKey(props.partitionKey,HASH_KEY_TYPE),this.tablePartitionKey=props.partitionKey,props.sortKey&&(this.addKey(props.sortKey,RANGE_KEY_TYPE),this.tableSortKey=props.sortKey),props.replicationRegions&&props.replicationRegions.length>0&&this.createReplicaTables(props.replicationRegions,props.replicationTimeout,props.waitForReplicationToFinish),this.node.addValidation({validate:()=>this.validateTable()})}static grantListStreams(grantee){return iam.Grant.addToPrincipal({grantee,actions:["dynamodb:ListStreams"],resourceArns:["*"]})}static fromTableName(scope,id,tableName){return Table.fromTableAttributes(scope,id,{tableName})}static fromTableArn(scope,id,tableArn){return Table.fromTableAttributes(scope,id,{tableArn})}static fromTableAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_TableAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromTableAttributes),error}class Import extends TableBase{constructor(_tableArn,tableName,tableStreamArn){super(scope,id),this.hasIndex=(attrs.grantIndexPermissions??!1)||(attrs.globalIndexes??[]).length>0||(attrs.localIndexes??[]).length>0,this.tableArn=_tableArn,this.tableName=tableName,this.tableStreamArn=tableStreamArn,this.encryptionKey=attrs.encryptionKey}}let name,arn;const stack=core_1.Stack.of(scope);if(attrs.tableName){if(attrs.tableArn)throw new Error("Only one of tableArn or tableName can be provided");name=attrs.tableName,arn=stack.formatArn({service:"dynamodb",resource:"table",resourceName:attrs.tableName})}else{if(!attrs.tableArn)throw new Error("One of tableName or tableArn is required!");arn=attrs.tableArn;const maybeTableName=stack.splitArn(attrs.tableArn,core_1.ArnFormat.SLASH_RESOURCE_NAME).resourceName;if(!maybeTableName)throw new Error("ARN for DynamoDB table must be in the form: ...");name=maybeTableName}return new Import(arn,name,attrs.tableStreamArn)}addGlobalSecondaryIndex(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_GlobalSecondaryIndexProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addGlobalSecondaryIndex),error}this.validateProvisioning(props),this.validateIndexName(props.indexName);const gsiKeySchema=this.buildIndexKeySchema(props.partitionKey,props.sortKey),gsiProjection=this.buildIndexProjection(props);this.globalSecondaryIndexes.push({indexName:props.indexName,keySchema:gsiKeySchema,projection:gsiProjection,provisionedThroughput:this.billingMode===BillingMode.PAY_PER_REQUEST?void 0:{readCapacityUnits:props.readCapacity||5,writeCapacityUnits:props.writeCapacity||5}}),this.secondaryIndexSchemas.set(props.indexName,{partitionKey:props.partitionKey,sortKey:props.sortKey}),this.indexScaling.set(props.indexName,{})}addLocalSecondaryIndex(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_LocalSecondaryIndexProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addLocalSecondaryIndex),error}if(this.localSecondaryIndexes.length>=MAX_LOCAL_SECONDARY_INDEX_COUNT)throw new RangeError(`a maximum number of local secondary index per table is ${MAX_LOCAL_SECONDARY_INDEX_COUNT}`);this.validateIndexName(props.indexName);const lsiKeySchema=this.buildIndexKeySchema(this.tablePartitionKey,props.sortKey),lsiProjection=this.buildIndexProjection(props);this.localSecondaryIndexes.push({indexName:props.indexName,keySchema:lsiKeySchema,projection:lsiProjection}),this.secondaryIndexSchemas.set(props.indexName,{partitionKey:this.tablePartitionKey,sortKey:props.sortKey})}autoScaleReadCapacity(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleReadCapacity),error}if(this.tableScaling.scalableReadAttribute)throw new Error("Read AutoScaling already enabled for this table");if(this.billingMode===BillingMode.PAY_PER_REQUEST)throw new Error("AutoScaling is not available for tables with PAY_PER_REQUEST billing mode");return this.tableScaling.scalableReadAttribute=new scalable_table_attribute_1.ScalableTableAttribute(this,"ReadScaling",{serviceNamespace:appscaling.ServiceNamespace.DYNAMODB,resourceId:`table/${this.tableName}`,dimension:"dynamodb:table:ReadCapacityUnits",role:this.scalingRole,...props})}autoScaleWriteCapacity(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleWriteCapacity),error}if(this.tableScaling.scalableWriteAttribute)throw new Error("Write AutoScaling already enabled for this table");if(this.billingMode===BillingMode.PAY_PER_REQUEST)throw new Error("AutoScaling is not available for tables with PAY_PER_REQUEST billing mode");this.tableScaling.scalableWriteAttribute=new scalable_table_attribute_1.ScalableTableAttribute(this,"WriteScaling",{serviceNamespace:appscaling.ServiceNamespace.DYNAMODB,resourceId:`table/${this.tableName}`,dimension:"dynamodb:table:WriteCapacityUnits",role:this.scalingRole,...props});for(const globalReplicaCustomResource of this.globalReplicaCustomResources)globalReplicaCustomResource.node.addDependency(this.tableScaling.scalableWriteAttribute);return this.tableScaling.scalableWriteAttribute}autoScaleGlobalSecondaryIndexReadCapacity(indexName,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleGlobalSecondaryIndexReadCapacity),error}if(this.billingMode===BillingMode.PAY_PER_REQUEST)throw new Error("AutoScaling is not available for tables with PAY_PER_REQUEST billing mode");const attributePair=this.indexScaling.get(indexName);if(!attributePair)throw new Error(`No global secondary index with name ${indexName}`);if(attributePair.scalableReadAttribute)throw new Error("Read AutoScaling already enabled for this index");return attributePair.scalableReadAttribute=new scalable_table_attribute_1.ScalableTableAttribute(this,`${indexName}ReadScaling`,{serviceNamespace:appscaling.ServiceNamespace.DYNAMODB,resourceId:`table/${this.tableName}/index/${indexName}`,dimension:"dynamodb:index:ReadCapacityUnits",role:this.scalingRole,...props})}autoScaleGlobalSecondaryIndexWriteCapacity(indexName,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleGlobalSecondaryIndexWriteCapacity),error}if(this.billingMode===BillingMode.PAY_PER_REQUEST)throw new Error("AutoScaling is not available for tables with PAY_PER_REQUEST billing mode");const attributePair=this.indexScaling.get(indexName);if(!attributePair)throw new Error(`No global secondary index with name ${indexName}`);if(attributePair.scalableWriteAttribute)throw new Error("Write AutoScaling already enabled for this index");return attributePair.scalableWriteAttribute=new scalable_table_attribute_1.ScalableTableAttribute(this,`${indexName}WriteScaling`,{serviceNamespace:appscaling.ServiceNamespace.DYNAMODB,resourceId:`table/${this.tableName}/index/${indexName}`,dimension:"dynamodb:index:WriteCapacityUnits",role:this.scalingRole,...props})}schema(indexName){if(!indexName)return{partitionKey:this.tablePartitionKey,sortKey:this.tableSortKey};let schema=this.secondaryIndexSchemas.get(indexName);if(!schema)throw new Error(`Cannot find schema for index: ${indexName}. Use 'addGlobalSecondaryIndex' or 'addLocalSecondaryIndex' to add index`);return schema}validateTable(){const errors=new Array;if(this.tablePartitionKey||errors.push("a partition key must be specified"),this.localSecondaryIndexes.length>0&&!this.tableSortKey&&errors.push("a sort key of the table must be specified to add local secondary indexes"),this.globalReplicaCustomResources.length>0&&this.billingMode===BillingMode.PROVISIONED){const writeAutoScaleAttribute=this.tableScaling.scalableWriteAttribute;writeAutoScaleAttribute?writeAutoScaleAttribute._scalingPolicyCreated||errors.push("A global Table that uses PROVISIONED as the billing mode needs auto-scaled write capacity with a policy. Call one of the scaleOn*() methods of the object returned from autoScaleWriteCapacity()"):errors.push("A global Table that uses PROVISIONED as the billing mode needs auto-scaled write capacity. Use the autoScaleWriteCapacity() method to enable it.")}return errors}validateProvisioning(props){if(this.billingMode===BillingMode.PAY_PER_REQUEST&&(props.readCapacity!==void 0||props.writeCapacity!==void 0))throw new Error("you cannot provision read and write capacity for a table with PAY_PER_REQUEST billing mode")}validateIndexName(indexName){if(this.secondaryIndexSchemas.has(indexName))throw new Error(`a duplicate index name, ${indexName}, is not allowed`)}validateNonKeyAttributes(nonKeyAttributes){if(this.nonKeyAttributes.size+nonKeyAttributes.length>100)throw new RangeError("a maximum number of nonKeyAttributes across all of secondary indexes is 100");nonKeyAttributes.forEach(att=>this.nonKeyAttributes.add(att))}buildIndexKeySchema(partitionKey,sortKey){this.registerAttribute(partitionKey);const indexKeySchema=[{attributeName:partitionKey.name,keyType:HASH_KEY_TYPE}];return sortKey&&(this.registerAttribute(sortKey),indexKeySchema.push({attributeName:sortKey.name,keyType:RANGE_KEY_TYPE})),indexKeySchema}buildIndexProjection(props){if(props.projectionType===ProjectionType.INCLUDE&&!props.nonKeyAttributes)throw new Error(`non-key attributes should be specified when using ${ProjectionType.INCLUDE} projection type`);if(props.projectionType!==ProjectionType.INCLUDE&&props.nonKeyAttributes)throw new Error(`non-key attributes should not be specified when not using ${ProjectionType.INCLUDE} projection type`);return props.nonKeyAttributes&&this.validateNonKeyAttributes(props.nonKeyAttributes),{projectionType:props.projectionType??ProjectionType.ALL,nonKeyAttributes:props.nonKeyAttributes??void 0}}findKey(keyType){return this.keySchema.find(prop=>prop.keyType===keyType)}addKey(attribute,keyType){const existingProp=this.findKey(keyType);if(existingProp)throw new Error(`Unable to set ${attribute.name} as a ${keyType} key, because ${existingProp.attributeName} is a ${keyType} key`);return this.registerAttribute(attribute),this.keySchema.push({attributeName:attribute.name,keyType}),this}registerAttribute(attribute){const{name,type}=attribute,existingDef=this.attributeDefinitions.find(def=>def.attributeName===name);if(existingDef&&existingDef.attributeType!==type)throw new Error(`Unable to specify ${name} as ${type} because it was already defined as ${existingDef.attributeType}`);existingDef||this.attributeDefinitions.push({attributeName:name,attributeType:type})}makeScalingRole(){return iam.Role.fromRoleArn(this,"ScalingRole",core_1.Stack.of(this).formatArn({service:"iam",region:"",resource:"role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com",resourceName:"AWSServiceRoleForApplicationAutoScaling_DynamoDBTable"}))}createReplicaTables(regions,timeout,waitForReplicationToFinish){const stack=core_1.Stack.of(this);if(!core_1.Token.isUnresolved(stack.region)&&regions.includes(stack.region))throw new Error("`replicationRegions` cannot include the region where this stack is deployed.");const provider=replica_provider_1.ReplicaProvider.getOrCreate(this,{timeout}),onEventHandlerPolicy=new SourceTableAttachedPolicy(this,provider.onEventHandler.role),isCompleteHandlerPolicy=new SourceTableAttachedPolicy(this,provider.isCompleteHandler.role);this.grant(onEventHandlerPolicy,"dynamodb:*"),this.grant(isCompleteHandlerPolicy,"dynamodb:DescribeTable");let previousRegion,previousRegionCondition;for(const region of new Set(regions)){const currentRegion=new core_1.CustomResource(this,`Replica${region}`,{serviceToken:provider.provider.serviceToken,resourceType:"Custom::DynamoDBReplica",properties:{TableName:this.tableName,Region:region,SkipReplicationCompletedWait:waitForReplicationToFinish==null?void 0:(!waitForReplicationToFinish).toString()}});currentRegion.node.addDependency(onEventHandlerPolicy.policy,isCompleteHandlerPolicy.policy),this.globalReplicaCustomResources.push(currentRegion);let createReplica;if(core_1.Token.isUnresolved(stack.region)){createReplica=new core_1.CfnCondition(this,`StackRegionNotEquals${region}`,{expression:core_1.Fn.conditionNot(core_1.Fn.conditionEquals(region,core_1.Aws.REGION))});const cfnCustomResource=currentRegion.node.defaultChild;cfnCustomResource.cfnOptions.condition=createReplica}if(this.regionalArns.push(stack.formatArn({region,service:"dynamodb",resource:"table",resourceName:this.tableName})),previousRegion)if(previousRegionCondition){const previousRegionCfnResource=previousRegion.node.defaultChild;currentRegion.node.defaultChild.addMetadata("DynamoDbReplicationDependency",core_1.Fn.conditionIf(previousRegionCondition.logicalId,previousRegionCfnResource.ref,core_1.Aws.NO_VALUE))}else currentRegion.node.addDependency(previousRegion);previousRegion=currentRegion,previousRegionCondition=createReplica}onEventHandlerPolicy.grantPrincipal.addToPrincipalPolicy(new iam.PolicyStatement({actions:["dynamodb:*"],resources:this.regionalArns}))}get hasIndex(){return this.globalSecondaryIndexes.length+this.localSecondaryIndexes.length>0}parseEncryption(props){let encryptionType=props.encryption;if(encryptionType!=null&&props.serverSideEncryption!=null)throw new Error("Only one of encryption and serverSideEncryption can be specified, but both were provided");if(props.serverSideEncryption&&props.encryptionKey)throw new Error("encryptionKey cannot be specified when serverSideEncryption is specified. Use encryption instead");if(encryptionType===void 0&&(encryptionType=props.encryptionKey!=null?TableEncryption.CUSTOMER_MANAGED:props.serverSideEncryption?TableEncryption.AWS_MANAGED:void 0),encryptionType!==TableEncryption.CUSTOMER_MANAGED&&props.encryptionKey)throw new Error("`encryptionKey cannot be specified unless encryption is set to TableEncryption.CUSTOMER_MANAGED (it was set to ${encryptionType})`");if(encryptionType===TableEncryption.CUSTOMER_MANAGED&&props.replicationRegions)throw new Error("TableEncryption.CUSTOMER_MANAGED is not supported by DynamoDB Global Tables (where replicationRegions was set)");switch(encryptionType){case TableEncryption.CUSTOMER_MANAGED:const encryptionKey=props.encryptionKey??new kms.Key(this,"Key",{description:`Customer-managed key auto-created for encrypting DynamoDB table at ${this.node.path}`,enableKeyRotation:!0});return{sseSpecification:{sseEnabled:!0,kmsMasterKeyId:encryptionKey.keyArn,sseType:"KMS"},encryptionKey};case TableEncryption.AWS_MANAGED:return{sseSpecification:{sseEnabled:!0}};case TableEncryption.DEFAULT:return{sseSpecification:{sseEnabled:!1}};case void 0:return{sseSpecification:void 0};default:throw new Error(`Unexpected 'encryptionType': ${encryptionType}`)}}}exports.Table=Table,_a=JSII_RTTI_SYMBOL_1,Table[_a]={fqn:"aws-cdk-lib.aws_dynamodb.Table",version:"2.51.0"};var AttributeType;(function(AttributeType2){AttributeType2.BINARY="B",AttributeType2.NUMBER="N",AttributeType2.STRING="S"})(AttributeType=exports.AttributeType||(exports.AttributeType={}));var BillingMode;(function(BillingMode2){BillingMode2.PAY_PER_REQUEST="PAY_PER_REQUEST",BillingMode2.PROVISIONED="PROVISIONED"})(BillingMode=exports.BillingMode||(exports.BillingMode={}));var ProjectionType;(function(ProjectionType2){ProjectionType2.KEYS_ONLY="KEYS_ONLY",ProjectionType2.INCLUDE="INCLUDE",ProjectionType2.ALL="ALL"})(ProjectionType=exports.ProjectionType||(exports.ProjectionType={}));var StreamViewType;(function(StreamViewType2){StreamViewType2.NEW_IMAGE="NEW_IMAGE",StreamViewType2.OLD_IMAGE="OLD_IMAGE",StreamViewType2.NEW_AND_OLD_IMAGES="NEW_AND_OLD_IMAGES",StreamViewType2.KEYS_ONLY="KEYS_ONLY"})(StreamViewType=exports.StreamViewType||(exports.StreamViewType={}));var TableClass;(function(TableClass2){TableClass2.STANDARD="STANDARD",TableClass2.STANDARD_INFREQUENT_ACCESS="STANDARD_INFREQUENT_ACCESS"})(TableClass=exports.TableClass||(exports.TableClass={}));class SourceTableAttachedPolicy extends constructs_1.Construct{constructor(sourceTable,role){super(sourceTable,`SourceTableAttachedManagedPolicy-${core_1.Names.nodeUniqueId(role.node)}`);const policy=new iam.ManagedPolicy(this,"Resource",{description:`DynamoDB replication managed policy for table ${sourceTable.tableName}`,roles:[role]});this.policy=policy,this.grantPrincipal=new SourceTableAttachedPrincipal(role,policy)}}class SourceTableAttachedPrincipal extends iam.PrincipalBase{constructor(role,policy){super(),this.role=role,this.policy=policy}get policyFragment(){return this.role.policyFragment}addToPrincipalPolicy(statement){return this.policy.addStatements(statement),{policyDependable:this.policy,statementAdded:!0}}dedupeString(){}}
1
+ "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.TableClass=exports.StreamViewType=exports.ProjectionType=exports.BillingMode=exports.AttributeType=exports.Table=exports.TableEncryption=exports.Operation=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),appscaling=require("../../aws-applicationautoscaling"),cloudwatch=require("../../aws-cloudwatch"),iam=require("../../aws-iam"),kms=require("../../aws-kms"),core_1=require("../../core"),constructs_1=require("constructs"),dynamodb_canned_metrics_generated_1=require("./dynamodb-canned-metrics.generated"),dynamodb_generated_1=require("./dynamodb.generated"),perms=require("./perms"),replica_provider_1=require("./replica-provider"),scalable_table_attribute_1=require("./scalable-table-attribute"),HASH_KEY_TYPE="HASH",RANGE_KEY_TYPE="RANGE",MAX_LOCAL_SECONDARY_INDEX_COUNT=5;var Operation;(function(Operation2){Operation2.GET_ITEM="GetItem",Operation2.BATCH_GET_ITEM="BatchGetItem",Operation2.SCAN="Scan",Operation2.QUERY="Query",Operation2.GET_RECORDS="GetRecords",Operation2.PUT_ITEM="PutItem",Operation2.DELETE_ITEM="DeleteItem",Operation2.UPDATE_ITEM="UpdateItem",Operation2.BATCH_WRITE_ITEM="BatchWriteItem",Operation2.TRANSACT_WRITE_ITEMS="TransactWriteItems",Operation2.TRANSACT_GET_ITEMS="TransactGetItems",Operation2.EXECUTE_TRANSACTION="ExecuteTransaction",Operation2.BATCH_EXECUTE_STATEMENT="BatchExecuteStatement",Operation2.EXECUTE_STATEMENT="ExecuteStatement"})(Operation=exports.Operation||(exports.Operation={}));var TableEncryption;(function(TableEncryption2){TableEncryption2.DEFAULT="AWS_OWNED",TableEncryption2.CUSTOMER_MANAGED="CUSTOMER_MANAGED",TableEncryption2.AWS_MANAGED="AWS_MANAGED"})(TableEncryption=exports.TableEncryption||(exports.TableEncryption={}));class TableBase extends core_1.Resource{constructor(){super(...arguments),this.regionalArns=new Array}grant(grantee,...actions){return iam.Grant.addToPrincipal({grantee,actions,resourceArns:[this.tableArn,core_1.Lazy.string({produce:()=>this.hasIndex?`${this.tableArn}/index/*`:core_1.Aws.NO_VALUE}),...this.regionalArns,...this.regionalArns.map(arn=>core_1.Lazy.string({produce:()=>this.hasIndex?`${arn}/index/*`:core_1.Aws.NO_VALUE}))],scope:this})}grantStream(grantee,...actions){if(!this.tableStreamArn)throw new Error(`DynamoDB Streams must be enabled on the table ${this.node.path}`);return iam.Grant.addToPrincipal({grantee,actions,resourceArns:[this.tableStreamArn],scope:this})}grantReadData(grantee){const tableActions=perms.READ_DATA_ACTIONS.concat(perms.DESCRIBE_TABLE);return this.combinedGrant(grantee,{keyActions:perms.KEY_READ_ACTIONS,tableActions})}grantTableListStreams(grantee){if(!this.tableStreamArn)throw new Error(`DynamoDB Streams must be enabled on the table ${this.node.path}`);return iam.Grant.addToPrincipal({grantee,actions:["dynamodb:ListStreams"],resourceArns:["*"]})}grantStreamRead(grantee){return this.grantTableListStreams(grantee),this.combinedGrant(grantee,{keyActions:perms.KEY_READ_ACTIONS,streamActions:perms.READ_STREAM_DATA_ACTIONS})}grantWriteData(grantee){const tableActions=perms.WRITE_DATA_ACTIONS.concat(perms.DESCRIBE_TABLE),keyActions=perms.KEY_READ_ACTIONS.concat(perms.KEY_WRITE_ACTIONS);return this.combinedGrant(grantee,{keyActions,tableActions})}grantReadWriteData(grantee){const tableActions=perms.READ_DATA_ACTIONS.concat(perms.WRITE_DATA_ACTIONS).concat(perms.DESCRIBE_TABLE),keyActions=perms.KEY_READ_ACTIONS.concat(perms.KEY_WRITE_ACTIONS);return this.combinedGrant(grantee,{keyActions,tableActions})}grantFullAccess(grantee){const keyActions=perms.KEY_READ_ACTIONS.concat(perms.KEY_WRITE_ACTIONS);return this.combinedGrant(grantee,{keyActions,tableActions:["dynamodb:*"]})}metric(metricName,props){return new cloudwatch.Metric({namespace:"AWS/DynamoDB",metricName,dimensionsMap:{TableName:this.tableName},...props}).attachTo(this)}metricConsumedReadCapacityUnits(props){return this.cannedMetric(dynamodb_canned_metrics_generated_1.DynamoDBMetrics.consumedReadCapacityUnitsSum,props)}metricConsumedWriteCapacityUnits(props){return this.cannedMetric(dynamodb_canned_metrics_generated_1.DynamoDBMetrics.consumedWriteCapacityUnitsSum,props)}metricSystemErrors(props){if(!props?.dimensions?.Operation&&!props?.dimensionsMap?.Operation)throw new Error("'Operation' dimension must be passed for the 'SystemErrors' metric.");const dimensionsMap={TableName:this.tableName,...props?.dimensions??{},...props?.dimensionsMap??{}};return this.metric("SystemErrors",{statistic:"sum",...props,dimensionsMap})}metricUserErrors(props){if(props?.dimensions)throw new Error("'dimensions' is not supported for the 'UserErrors' metric");return this.metric("UserErrors",{statistic:"sum",...props,dimensionsMap:{}})}metricConditionalCheckFailedRequests(props){return this.metric("ConditionalCheckFailedRequests",{statistic:"sum",...props})}metricThrottledRequests(props){return this.metric("ThrottledRequests",{statistic:"sum",...props})}metricSuccessfulRequestLatency(props){if(!props?.dimensions?.Operation&&!props?.dimensionsMap?.Operation)throw new Error("'Operation' dimension must be passed for the 'SuccessfulRequestLatency' metric.");const dimensionsMap={TableName:this.tableName,Operation:props.dimensionsMap?.Operation??props.dimensions?.Operation};return new cloudwatch.Metric({...dynamodb_canned_metrics_generated_1.DynamoDBMetrics.successfulRequestLatencyAverage(dimensionsMap),...props,dimensionsMap}).attachTo(this)}metricThrottledRequestsForOperation(operation,props){return new cloudwatch.Metric({...dynamodb_canned_metrics_generated_1.DynamoDBMetrics.throttledRequestsSum({Operation:operation,TableName:this.tableName}),...props}).attachTo(this)}metricThrottledRequestsForOperations(props){return this.sumMetricsForOperations("ThrottledRequests","Sum of throttled requests across all operations",props)}metricSystemErrorsForOperations(props){return this.sumMetricsForOperations("SystemErrors","Sum of errors across all operations",props)}sumMetricsForOperations(metricName,expressionLabel,props){if(props?.dimensions?.Operation)throw new Error("The Operation dimension is not supported. Use the 'operations' property.");const operations=props?.operations??Object.values(Operation),values=this.createMetricsForOperations(metricName,operations,{statistic:"sum",...props});return new cloudwatch.MathExpression({expression:`${Object.keys(values).join(" + ")}`,usingMetrics:{...values},color:props?.color,label:expressionLabel,period:props?.period})}createMetricsForOperations(metricName,operations,props,metricNameMapper){const metrics={},mapper=metricNameMapper??(op=>op.toLowerCase());if(props?.dimensions?.Operation)throw new Error("Invalid properties. Operation dimension is not supported when calculating operational metrics");for(const operation of operations){const metric=this.metric(metricName,{...props,dimensionsMap:{TableName:this.tableName,Operation:operation,...props?.dimensions}}),operationMetricName=mapper(operation),firstChar=operationMetricName.charAt(0);if(firstChar===firstChar.toUpperCase())throw new Error(`Mapper generated an illegal operation metric name: ${operationMetricName}. Must start with a lowercase letter`);metrics[operationMetricName]=metric}return metrics}combinedGrant(grantee,opts){if(opts.tableActions){const resources=[this.tableArn,core_1.Lazy.string({produce:()=>this.hasIndex?`${this.tableArn}/index/*`:core_1.Aws.NO_VALUE}),...this.regionalArns,...this.regionalArns.map(arn=>core_1.Lazy.string({produce:()=>this.hasIndex?`${arn}/index/*`:core_1.Aws.NO_VALUE}))],ret=iam.Grant.addToPrincipal({grantee,actions:opts.tableActions,resourceArns:resources,scope:this});return this.encryptionKey&&opts.keyActions&&this.encryptionKey.grant(grantee,...opts.keyActions),ret}if(opts.streamActions){if(!this.tableStreamArn)throw new Error(`DynamoDB Streams must be enabled on the table ${this.node.path}`);const resources=[this.tableStreamArn];return iam.Grant.addToPrincipal({grantee,actions:opts.streamActions,resourceArns:resources,scope:this})}throw new Error(`Unexpected 'action', ${opts.tableActions||opts.streamActions}`)}cannedMetric(fn,props){return new cloudwatch.Metric({...fn({TableName:this.tableName}),...props}).attachTo(this)}}class Table extends TableBase{constructor(scope,id,props){super(scope,id,{physicalName:props.tableName}),this.keySchema=new Array,this.attributeDefinitions=new Array,this.globalSecondaryIndexes=new Array,this.localSecondaryIndexes=new Array,this.secondaryIndexSchemas=new Map,this.nonKeyAttributes=new Set,this.tableScaling={},this.indexScaling=new Map,this.globalReplicaCustomResources=new Array;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_TableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Table),error}const{sseSpecification,encryptionKey}=this.parseEncryption(props);let streamSpecification;if(props.replicationRegions){if(props.stream&&props.stream!==StreamViewType.NEW_AND_OLD_IMAGES)throw new Error("`stream` must be set to `NEW_AND_OLD_IMAGES` when specifying `replicationRegions`");streamSpecification={streamViewType:StreamViewType.NEW_AND_OLD_IMAGES},this.billingMode=props.billingMode??BillingMode.PAY_PER_REQUEST}else this.billingMode=props.billingMode??BillingMode.PROVISIONED,props.stream&&(streamSpecification={streamViewType:props.stream});this.validateProvisioning(props),this.table=new dynamodb_generated_1.CfnTable(this,"Resource",{tableName:this.physicalName,keySchema:this.keySchema,attributeDefinitions:this.attributeDefinitions,globalSecondaryIndexes:core_1.Lazy.any({produce:()=>this.globalSecondaryIndexes},{omitEmptyArray:!0}),localSecondaryIndexes:core_1.Lazy.any({produce:()=>this.localSecondaryIndexes},{omitEmptyArray:!0}),pointInTimeRecoverySpecification:props.pointInTimeRecovery!=null?{pointInTimeRecoveryEnabled:props.pointInTimeRecovery}:void 0,billingMode:this.billingMode===BillingMode.PAY_PER_REQUEST?this.billingMode:void 0,provisionedThroughput:this.billingMode===BillingMode.PAY_PER_REQUEST?void 0:{readCapacityUnits:props.readCapacity||5,writeCapacityUnits:props.writeCapacity||5},sseSpecification,streamSpecification,tableClass:props.tableClass,timeToLiveSpecification:props.timeToLiveAttribute?{attributeName:props.timeToLiveAttribute,enabled:!0}:void 0,contributorInsightsSpecification:props.contributorInsightsEnabled!==void 0?{enabled:props.contributorInsightsEnabled}:void 0,kinesisStreamSpecification:props.kinesisStream?{streamArn:props.kinesisStream.streamArn}:void 0}),this.table.applyRemovalPolicy(props.removalPolicy),this.encryptionKey=encryptionKey,this.tableArn=this.getResourceArnAttribute(this.table.attrArn,{service:"dynamodb",resource:"table",resourceName:this.physicalName}),this.tableName=this.getResourceNameAttribute(this.table.ref),props.tableName&&this.node.addMetadata("aws:cdk:hasPhysicalName",this.tableName),this.tableStreamArn=streamSpecification?this.table.attrStreamArn:void 0,this.scalingRole=this.makeScalingRole(),this.addKey(props.partitionKey,HASH_KEY_TYPE),this.tablePartitionKey=props.partitionKey,props.sortKey&&(this.addKey(props.sortKey,RANGE_KEY_TYPE),this.tableSortKey=props.sortKey),props.replicationRegions&&props.replicationRegions.length>0&&this.createReplicaTables(props.replicationRegions,props.replicationTimeout,props.waitForReplicationToFinish),this.node.addValidation({validate:()=>this.validateTable()})}static grantListStreams(grantee){return iam.Grant.addToPrincipal({grantee,actions:["dynamodb:ListStreams"],resourceArns:["*"]})}static fromTableName(scope,id,tableName){return Table.fromTableAttributes(scope,id,{tableName})}static fromTableArn(scope,id,tableArn){return Table.fromTableAttributes(scope,id,{tableArn})}static fromTableAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_TableAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromTableAttributes),error}class Import extends TableBase{constructor(_tableArn,tableName,tableStreamArn){super(scope,id),this.hasIndex=(attrs.grantIndexPermissions??!1)||(attrs.globalIndexes??[]).length>0||(attrs.localIndexes??[]).length>0,this.tableArn=_tableArn,this.tableName=tableName,this.tableStreamArn=tableStreamArn,this.encryptionKey=attrs.encryptionKey}}let name,arn;const stack=core_1.Stack.of(scope);if(attrs.tableName){if(attrs.tableArn)throw new Error("Only one of tableArn or tableName can be provided");name=attrs.tableName,arn=stack.formatArn({service:"dynamodb",resource:"table",resourceName:attrs.tableName})}else{if(!attrs.tableArn)throw new Error("One of tableName or tableArn is required!");arn=attrs.tableArn;const maybeTableName=stack.splitArn(attrs.tableArn,core_1.ArnFormat.SLASH_RESOURCE_NAME).resourceName;if(!maybeTableName)throw new Error("ARN for DynamoDB table must be in the form: ...");name=maybeTableName}return new Import(arn,name,attrs.tableStreamArn)}addGlobalSecondaryIndex(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_GlobalSecondaryIndexProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addGlobalSecondaryIndex),error}this.validateProvisioning(props),this.validateIndexName(props.indexName);const gsiKeySchema=this.buildIndexKeySchema(props.partitionKey,props.sortKey),gsiProjection=this.buildIndexProjection(props);this.globalSecondaryIndexes.push({indexName:props.indexName,keySchema:gsiKeySchema,projection:gsiProjection,provisionedThroughput:this.billingMode===BillingMode.PAY_PER_REQUEST?void 0:{readCapacityUnits:props.readCapacity||5,writeCapacityUnits:props.writeCapacity||5}}),this.secondaryIndexSchemas.set(props.indexName,{partitionKey:props.partitionKey,sortKey:props.sortKey}),this.indexScaling.set(props.indexName,{})}addLocalSecondaryIndex(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_LocalSecondaryIndexProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addLocalSecondaryIndex),error}if(this.localSecondaryIndexes.length>=MAX_LOCAL_SECONDARY_INDEX_COUNT)throw new RangeError(`a maximum number of local secondary index per table is ${MAX_LOCAL_SECONDARY_INDEX_COUNT}`);this.validateIndexName(props.indexName);const lsiKeySchema=this.buildIndexKeySchema(this.tablePartitionKey,props.sortKey),lsiProjection=this.buildIndexProjection(props);this.localSecondaryIndexes.push({indexName:props.indexName,keySchema:lsiKeySchema,projection:lsiProjection}),this.secondaryIndexSchemas.set(props.indexName,{partitionKey:this.tablePartitionKey,sortKey:props.sortKey})}autoScaleReadCapacity(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleReadCapacity),error}if(this.tableScaling.scalableReadAttribute)throw new Error("Read AutoScaling already enabled for this table");if(this.billingMode===BillingMode.PAY_PER_REQUEST)throw new Error("AutoScaling is not available for tables with PAY_PER_REQUEST billing mode");return this.tableScaling.scalableReadAttribute=new scalable_table_attribute_1.ScalableTableAttribute(this,"ReadScaling",{serviceNamespace:appscaling.ServiceNamespace.DYNAMODB,resourceId:`table/${this.tableName}`,dimension:"dynamodb:table:ReadCapacityUnits",role:this.scalingRole,...props})}autoScaleWriteCapacity(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleWriteCapacity),error}if(this.tableScaling.scalableWriteAttribute)throw new Error("Write AutoScaling already enabled for this table");if(this.billingMode===BillingMode.PAY_PER_REQUEST)throw new Error("AutoScaling is not available for tables with PAY_PER_REQUEST billing mode");this.tableScaling.scalableWriteAttribute=new scalable_table_attribute_1.ScalableTableAttribute(this,"WriteScaling",{serviceNamespace:appscaling.ServiceNamespace.DYNAMODB,resourceId:`table/${this.tableName}`,dimension:"dynamodb:table:WriteCapacityUnits",role:this.scalingRole,...props});for(const globalReplicaCustomResource of this.globalReplicaCustomResources)globalReplicaCustomResource.node.addDependency(this.tableScaling.scalableWriteAttribute);return this.tableScaling.scalableWriteAttribute}autoScaleGlobalSecondaryIndexReadCapacity(indexName,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleGlobalSecondaryIndexReadCapacity),error}if(this.billingMode===BillingMode.PAY_PER_REQUEST)throw new Error("AutoScaling is not available for tables with PAY_PER_REQUEST billing mode");const attributePair=this.indexScaling.get(indexName);if(!attributePair)throw new Error(`No global secondary index with name ${indexName}`);if(attributePair.scalableReadAttribute)throw new Error("Read AutoScaling already enabled for this index");return attributePair.scalableReadAttribute=new scalable_table_attribute_1.ScalableTableAttribute(this,`${indexName}ReadScaling`,{serviceNamespace:appscaling.ServiceNamespace.DYNAMODB,resourceId:`table/${this.tableName}/index/${indexName}`,dimension:"dynamodb:index:ReadCapacityUnits",role:this.scalingRole,...props})}autoScaleGlobalSecondaryIndexWriteCapacity(indexName,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_dynamodb_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleGlobalSecondaryIndexWriteCapacity),error}if(this.billingMode===BillingMode.PAY_PER_REQUEST)throw new Error("AutoScaling is not available for tables with PAY_PER_REQUEST billing mode");const attributePair=this.indexScaling.get(indexName);if(!attributePair)throw new Error(`No global secondary index with name ${indexName}`);if(attributePair.scalableWriteAttribute)throw new Error("Write AutoScaling already enabled for this index");return attributePair.scalableWriteAttribute=new scalable_table_attribute_1.ScalableTableAttribute(this,`${indexName}WriteScaling`,{serviceNamespace:appscaling.ServiceNamespace.DYNAMODB,resourceId:`table/${this.tableName}/index/${indexName}`,dimension:"dynamodb:index:WriteCapacityUnits",role:this.scalingRole,...props})}schema(indexName){if(!indexName)return{partitionKey:this.tablePartitionKey,sortKey:this.tableSortKey};let schema=this.secondaryIndexSchemas.get(indexName);if(!schema)throw new Error(`Cannot find schema for index: ${indexName}. Use 'addGlobalSecondaryIndex' or 'addLocalSecondaryIndex' to add index`);return schema}validateTable(){const errors=new Array;if(this.tablePartitionKey||errors.push("a partition key must be specified"),this.localSecondaryIndexes.length>0&&!this.tableSortKey&&errors.push("a sort key of the table must be specified to add local secondary indexes"),this.globalReplicaCustomResources.length>0&&this.billingMode===BillingMode.PROVISIONED){const writeAutoScaleAttribute=this.tableScaling.scalableWriteAttribute;writeAutoScaleAttribute?writeAutoScaleAttribute._scalingPolicyCreated||errors.push("A global Table that uses PROVISIONED as the billing mode needs auto-scaled write capacity with a policy. Call one of the scaleOn*() methods of the object returned from autoScaleWriteCapacity()"):errors.push("A global Table that uses PROVISIONED as the billing mode needs auto-scaled write capacity. Use the autoScaleWriteCapacity() method to enable it.")}return errors}validateProvisioning(props){if(this.billingMode===BillingMode.PAY_PER_REQUEST&&(props.readCapacity!==void 0||props.writeCapacity!==void 0))throw new Error("you cannot provision read and write capacity for a table with PAY_PER_REQUEST billing mode")}validateIndexName(indexName){if(this.secondaryIndexSchemas.has(indexName))throw new Error(`a duplicate index name, ${indexName}, is not allowed`)}validateNonKeyAttributes(nonKeyAttributes){if(this.nonKeyAttributes.size+nonKeyAttributes.length>100)throw new RangeError("a maximum number of nonKeyAttributes across all of secondary indexes is 100");nonKeyAttributes.forEach(att=>this.nonKeyAttributes.add(att))}buildIndexKeySchema(partitionKey,sortKey){this.registerAttribute(partitionKey);const indexKeySchema=[{attributeName:partitionKey.name,keyType:HASH_KEY_TYPE}];return sortKey&&(this.registerAttribute(sortKey),indexKeySchema.push({attributeName:sortKey.name,keyType:RANGE_KEY_TYPE})),indexKeySchema}buildIndexProjection(props){if(props.projectionType===ProjectionType.INCLUDE&&!props.nonKeyAttributes)throw new Error(`non-key attributes should be specified when using ${ProjectionType.INCLUDE} projection type`);if(props.projectionType!==ProjectionType.INCLUDE&&props.nonKeyAttributes)throw new Error(`non-key attributes should not be specified when not using ${ProjectionType.INCLUDE} projection type`);return props.nonKeyAttributes&&this.validateNonKeyAttributes(props.nonKeyAttributes),{projectionType:props.projectionType??ProjectionType.ALL,nonKeyAttributes:props.nonKeyAttributes??void 0}}findKey(keyType){return this.keySchema.find(prop=>prop.keyType===keyType)}addKey(attribute,keyType){const existingProp=this.findKey(keyType);if(existingProp)throw new Error(`Unable to set ${attribute.name} as a ${keyType} key, because ${existingProp.attributeName} is a ${keyType} key`);return this.registerAttribute(attribute),this.keySchema.push({attributeName:attribute.name,keyType}),this}registerAttribute(attribute){const{name,type}=attribute,existingDef=this.attributeDefinitions.find(def=>def.attributeName===name);if(existingDef&&existingDef.attributeType!==type)throw new Error(`Unable to specify ${name} as ${type} because it was already defined as ${existingDef.attributeType}`);existingDef||this.attributeDefinitions.push({attributeName:name,attributeType:type})}makeScalingRole(){return iam.Role.fromRoleArn(this,"ScalingRole",core_1.Stack.of(this).formatArn({service:"iam",region:"",resource:"role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com",resourceName:"AWSServiceRoleForApplicationAutoScaling_DynamoDBTable"}))}createReplicaTables(regions,timeout,waitForReplicationToFinish){const stack=core_1.Stack.of(this);if(!core_1.Token.isUnresolved(stack.region)&&regions.includes(stack.region))throw new Error("`replicationRegions` cannot include the region where this stack is deployed.");const provider=replica_provider_1.ReplicaProvider.getOrCreate(this,{timeout}),onEventHandlerPolicy=new SourceTableAttachedPolicy(this,provider.onEventHandler.role),isCompleteHandlerPolicy=new SourceTableAttachedPolicy(this,provider.isCompleteHandler.role);this.grant(onEventHandlerPolicy,"dynamodb:*"),this.grant(isCompleteHandlerPolicy,"dynamodb:DescribeTable");let previousRegion,previousRegionCondition;for(const region of new Set(regions)){const currentRegion=new core_1.CustomResource(this,`Replica${region}`,{serviceToken:provider.provider.serviceToken,resourceType:"Custom::DynamoDBReplica",properties:{TableName:this.tableName,Region:region,SkipReplicationCompletedWait:waitForReplicationToFinish==null?void 0:(!waitForReplicationToFinish).toString()}});currentRegion.node.addDependency(onEventHandlerPolicy.policy,isCompleteHandlerPolicy.policy),this.globalReplicaCustomResources.push(currentRegion);let createReplica;if(core_1.Token.isUnresolved(stack.region)){createReplica=new core_1.CfnCondition(this,`StackRegionNotEquals${region}`,{expression:core_1.Fn.conditionNot(core_1.Fn.conditionEquals(region,core_1.Aws.REGION))});const cfnCustomResource=currentRegion.node.defaultChild;cfnCustomResource.cfnOptions.condition=createReplica}if(this.regionalArns.push(stack.formatArn({region,service:"dynamodb",resource:"table",resourceName:this.tableName})),previousRegion)if(previousRegionCondition){const previousRegionCfnResource=previousRegion.node.defaultChild;currentRegion.node.defaultChild.addMetadata("DynamoDbReplicationDependency",core_1.Fn.conditionIf(previousRegionCondition.logicalId,previousRegionCfnResource.ref,core_1.Aws.NO_VALUE))}else currentRegion.node.addDependency(previousRegion);previousRegion=currentRegion,previousRegionCondition=createReplica}onEventHandlerPolicy.grantPrincipal.addToPrincipalPolicy(new iam.PolicyStatement({actions:["dynamodb:*"],resources:this.regionalArns}))}get hasIndex(){return this.globalSecondaryIndexes.length+this.localSecondaryIndexes.length>0}parseEncryption(props){let encryptionType=props.encryption;if(encryptionType!=null&&props.serverSideEncryption!=null)throw new Error("Only one of encryption and serverSideEncryption can be specified, but both were provided");if(props.serverSideEncryption&&props.encryptionKey)throw new Error("encryptionKey cannot be specified when serverSideEncryption is specified. Use encryption instead");if(encryptionType===void 0&&(encryptionType=props.encryptionKey!=null?TableEncryption.CUSTOMER_MANAGED:props.serverSideEncryption?TableEncryption.AWS_MANAGED:void 0),encryptionType!==TableEncryption.CUSTOMER_MANAGED&&props.encryptionKey)throw new Error("`encryptionKey cannot be specified unless encryption is set to TableEncryption.CUSTOMER_MANAGED (it was set to ${encryptionType})`");if(encryptionType===TableEncryption.CUSTOMER_MANAGED&&props.replicationRegions)throw new Error("TableEncryption.CUSTOMER_MANAGED is not supported by DynamoDB Global Tables (where replicationRegions was set)");switch(encryptionType){case TableEncryption.CUSTOMER_MANAGED:const encryptionKey=props.encryptionKey??new kms.Key(this,"Key",{description:`Customer-managed key auto-created for encrypting DynamoDB table at ${this.node.path}`,enableKeyRotation:!0});return{sseSpecification:{sseEnabled:!0,kmsMasterKeyId:encryptionKey.keyArn,sseType:"KMS"},encryptionKey};case TableEncryption.AWS_MANAGED:return{sseSpecification:{sseEnabled:!0}};case TableEncryption.DEFAULT:return{sseSpecification:{sseEnabled:!1}};case void 0:return{sseSpecification:void 0};default:throw new Error(`Unexpected 'encryptionType': ${encryptionType}`)}}}exports.Table=Table,_a=JSII_RTTI_SYMBOL_1,Table[_a]={fqn:"aws-cdk-lib.aws_dynamodb.Table",version:"2.51.1"};var AttributeType;(function(AttributeType2){AttributeType2.BINARY="B",AttributeType2.NUMBER="N",AttributeType2.STRING="S"})(AttributeType=exports.AttributeType||(exports.AttributeType={}));var BillingMode;(function(BillingMode2){BillingMode2.PAY_PER_REQUEST="PAY_PER_REQUEST",BillingMode2.PROVISIONED="PROVISIONED"})(BillingMode=exports.BillingMode||(exports.BillingMode={}));var ProjectionType;(function(ProjectionType2){ProjectionType2.KEYS_ONLY="KEYS_ONLY",ProjectionType2.INCLUDE="INCLUDE",ProjectionType2.ALL="ALL"})(ProjectionType=exports.ProjectionType||(exports.ProjectionType={}));var StreamViewType;(function(StreamViewType2){StreamViewType2.NEW_IMAGE="NEW_IMAGE",StreamViewType2.OLD_IMAGE="OLD_IMAGE",StreamViewType2.NEW_AND_OLD_IMAGES="NEW_AND_OLD_IMAGES",StreamViewType2.KEYS_ONLY="KEYS_ONLY"})(StreamViewType=exports.StreamViewType||(exports.StreamViewType={}));var TableClass;(function(TableClass2){TableClass2.STANDARD="STANDARD",TableClass2.STANDARD_INFREQUENT_ACCESS="STANDARD_INFREQUENT_ACCESS"})(TableClass=exports.TableClass||(exports.TableClass={}));class SourceTableAttachedPolicy extends constructs_1.Construct{constructor(sourceTable,role){super(sourceTable,`SourceTableAttachedManagedPolicy-${core_1.Names.nodeUniqueId(role.node)}`);const policy=new iam.ManagedPolicy(this,"Resource",{description:`DynamoDB replication managed policy for table ${sourceTable.tableName}`,roles:[role]});this.policy=policy,this.grantPrincipal=new SourceTableAttachedPrincipal(role,policy)}}class SourceTableAttachedPrincipal extends iam.PrincipalBase{constructor(role,policy){super(),this.role=role,this.policy=policy}get policyFragment(){return this.role.policyFragment}addToPrincipalPolicy(statement){return this.policy.addStatements(statement),{policyDependable:this.policy,statementAdded:!0}}dedupeString(){}}
2
2
  //# sourceMappingURL=table.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.LaunchTemplateRequireImdsv2Aspect=exports.InstanceRequireImdsv2Aspect=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../../core"),cxapi=require("../../../cx-api"),ec2_generated_1=require("../ec2.generated"),instance_1=require("../instance"),launch_template_1=require("../launch-template");class RequireImdsv2Aspect{constructor(props){this.suppressWarnings=props?.suppressWarnings??!1}warn(node,message){this.suppressWarnings!==!0&&cdk.Annotations.of(node).addWarning(`${RequireImdsv2Aspect.name} failed on node ${node.node.id}: ${message}`)}}class InstanceRequireImdsv2Aspect extends RequireImdsv2Aspect{constructor(props){super(props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_InstanceRequireImdsv2AspectProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,InstanceRequireImdsv2Aspect),error}this.suppressLaunchTemplateWarning=props?.suppressLaunchTemplateWarning??!1}visit(node){if(!(node instanceof instance_1.Instance))return;if(node.instance.launchTemplate!==void 0){this.warn(node,"Cannot toggle IMDSv1 because this Instance is associated with an existing Launch Template.");return}const launchTemplate=new ec2_generated_1.CfnLaunchTemplate(node,"LaunchTemplate",{launchTemplateData:{metadataOptions:{httpTokens:"required"}}});cdk.FeatureFlags.of(node).isEnabled(cxapi.EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME)?launchTemplate.launchTemplateName=cdk.Names.uniqueId(launchTemplate):launchTemplate.launchTemplateName=`${node.node.id}LaunchTemplate`,node.instance.launchTemplate={launchTemplateName:launchTemplate.launchTemplateName,version:launchTemplate.getAtt("LatestVersionNumber").toString()}}warn(node,message){this.suppressLaunchTemplateWarning!==!0&&super.warn(node,message)}}exports.InstanceRequireImdsv2Aspect=InstanceRequireImdsv2Aspect,_a=JSII_RTTI_SYMBOL_1,InstanceRequireImdsv2Aspect[_a]={fqn:"aws-cdk-lib.aws_ec2.InstanceRequireImdsv2Aspect",version:"2.51.0"};class LaunchTemplateRequireImdsv2Aspect extends RequireImdsv2Aspect{constructor(props){super(props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_LaunchTemplateRequireImdsv2AspectProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,LaunchTemplateRequireImdsv2Aspect),error}}visit(node){if(!(node instanceof launch_template_1.LaunchTemplate))return;const launchTemplate=node.node.tryFindChild("Resource"),data=launchTemplate.launchTemplateData;if(cdk.isResolvableObject(data)){this.warn(node,"LaunchTemplateData is a CDK token.");return}const metadataOptions=data.metadataOptions;if(cdk.isResolvableObject(metadataOptions)){this.warn(node,"LaunchTemplateData.MetadataOptions is a CDK token.");return}const newData={...data,metadataOptions:{...metadataOptions,httpTokens:"required"}};launchTemplate.launchTemplateData=newData}}exports.LaunchTemplateRequireImdsv2Aspect=LaunchTemplateRequireImdsv2Aspect,_b=JSII_RTTI_SYMBOL_1,LaunchTemplateRequireImdsv2Aspect[_b]={fqn:"aws-cdk-lib.aws_ec2.LaunchTemplateRequireImdsv2Aspect",version:"2.51.0"};
1
+ "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.LaunchTemplateRequireImdsv2Aspect=exports.InstanceRequireImdsv2Aspect=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../../core"),cxapi=require("../../../cx-api"),ec2_generated_1=require("../ec2.generated"),instance_1=require("../instance"),launch_template_1=require("../launch-template");class RequireImdsv2Aspect{constructor(props){this.suppressWarnings=props?.suppressWarnings??!1}warn(node,message){this.suppressWarnings!==!0&&cdk.Annotations.of(node).addWarning(`${RequireImdsv2Aspect.name} failed on node ${node.node.id}: ${message}`)}}class InstanceRequireImdsv2Aspect extends RequireImdsv2Aspect{constructor(props){super(props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_InstanceRequireImdsv2AspectProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,InstanceRequireImdsv2Aspect),error}this.suppressLaunchTemplateWarning=props?.suppressLaunchTemplateWarning??!1}visit(node){if(!(node instanceof instance_1.Instance))return;if(node.instance.launchTemplate!==void 0){this.warn(node,"Cannot toggle IMDSv1 because this Instance is associated with an existing Launch Template.");return}const launchTemplate=new ec2_generated_1.CfnLaunchTemplate(node,"LaunchTemplate",{launchTemplateData:{metadataOptions:{httpTokens:"required"}}});cdk.FeatureFlags.of(node).isEnabled(cxapi.EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME)?launchTemplate.launchTemplateName=cdk.Names.uniqueId(launchTemplate):launchTemplate.launchTemplateName=`${node.node.id}LaunchTemplate`,node.instance.launchTemplate={launchTemplateName:launchTemplate.launchTemplateName,version:launchTemplate.getAtt("LatestVersionNumber").toString()}}warn(node,message){this.suppressLaunchTemplateWarning!==!0&&super.warn(node,message)}}exports.InstanceRequireImdsv2Aspect=InstanceRequireImdsv2Aspect,_a=JSII_RTTI_SYMBOL_1,InstanceRequireImdsv2Aspect[_a]={fqn:"aws-cdk-lib.aws_ec2.InstanceRequireImdsv2Aspect",version:"2.51.1"};class LaunchTemplateRequireImdsv2Aspect extends RequireImdsv2Aspect{constructor(props){super(props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_LaunchTemplateRequireImdsv2AspectProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,LaunchTemplateRequireImdsv2Aspect),error}}visit(node){if(!(node instanceof launch_template_1.LaunchTemplate))return;const launchTemplate=node.node.tryFindChild("Resource"),data=launchTemplate.launchTemplateData;if(cdk.isResolvableObject(data)){this.warn(node,"LaunchTemplateData is a CDK token.");return}const metadataOptions=data.metadataOptions;if(cdk.isResolvableObject(metadataOptions)){this.warn(node,"LaunchTemplateData.MetadataOptions is a CDK token.");return}const newData={...data,metadataOptions:{...metadataOptions,httpTokens:"required"}};launchTemplate.launchTemplateData=newData}}exports.LaunchTemplateRequireImdsv2Aspect=LaunchTemplateRequireImdsv2Aspect,_b=JSII_RTTI_SYMBOL_1,LaunchTemplateRequireImdsv2Aspect[_b]={fqn:"aws-cdk-lib.aws_ec2.LaunchTemplateRequireImdsv2Aspect",version:"2.51.1"};
2
2
  //# sourceMappingURL=require-imdsv2-aspect.js.map