aws-cdk-lib 2.153.0__py3-none-any.whl → 2.154.1__py3-none-any.whl

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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (266) hide show
  1. aws_cdk/__init__.py +157 -215
  2. aws_cdk/_jsii/__init__.py +2 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.153.0.jsii.tgz → aws-cdk-lib@2.154.1.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +3 -3
  5. aws_cdk/aws_accessanalyzer/__init__.py +5 -5
  6. aws_cdk/aws_acmpca/__init__.py +79 -24
  7. aws_cdk/aws_amazonmq/__init__.py +161 -161
  8. aws_cdk/aws_amplify/__init__.py +36 -36
  9. aws_cdk/aws_amplifyuibuilder/__init__.py +32 -32
  10. aws_cdk/aws_apigateway/__init__.py +122 -122
  11. aws_cdk/aws_apigatewayv2/__init__.py +143 -130
  12. aws_cdk/aws_apigatewayv2_integrations/__init__.py +12 -12
  13. aws_cdk/aws_appconfig/__init__.py +59 -59
  14. aws_cdk/aws_appflow/__init__.py +20 -20
  15. aws_cdk/aws_appintegrations/__init__.py +19 -19
  16. aws_cdk/aws_applicationautoscaling/__init__.py +31 -16
  17. aws_cdk/aws_applicationinsights/__init__.py +11 -11
  18. aws_cdk/aws_applicationsignals/__init__.py +5 -5
  19. aws_cdk/aws_appmesh/__init__.py +35 -35
  20. aws_cdk/aws_apprunner/__init__.py +25 -25
  21. aws_cdk/aws_appstream/__init__.py +105 -105
  22. aws_cdk/aws_appsync/__init__.py +89 -89
  23. aws_cdk/aws_apptest/__init__.py +25 -25
  24. aws_cdk/aws_aps/__init__.py +14 -14
  25. aws_cdk/aws_arczonalshift/__init__.py +200 -3
  26. aws_cdk/aws_athena/__init__.py +25 -25
  27. aws_cdk/aws_auditmanager/__init__.py +15 -15
  28. aws_cdk/aws_autoscaling/__init__.py +84 -84
  29. aws_cdk/aws_autoscalingplans/__init__.py +2 -2
  30. aws_cdk/aws_b2bi/__init__.py +24 -24
  31. aws_cdk/aws_backup/__init__.py +33 -33
  32. aws_cdk/aws_backupgateway/__init__.py +7 -7
  33. aws_cdk/aws_batch/__init__.py +289 -35
  34. aws_cdk/aws_bcmdataexports/__init__.py +2 -2
  35. aws_cdk/aws_bedrock/__init__.py +15766 -3438
  36. aws_cdk/aws_billingconductor/__init__.py +28 -28
  37. aws_cdk/aws_budgets/__init__.py +12 -12
  38. aws_cdk/aws_cassandra/__init__.py +16 -16
  39. aws_cdk/aws_ce/__init__.py +17 -17
  40. aws_cdk/aws_certificatemanager/__init__.py +9 -9
  41. aws_cdk/aws_chatbot/__init__.py +22 -22
  42. aws_cdk/aws_cleanrooms/__init__.py +2470 -307
  43. aws_cdk/aws_cleanroomsml/__init__.py +5 -5
  44. aws_cdk/aws_cloud9/__init__.py +10 -10
  45. aws_cdk/aws_cloudformation/__init__.py +94 -69
  46. aws_cdk/aws_cloudfront/__init__.py +47 -33
  47. aws_cdk/aws_cloudtrail/__init__.py +46 -44
  48. aws_cdk/aws_cloudwatch/__init__.py +61 -69
  49. aws_cdk/aws_codeartifact/__init__.py +19 -19
  50. aws_cdk/aws_codebuild/__init__.py +99 -68
  51. aws_cdk/aws_codecommit/__init__.py +10 -6
  52. aws_cdk/aws_codeconnections/__init__.py +5 -5
  53. aws_cdk/aws_codedeploy/__init__.py +28 -28
  54. aws_cdk/aws_codeguruprofiler/__init__.py +5 -5
  55. aws_cdk/aws_codegurureviewer/__init__.py +6 -6
  56. aws_cdk/aws_codepipeline/__init__.py +849 -52
  57. aws_cdk/aws_codepipeline_actions/__init__.py +1 -1
  58. aws_cdk/aws_codestar/__init__.py +8 -8
  59. aws_cdk/aws_codestarconnections/__init__.py +17 -17
  60. aws_cdk/aws_codestarnotifications/__init__.py +10 -10
  61. aws_cdk/aws_cognito/__init__.py +465 -133
  62. aws_cdk/aws_comprehend/__init__.py +20 -20
  63. aws_cdk/aws_config/__init__.py +67 -67
  64. aws_cdk/aws_connect/__init__.py +139 -137
  65. aws_cdk/aws_connectcampaigns/__init__.py +5 -5
  66. aws_cdk/aws_controltower/__init__.py +12 -12
  67. aws_cdk/aws_cur/__init__.py +12 -12
  68. aws_cdk/aws_customerprofiles/__init__.py +36 -36
  69. aws_cdk/aws_databrew/__init__.py +45 -45
  70. aws_cdk/aws_datapipeline/__init__.py +12 -8
  71. aws_cdk/aws_datasync/__init__.py +119 -117
  72. aws_cdk/aws_datazone/__init__.py +63 -63
  73. aws_cdk/aws_dax/__init__.py +20 -20
  74. aws_cdk/aws_deadline/__init__.py +221 -292
  75. aws_cdk/aws_detective/__init__.py +8 -8
  76. aws_cdk/aws_devicefarm/__init__.py +37 -37
  77. aws_cdk/aws_devopsguru/__init__.py +2 -2
  78. aws_cdk/aws_directoryservice/__init__.py +15 -15
  79. aws_cdk/aws_dlm/__init__.py +12 -12
  80. aws_cdk/aws_dms/__init__.py +300 -298
  81. aws_cdk/aws_docdb/__init__.py +49 -49
  82. aws_cdk/aws_docdbelastic/__init__.py +14 -14
  83. aws_cdk/aws_dynamodb/__init__.py +371 -37
  84. aws_cdk/aws_ec2/__init__.py +914 -612
  85. aws_cdk/aws_ecr/__init__.py +117 -77
  86. aws_cdk/aws_ecr_assets/__init__.py +4 -4
  87. aws_cdk/aws_ecs/__init__.py +192 -191
  88. aws_cdk/aws_ecs_patterns/__init__.py +2 -2
  89. aws_cdk/aws_efs/__init__.py +22 -22
  90. aws_cdk/aws_eks/__init__.py +177 -61
  91. aws_cdk/aws_elasticache/__init__.py +218 -226
  92. aws_cdk/aws_elasticbeanstalk/__init__.py +25 -25
  93. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -16
  94. aws_cdk/aws_elasticloadbalancingv2/__init__.py +1066 -102
  95. aws_cdk/aws_elasticloadbalancingv2_targets/__init__.py +86 -4
  96. aws_cdk/aws_elasticsearch/__init__.py +16 -16
  97. aws_cdk/aws_emr/__init__.py +74 -74
  98. aws_cdk/aws_emrcontainers/__init__.py +3 -3
  99. aws_cdk/aws_emrserverless/__init__.py +157 -14
  100. aws_cdk/aws_entityresolution/__init__.py +613 -35
  101. aws_cdk/aws_events/__init__.py +42 -42
  102. aws_cdk/aws_eventschemas/__init__.py +16 -16
  103. aws_cdk/aws_evidently/__init__.py +38 -38
  104. aws_cdk/aws_finspace/__init__.py +8 -8
  105. aws_cdk/aws_fis/__init__.py +12 -12
  106. aws_cdk/aws_fms/__init__.py +21 -21
  107. aws_cdk/aws_forecast/__init__.py +18 -11
  108. aws_cdk/aws_frauddetector/__init__.py +35 -35
  109. aws_cdk/aws_fsx/__init__.py +35 -35
  110. aws_cdk/aws_gamelift/__init__.py +155 -143
  111. aws_cdk/aws_globalaccelerator/__init__.py +46 -24
  112. aws_cdk/aws_glue/__init__.py +187 -143
  113. aws_cdk/aws_grafana/__init__.py +17 -17
  114. aws_cdk/aws_greengrass/__init__.py +48 -48
  115. aws_cdk/aws_greengrassv2/__init__.py +10 -10
  116. aws_cdk/aws_groundstation/__init__.py +16 -16
  117. aws_cdk/aws_guardduty/__init__.py +40 -38
  118. aws_cdk/aws_healthimaging/__init__.py +3 -3
  119. aws_cdk/aws_healthlake/__init__.py +6 -6
  120. aws_cdk/aws_iam/__init__.py +120 -122
  121. aws_cdk/aws_identitystore/__init__.py +6 -6
  122. aws_cdk/aws_imagebuilder/__init__.py +98 -98
  123. aws_cdk/aws_inspector/__init__.py +8 -8
  124. aws_cdk/aws_inspectorv2/__init__.py +102 -97
  125. aws_cdk/aws_internetmonitor/__init__.py +12 -12
  126. aws_cdk/aws_iot/__init__.py +141 -141
  127. aws_cdk/aws_iot1click/__init__.py +9 -9
  128. aws_cdk/aws_iotanalytics/__init__.py +21 -21
  129. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +2 -2
  130. aws_cdk/aws_iotevents/__init__.py +20 -20
  131. aws_cdk/aws_iotfleethub/__init__.py +4 -4
  132. aws_cdk/aws_iotfleetwise/__init__.py +45 -45
  133. aws_cdk/aws_iotsitewise/__init__.py +40 -40
  134. aws_cdk/aws_iotthingsgraph/__init__.py +2 -2
  135. aws_cdk/aws_iottwinmaker/__init__.py +34 -34
  136. aws_cdk/aws_iotwireless/__init__.py +66 -66
  137. aws_cdk/aws_ivs/__init__.py +490 -34
  138. aws_cdk/aws_ivschat/__init__.py +9 -9
  139. aws_cdk/aws_kafkaconnect/__init__.py +22 -22
  140. aws_cdk/aws_kendra/__init__.py +28 -28
  141. aws_cdk/aws_kendraranking/__init__.py +4 -4
  142. aws_cdk/aws_kinesis/__init__.py +8 -8
  143. aws_cdk/aws_kinesisanalytics/__init__.py +23 -23
  144. aws_cdk/aws_kinesisanalyticsv2/__init__.py +15 -15
  145. aws_cdk/aws_kinesisfirehose/__init__.py +677 -18
  146. aws_cdk/aws_kinesisvideo/__init__.py +10 -10
  147. aws_cdk/aws_kms/__init__.py +20 -20
  148. aws_cdk/aws_lakeformation/__init__.py +36 -36
  149. aws_cdk/aws_lambda/__init__.py +174 -118
  150. aws_cdk/aws_launchwizard/__init__.py +508 -0
  151. aws_cdk/aws_lex/__init__.py +24 -24
  152. aws_cdk/aws_licensemanager/__init__.py +17 -17
  153. aws_cdk/aws_lightsail/__init__.py +90 -90
  154. aws_cdk/aws_location/__init__.py +41 -41
  155. aws_cdk/aws_logs/__init__.py +50 -50
  156. aws_cdk/aws_lookoutequipment/__init__.py +9 -9
  157. aws_cdk/aws_lookoutmetrics/__init__.py +10 -10
  158. aws_cdk/aws_lookoutvision/__init__.py +1 -1
  159. aws_cdk/aws_m2/__init__.py +20 -20
  160. aws_cdk/aws_macie/__init__.py +19 -19
  161. aws_cdk/aws_managedblockchain/__init__.py +10 -10
  162. aws_cdk/aws_mediaconnect/__init__.py +114 -77
  163. aws_cdk/aws_mediaconvert/__init__.py +20 -20
  164. aws_cdk/aws_medialive/__init__.py +49 -40
  165. aws_cdk/aws_mediapackage/__init__.py +38 -38
  166. aws_cdk/aws_mediapackagev2/__init__.py +178 -25
  167. aws_cdk/aws_mediastore/__init__.py +7 -7
  168. aws_cdk/aws_mediatailor/__init__.py +40 -40
  169. aws_cdk/aws_memorydb/__init__.py +41 -41
  170. aws_cdk/aws_msk/__init__.py +127 -39
  171. aws_cdk/aws_mwaa/__init__.py +25 -25
  172. aws_cdk/aws_neptune/__init__.py +55 -55
  173. aws_cdk/aws_neptunegraph/__init__.py +11 -11
  174. aws_cdk/aws_networkfirewall/__init__.py +36 -30
  175. aws_cdk/aws_networkmanager/__init__.py +1062 -91
  176. aws_cdk/aws_nimblestudio/__init__.py +31 -31
  177. aws_cdk/aws_oam/__init__.py +8 -8
  178. aws_cdk/aws_omics/__init__.py +36 -36
  179. aws_cdk/aws_opensearchserverless/__init__.py +25 -25
  180. aws_cdk/aws_opensearchservice/__init__.py +20 -20
  181. aws_cdk/aws_opsworks/__init__.py +87 -87
  182. aws_cdk/aws_opsworkscm/__init__.py +21 -21
  183. aws_cdk/aws_organizations/__init__.py +17 -17
  184. aws_cdk/aws_osis/__init__.py +122 -9
  185. aws_cdk/aws_panorama/__init__.py +27 -22
  186. aws_cdk/aws_paymentcryptography/__init__.py +7 -7
  187. aws_cdk/aws_pcaconnectorad/__init__.py +17 -17
  188. aws_cdk/aws_personalize/__init__.py +19 -19
  189. aws_cdk/aws_pinpoint/__init__.py +122 -122
  190. aws_cdk/aws_pinpointemail/__init__.py +16 -16
  191. aws_cdk/aws_pipes/__init__.py +14 -16
  192. aws_cdk/aws_proton/__init__.py +19 -19
  193. aws_cdk/aws_qbusiness/__init__.py +160 -45
  194. aws_cdk/aws_qldb/__init__.py +12 -12
  195. aws_cdk/aws_quicksight/__init__.py +91 -91
  196. aws_cdk/aws_ram/__init__.py +11 -11
  197. aws_cdk/aws_rds/__init__.py +365 -259
  198. aws_cdk/aws_redshift/__init__.py +136 -91
  199. aws_cdk/aws_redshiftserverless/__init__.py +27 -27
  200. aws_cdk/aws_refactorspaces/__init__.py +26 -26
  201. aws_cdk/aws_rekognition/__init__.py +16 -16
  202. aws_cdk/aws_resiliencehub/__init__.py +15 -15
  203. aws_cdk/aws_resourceexplorer2/__init__.py +8 -8
  204. aws_cdk/aws_resourcegroups/__init__.py +6 -6
  205. aws_cdk/aws_robomaker/__init__.py +25 -25
  206. aws_cdk/aws_rolesanywhere/__init__.py +67 -19
  207. aws_cdk/aws_route53/__init__.py +36 -36
  208. aws_cdk/aws_route53profiles/__init__.py +11 -11
  209. aws_cdk/aws_route53recoverycontrol/__init__.py +14 -14
  210. aws_cdk/aws_route53recoveryreadiness/__init__.py +13 -13
  211. aws_cdk/aws_route53resolver/__init__.py +123 -82
  212. aws_cdk/aws_rum/__init__.py +6 -6
  213. aws_cdk/aws_s3/__init__.py +136 -80
  214. aws_cdk/aws_s3_deployment/__init__.py +30 -24
  215. aws_cdk/aws_s3_notifications/__init__.py +3 -4
  216. aws_cdk/aws_s3express/__init__.py +5 -5
  217. aws_cdk/aws_s3objectlambda/__init__.py +6 -6
  218. aws_cdk/aws_s3outposts/__init__.py +16 -16
  219. aws_cdk/aws_sagemaker/__init__.py +2414 -282
  220. aws_cdk/aws_sam/__init__.py +101 -101
  221. aws_cdk/aws_scheduler/__init__.py +13 -13
  222. aws_cdk/aws_sdb/__init__.py +1 -1
  223. aws_cdk/aws_secretsmanager/__init__.py +20 -19
  224. aws_cdk/aws_securityhub/__init__.py +70 -57
  225. aws_cdk/aws_securitylake/__init__.py +341 -16
  226. aws_cdk/aws_servicecatalog/__init__.py +87 -87
  227. aws_cdk/aws_servicecatalogappregistry/__init__.py +12 -12
  228. aws_cdk/aws_servicediscovery/__init__.py +23 -23
  229. aws_cdk/aws_ses/__init__.py +12038 -5604
  230. aws_cdk/aws_shield/__init__.py +15 -15
  231. aws_cdk/aws_signer/__init__.py +9 -9
  232. aws_cdk/aws_simspaceweaver/__init__.py +5 -5
  233. aws_cdk/aws_sns/__init__.py +28 -28
  234. aws_cdk/aws_sqs/__init__.py +20 -20
  235. aws_cdk/aws_ssm/__init__.py +176 -105
  236. aws_cdk/aws_ssmcontacts/__init__.py +18 -18
  237. aws_cdk/aws_ssmincidents/__init__.py +11 -11
  238. aws_cdk/aws_sso/__init__.py +31 -31
  239. aws_cdk/aws_stepfunctions/__init__.py +370 -28
  240. aws_cdk/aws_supportapp/__init__.py +11 -11
  241. aws_cdk/aws_synthetics/__init__.py +18 -18
  242. aws_cdk/aws_systemsmanagersap/__init__.py +48 -7
  243. aws_cdk/aws_timestream/__init__.py +34 -34
  244. aws_cdk/aws_transfer/__init__.py +57 -57
  245. aws_cdk/aws_verifiedpermissions/__init__.py +11 -11
  246. aws_cdk/aws_voiceid/__init__.py +4 -4
  247. aws_cdk/aws_vpclattice/__init__.py +42 -42
  248. aws_cdk/aws_waf/__init__.py +17 -17
  249. aws_cdk/aws_wafregional/__init__.py +28 -28
  250. aws_cdk/aws_wafv2/__init__.py +39 -39
  251. aws_cdk/aws_wisdom/__init__.py +16 -16
  252. aws_cdk/aws_workspaces/__init__.py +18 -18
  253. aws_cdk/aws_workspacesthinclient/__init__.py +63 -9
  254. aws_cdk/aws_workspacesweb/__init__.py +87 -46
  255. aws_cdk/aws_xray/__init__.py +12 -12
  256. aws_cdk/cloud_assembly_schema/__init__.py +348 -239
  257. aws_cdk/custom_resources/__init__.py +289 -0
  258. aws_cdk/cx_api/__init__.py +15 -15
  259. aws_cdk/pipelines/__init__.py +172 -237
  260. {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.1.dist-info}/METADATA +3 -2
  261. aws_cdk_lib-2.154.1.dist-info/RECORD +292 -0
  262. aws_cdk_lib-2.153.0.dist-info/RECORD +0 -291
  263. {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.1.dist-info}/LICENSE +0 -0
  264. {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.1.dist-info}/NOTICE +0 -0
  265. {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.1.dist-info}/WHEEL +0 -0
  266. {aws_cdk_lib-2.153.0.dist-info → aws_cdk_lib-2.154.1.dist-info}/top_level.txt +0 -0
@@ -140,6 +140,7 @@ Note: You can create an instance of the `TableV2` construct with as many `replic
140
140
  The `TableV2` construct can be configured with on-demand or provisioned billing:
141
141
 
142
142
  * On-demand - The default option. This is a flexible billing option capable of serving requests without capacity planning. The billing mode will be `PAY_PER_REQUEST`.
143
+ * You can optionally specify the `maxReadRequestUnits` or `maxWriteRequestUnits` on individual tables and associated global secondary indexes (GSIs). When you configure maximum throughput for an on-demand table, throughput requests that exceed the maximum amount specified will be throttled.
143
144
  * Provisioned - Specify the `readCapacity` and `writeCapacity` that you need for your application. The billing mode will be `PROVISIONED`. Capacity can be configured using one of the following modes:
144
145
 
145
146
  * Fixed - provisioned throughput capacity is configured with a fixed number of I/O operations per second.
@@ -156,6 +157,18 @@ table = dynamodb.TableV2(self, "Table",
156
157
  )
157
158
  ```
158
159
 
160
+ The following example shows how to configure `TableV2` with on-demand billing with optional maximum throughput configured:
161
+
162
+ ```python
163
+ table = dynamodb.TableV2(self, "Table",
164
+ partition_key=dynamodb.Attribute(name="pk", type=dynamodb.AttributeType.STRING),
165
+ billing=dynamodb.Billing.on_demand(
166
+ max_read_request_units=100,
167
+ max_write_request_units=115
168
+ )
169
+ )
170
+ ```
171
+
159
172
  When using provisioned billing, you must also specify `readCapacity` and `writeCapacity`. You can choose to configure `readCapacity` with fixed capacity or autoscaled capacity, but `writeCapacity` can only be configured with autoscaled capacity. The following example shows how to configure `TableV2` with provisioned billing:
160
173
 
161
174
  ```python
@@ -1195,12 +1208,25 @@ class Billing(
1195
1208
 
1196
1209
  @jsii.member(jsii_name="onDemand")
1197
1210
  @builtins.classmethod
1198
- def on_demand(cls) -> "Billing":
1211
+ def on_demand(
1212
+ cls,
1213
+ *,
1214
+ max_read_request_units: typing.Optional[jsii.Number] = None,
1215
+ max_write_request_units: typing.Optional[jsii.Number] = None,
1216
+ ) -> "Billing":
1199
1217
  '''Flexible billing option capable of serving requests without capacity planning.
1200
1218
 
1201
1219
  Note: Billing mode will be PAY_PER_REQUEST.
1220
+
1221
+ :param max_read_request_units: The max read request units. Default: - if table mode is on-demand and this property is undefined, no maximum throughput limit will be put in place for read requests. This property is only applicable for tables using on-demand mode.
1222
+ :param max_write_request_units: The max write request units. Default: - if table mode is on-demand and this property is undefined, no maximum throughput limit will be put in place for write requests. This property is only applicable for tables using on-demand mode.
1202
1223
  '''
1203
- return typing.cast("Billing", jsii.sinvoke(cls, "onDemand", []))
1224
+ props = MaxThroughputProps(
1225
+ max_read_request_units=max_read_request_units,
1226
+ max_write_request_units=max_write_request_units,
1227
+ )
1228
+
1229
+ return typing.cast("Billing", jsii.sinvoke(cls, "onDemand", [props]))
1204
1230
 
1205
1231
  @jsii.member(jsii_name="provisioned")
1206
1232
  @builtins.classmethod
@@ -1734,7 +1760,7 @@ class CfnGlobalTable(
1734
1760
  if __debug__:
1735
1761
  type_hints = typing.get_type_hints(_typecheckingstub__f732bb8272361b5800f36f0c389121597f9a72868d0f90932b3744684600e75e)
1736
1762
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1737
- jsii.set(self, "attributeDefinitions", value)
1763
+ jsii.set(self, "attributeDefinitions", value) # pyright: ignore[reportArgumentType]
1738
1764
 
1739
1765
  @builtins.property
1740
1766
  @jsii.member(jsii_name="keySchema")
@@ -1752,7 +1778,7 @@ class CfnGlobalTable(
1752
1778
  if __debug__:
1753
1779
  type_hints = typing.get_type_hints(_typecheckingstub__6ef890475efd870bf55df50bbfa6efc88da22eca84273a283f67749593f5b884)
1754
1780
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1755
- jsii.set(self, "keySchema", value)
1781
+ jsii.set(self, "keySchema", value) # pyright: ignore[reportArgumentType]
1756
1782
 
1757
1783
  @builtins.property
1758
1784
  @jsii.member(jsii_name="replicas")
@@ -1770,7 +1796,7 @@ class CfnGlobalTable(
1770
1796
  if __debug__:
1771
1797
  type_hints = typing.get_type_hints(_typecheckingstub__a097f89adcd67d171d1cf0c2f82a8189f354dac15e39c6b6cc82e65b8e315806)
1772
1798
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1773
- jsii.set(self, "replicas", value)
1799
+ jsii.set(self, "replicas", value) # pyright: ignore[reportArgumentType]
1774
1800
 
1775
1801
  @builtins.property
1776
1802
  @jsii.member(jsii_name="billingMode")
@@ -1786,7 +1812,7 @@ class CfnGlobalTable(
1786
1812
  if __debug__:
1787
1813
  type_hints = typing.get_type_hints(_typecheckingstub__b7a91e461bd5e49ff4dc2350ae1ceae8597a286d7e21db96c7ec976ba3537e3c)
1788
1814
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1789
- jsii.set(self, "billingMode", value)
1815
+ jsii.set(self, "billingMode", value) # pyright: ignore[reportArgumentType]
1790
1816
 
1791
1817
  @builtins.property
1792
1818
  @jsii.member(jsii_name="globalSecondaryIndexes")
@@ -1804,7 +1830,7 @@ class CfnGlobalTable(
1804
1830
  if __debug__:
1805
1831
  type_hints = typing.get_type_hints(_typecheckingstub__484436e7e1867a9d477f3fa0bdee0dfdfb2646ba7497c71d398076d9872d332b)
1806
1832
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1807
- jsii.set(self, "globalSecondaryIndexes", value)
1833
+ jsii.set(self, "globalSecondaryIndexes", value) # pyright: ignore[reportArgumentType]
1808
1834
 
1809
1835
  @builtins.property
1810
1836
  @jsii.member(jsii_name="localSecondaryIndexes")
@@ -1822,7 +1848,7 @@ class CfnGlobalTable(
1822
1848
  if __debug__:
1823
1849
  type_hints = typing.get_type_hints(_typecheckingstub__a0b3191b7117186bc41f62e22fff4e4f50d0835a5f174dde9b2b8188ceee5162)
1824
1850
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1825
- jsii.set(self, "localSecondaryIndexes", value)
1851
+ jsii.set(self, "localSecondaryIndexes", value) # pyright: ignore[reportArgumentType]
1826
1852
 
1827
1853
  @builtins.property
1828
1854
  @jsii.member(jsii_name="sseSpecification")
@@ -1840,7 +1866,7 @@ class CfnGlobalTable(
1840
1866
  if __debug__:
1841
1867
  type_hints = typing.get_type_hints(_typecheckingstub__ccb739aac1de1ded207a80b782298c972ccf113dd96de224fea60f9ce1b43833)
1842
1868
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1843
- jsii.set(self, "sseSpecification", value)
1869
+ jsii.set(self, "sseSpecification", value) # pyright: ignore[reportArgumentType]
1844
1870
 
1845
1871
  @builtins.property
1846
1872
  @jsii.member(jsii_name="streamSpecification")
@@ -1858,7 +1884,7 @@ class CfnGlobalTable(
1858
1884
  if __debug__:
1859
1885
  type_hints = typing.get_type_hints(_typecheckingstub__0b312fc3bf6b9413081bae5b2557691650d4bf70fd047bf867dd8ce608971cd7)
1860
1886
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1861
- jsii.set(self, "streamSpecification", value)
1887
+ jsii.set(self, "streamSpecification", value) # pyright: ignore[reportArgumentType]
1862
1888
 
1863
1889
  @builtins.property
1864
1890
  @jsii.member(jsii_name="tableName")
@@ -1871,7 +1897,7 @@ class CfnGlobalTable(
1871
1897
  if __debug__:
1872
1898
  type_hints = typing.get_type_hints(_typecheckingstub__db38617fc8b7b8f4ed3d8858186d464cb90a597e2acb75a0d09d8fecadfb89b6)
1873
1899
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1874
- jsii.set(self, "tableName", value)
1900
+ jsii.set(self, "tableName", value) # pyright: ignore[reportArgumentType]
1875
1901
 
1876
1902
  @builtins.property
1877
1903
  @jsii.member(jsii_name="timeToLiveSpecification")
@@ -1889,7 +1915,7 @@ class CfnGlobalTable(
1889
1915
  if __debug__:
1890
1916
  type_hints = typing.get_type_hints(_typecheckingstub__0b2a71693eba1f1adfbaa4a2d1968a10f7e914f3714a169453fb5831d2b159f7)
1891
1917
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1892
- jsii.set(self, "timeToLiveSpecification", value)
1918
+ jsii.set(self, "timeToLiveSpecification", value) # pyright: ignore[reportArgumentType]
1893
1919
 
1894
1920
  @builtins.property
1895
1921
  @jsii.member(jsii_name="writeOnDemandThroughputSettings")
@@ -1907,7 +1933,7 @@ class CfnGlobalTable(
1907
1933
  if __debug__:
1908
1934
  type_hints = typing.get_type_hints(_typecheckingstub__e9e1941bc70970aa12bf29b98d00fed94dd701aea1acb0d4280e0f96ab3ca8bc)
1909
1935
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1910
- jsii.set(self, "writeOnDemandThroughputSettings", value)
1936
+ jsii.set(self, "writeOnDemandThroughputSettings", value) # pyright: ignore[reportArgumentType]
1911
1937
 
1912
1938
  @builtins.property
1913
1939
  @jsii.member(jsii_name="writeProvisionedThroughputSettings")
@@ -1925,7 +1951,7 @@ class CfnGlobalTable(
1925
1951
  if __debug__:
1926
1952
  type_hints = typing.get_type_hints(_typecheckingstub__575a6fcd8e2e451f04b5c40c3e6da53aad798e3089f98afaa25d709c7d291a10)
1927
1953
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1928
- jsii.set(self, "writeProvisionedThroughputSettings", value)
1954
+ jsii.set(self, "writeProvisionedThroughputSettings", value) # pyright: ignore[reportArgumentType]
1929
1955
 
1930
1956
  @jsii.data_type(
1931
1957
  jsii_type="aws-cdk-lib.aws_dynamodb.CfnGlobalTable.AttributeDefinitionProperty",
@@ -4835,7 +4861,7 @@ class CfnTable(
4835
4861
  if __debug__:
4836
4862
  type_hints = typing.get_type_hints(_typecheckingstub__b23ffa0600490aa85e7d7d78bfa21eab76ec61e446848fa311842ae651fa9836)
4837
4863
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4838
- jsii.set(self, "keySchema", value)
4864
+ jsii.set(self, "keySchema", value) # pyright: ignore[reportArgumentType]
4839
4865
 
4840
4866
  @builtins.property
4841
4867
  @jsii.member(jsii_name="attributeDefinitions")
@@ -4853,7 +4879,7 @@ class CfnTable(
4853
4879
  if __debug__:
4854
4880
  type_hints = typing.get_type_hints(_typecheckingstub__5daf5ddc396c2de639d9ab720b24bd4802cb6b1935c3acaabde5b29c25732fd7)
4855
4881
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4856
- jsii.set(self, "attributeDefinitions", value)
4882
+ jsii.set(self, "attributeDefinitions", value) # pyright: ignore[reportArgumentType]
4857
4883
 
4858
4884
  @builtins.property
4859
4885
  @jsii.member(jsii_name="billingMode")
@@ -4866,7 +4892,7 @@ class CfnTable(
4866
4892
  if __debug__:
4867
4893
  type_hints = typing.get_type_hints(_typecheckingstub__859e18c7e0169484ae1438c12328e5f08e77b8ce32d6fc9d190d1d453358f8b8)
4868
4894
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4869
- jsii.set(self, "billingMode", value)
4895
+ jsii.set(self, "billingMode", value) # pyright: ignore[reportArgumentType]
4870
4896
 
4871
4897
  @builtins.property
4872
4898
  @jsii.member(jsii_name="contributorInsightsSpecification")
@@ -4884,7 +4910,7 @@ class CfnTable(
4884
4910
  if __debug__:
4885
4911
  type_hints = typing.get_type_hints(_typecheckingstub__4418562f8958ca4e57cc994ee87a0b27423f94d0f99284b5f04311b9e61b238f)
4886
4912
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4887
- jsii.set(self, "contributorInsightsSpecification", value)
4913
+ jsii.set(self, "contributorInsightsSpecification", value) # pyright: ignore[reportArgumentType]
4888
4914
 
4889
4915
  @builtins.property
4890
4916
  @jsii.member(jsii_name="deletionProtectionEnabled")
@@ -4902,7 +4928,7 @@ class CfnTable(
4902
4928
  if __debug__:
4903
4929
  type_hints = typing.get_type_hints(_typecheckingstub__d91900a3abfeb455a4849c52c7f1d034e09b1b0ceb4a50b598d8c938f15c012b)
4904
4930
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4905
- jsii.set(self, "deletionProtectionEnabled", value)
4931
+ jsii.set(self, "deletionProtectionEnabled", value) # pyright: ignore[reportArgumentType]
4906
4932
 
4907
4933
  @builtins.property
4908
4934
  @jsii.member(jsii_name="globalSecondaryIndexes")
@@ -4923,7 +4949,7 @@ class CfnTable(
4923
4949
  if __debug__:
4924
4950
  type_hints = typing.get_type_hints(_typecheckingstub__97df696d6ba063acb98f58f09adb6516d0fc1d41d4d4a37c39f7ffac09e0d5cd)
4925
4951
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4926
- jsii.set(self, "globalSecondaryIndexes", value)
4952
+ jsii.set(self, "globalSecondaryIndexes", value) # pyright: ignore[reportArgumentType]
4927
4953
 
4928
4954
  @builtins.property
4929
4955
  @jsii.member(jsii_name="importSourceSpecification")
@@ -4941,7 +4967,7 @@ class CfnTable(
4941
4967
  if __debug__:
4942
4968
  type_hints = typing.get_type_hints(_typecheckingstub__61eb67e9e79c54ed8659ffe201d838bdf08b6b20da8fa03693734f4336da76c2)
4943
4969
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4944
- jsii.set(self, "importSourceSpecification", value)
4970
+ jsii.set(self, "importSourceSpecification", value) # pyright: ignore[reportArgumentType]
4945
4971
 
4946
4972
  @builtins.property
4947
4973
  @jsii.member(jsii_name="kinesisStreamSpecification")
@@ -4959,7 +4985,7 @@ class CfnTable(
4959
4985
  if __debug__:
4960
4986
  type_hints = typing.get_type_hints(_typecheckingstub__5d983fc83d1717d6aa76c247a0250e28278e9d16c940822fa16986ff229e9043)
4961
4987
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4962
- jsii.set(self, "kinesisStreamSpecification", value)
4988
+ jsii.set(self, "kinesisStreamSpecification", value) # pyright: ignore[reportArgumentType]
4963
4989
 
4964
4990
  @builtins.property
4965
4991
  @jsii.member(jsii_name="localSecondaryIndexes")
@@ -4977,7 +5003,7 @@ class CfnTable(
4977
5003
  if __debug__:
4978
5004
  type_hints = typing.get_type_hints(_typecheckingstub__45185c524451628b623abf4663f9427843c4d4a709a2cf82b14f8d2b3a9a7ffd)
4979
5005
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4980
- jsii.set(self, "localSecondaryIndexes", value)
5006
+ jsii.set(self, "localSecondaryIndexes", value) # pyright: ignore[reportArgumentType]
4981
5007
 
4982
5008
  @builtins.property
4983
5009
  @jsii.member(jsii_name="onDemandThroughput")
@@ -4995,7 +5021,7 @@ class CfnTable(
4995
5021
  if __debug__:
4996
5022
  type_hints = typing.get_type_hints(_typecheckingstub__510f5c7d4293f98a55434a588a20db69cf20ac7b409105b7335eb2699ba8c570)
4997
5023
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4998
- jsii.set(self, "onDemandThroughput", value)
5024
+ jsii.set(self, "onDemandThroughput", value) # pyright: ignore[reportArgumentType]
4999
5025
 
5000
5026
  @builtins.property
5001
5027
  @jsii.member(jsii_name="pointInTimeRecoverySpecification")
@@ -5013,7 +5039,7 @@ class CfnTable(
5013
5039
  if __debug__:
5014
5040
  type_hints = typing.get_type_hints(_typecheckingstub__06f7cca9d14af75b709b53e94a6fb51bba6dfa0cb31a23e0b70f506be9551e8d)
5015
5041
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5016
- jsii.set(self, "pointInTimeRecoverySpecification", value)
5042
+ jsii.set(self, "pointInTimeRecoverySpecification", value) # pyright: ignore[reportArgumentType]
5017
5043
 
5018
5044
  @builtins.property
5019
5045
  @jsii.member(jsii_name="provisionedThroughput")
@@ -5031,7 +5057,7 @@ class CfnTable(
5031
5057
  if __debug__:
5032
5058
  type_hints = typing.get_type_hints(_typecheckingstub__6fa8ca064a9e23781245ca2f3d32d36a2324726abba76565a2e12ac5e399a599)
5033
5059
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5034
- jsii.set(self, "provisionedThroughput", value)
5060
+ jsii.set(self, "provisionedThroughput", value) # pyright: ignore[reportArgumentType]
5035
5061
 
5036
5062
  @builtins.property
5037
5063
  @jsii.member(jsii_name="resourcePolicy")
@@ -5049,7 +5075,7 @@ class CfnTable(
5049
5075
  if __debug__:
5050
5076
  type_hints = typing.get_type_hints(_typecheckingstub__4166d9b0a925b24598927de15ecb1935d22d14f9a49469ba893db8d18421bf02)
5051
5077
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5052
- jsii.set(self, "resourcePolicy", value)
5078
+ jsii.set(self, "resourcePolicy", value) # pyright: ignore[reportArgumentType]
5053
5079
 
5054
5080
  @builtins.property
5055
5081
  @jsii.member(jsii_name="sseSpecification")
@@ -5067,7 +5093,7 @@ class CfnTable(
5067
5093
  if __debug__:
5068
5094
  type_hints = typing.get_type_hints(_typecheckingstub__bc5e50032964d91e0cf5ec36aba75b6ae325bfe6129ad9f55764353e645b28c6)
5069
5095
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5070
- jsii.set(self, "sseSpecification", value)
5096
+ jsii.set(self, "sseSpecification", value) # pyright: ignore[reportArgumentType]
5071
5097
 
5072
5098
  @builtins.property
5073
5099
  @jsii.member(jsii_name="streamSpecification")
@@ -5085,7 +5111,7 @@ class CfnTable(
5085
5111
  if __debug__:
5086
5112
  type_hints = typing.get_type_hints(_typecheckingstub__c4ba4ef955ba0e9ac6474c62ea545a637752c92fffc5fe0868d55987f8b593ba)
5087
5113
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5088
- jsii.set(self, "streamSpecification", value)
5114
+ jsii.set(self, "streamSpecification", value) # pyright: ignore[reportArgumentType]
5089
5115
 
5090
5116
  @builtins.property
5091
5117
  @jsii.member(jsii_name="tableClass")
@@ -5098,7 +5124,7 @@ class CfnTable(
5098
5124
  if __debug__:
5099
5125
  type_hints = typing.get_type_hints(_typecheckingstub__df6efdc84208b4dd6d9307c0da182d301e83373407c8e72b4e33094a16f0e9ee)
5100
5126
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5101
- jsii.set(self, "tableClass", value)
5127
+ jsii.set(self, "tableClass", value) # pyright: ignore[reportArgumentType]
5102
5128
 
5103
5129
  @builtins.property
5104
5130
  @jsii.member(jsii_name="tableName")
@@ -5111,7 +5137,7 @@ class CfnTable(
5111
5137
  if __debug__:
5112
5138
  type_hints = typing.get_type_hints(_typecheckingstub__b9a680d2bfdc5e6712f2c0338c7388d0ee2bbf8560c324a2398466ed5efe5e1b)
5113
5139
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5114
- jsii.set(self, "tableName", value)
5140
+ jsii.set(self, "tableName", value) # pyright: ignore[reportArgumentType]
5115
5141
 
5116
5142
  @builtins.property
5117
5143
  @jsii.member(jsii_name="tagsRaw")
@@ -5124,7 +5150,7 @@ class CfnTable(
5124
5150
  if __debug__:
5125
5151
  type_hints = typing.get_type_hints(_typecheckingstub__ae8c7d0ef496e4ff46af1a1db46d7b3840fc5e44d90dd5539a886f2d9ef19658)
5126
5152
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5127
- jsii.set(self, "tagsRaw", value)
5153
+ jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
5128
5154
 
5129
5155
  @builtins.property
5130
5156
  @jsii.member(jsii_name="timeToLiveSpecification")
@@ -5142,7 +5168,7 @@ class CfnTable(
5142
5168
  if __debug__:
5143
5169
  type_hints = typing.get_type_hints(_typecheckingstub__13f09e3b5bed84728f44ababaa84b1754ef531ec7fc1a8800692ac3ee9bba9a0)
5144
5170
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5145
- jsii.set(self, "timeToLiveSpecification", value)
5171
+ jsii.set(self, "timeToLiveSpecification", value) # pyright: ignore[reportArgumentType]
5146
5172
 
5147
5173
  @jsii.data_type(
5148
5174
  jsii_type="aws-cdk-lib.aws_dynamodb.CfnTable.AttributeDefinitionProperty",
@@ -8723,6 +8749,86 @@ class _InputFormatProxy(InputFormat):
8723
8749
  typing.cast(typing.Any, InputFormat).__jsii_proxy_class__ = lambda : _InputFormatProxy
8724
8750
 
8725
8751
 
8752
+ @jsii.data_type(
8753
+ jsii_type="aws-cdk-lib.aws_dynamodb.MaxThroughputProps",
8754
+ jsii_struct_bases=[],
8755
+ name_mapping={
8756
+ "max_read_request_units": "maxReadRequestUnits",
8757
+ "max_write_request_units": "maxWriteRequestUnits",
8758
+ },
8759
+ )
8760
+ class MaxThroughputProps:
8761
+ def __init__(
8762
+ self,
8763
+ *,
8764
+ max_read_request_units: typing.Optional[jsii.Number] = None,
8765
+ max_write_request_units: typing.Optional[jsii.Number] = None,
8766
+ ) -> None:
8767
+ '''Properties used to configure maximum throughput for an on-demand table.
8768
+
8769
+ :param max_read_request_units: The max read request units. Default: - if table mode is on-demand and this property is undefined, no maximum throughput limit will be put in place for read requests. This property is only applicable for tables using on-demand mode.
8770
+ :param max_write_request_units: The max write request units. Default: - if table mode is on-demand and this property is undefined, no maximum throughput limit will be put in place for write requests. This property is only applicable for tables using on-demand mode.
8771
+
8772
+ :exampleMetadata: infused
8773
+
8774
+ Example::
8775
+
8776
+ table = dynamodb.TableV2(self, "Table",
8777
+ partition_key=dynamodb.Attribute(name="pk", type=dynamodb.AttributeType.STRING),
8778
+ billing=dynamodb.Billing.on_demand(
8779
+ max_read_request_units=100,
8780
+ max_write_request_units=115
8781
+ )
8782
+ )
8783
+ '''
8784
+ if __debug__:
8785
+ type_hints = typing.get_type_hints(_typecheckingstub__be7ea0183d8be6420b32efcd6b8d4ab24e05bd813b7c0abb65a713b53d61464f)
8786
+ check_type(argname="argument max_read_request_units", value=max_read_request_units, expected_type=type_hints["max_read_request_units"])
8787
+ check_type(argname="argument max_write_request_units", value=max_write_request_units, expected_type=type_hints["max_write_request_units"])
8788
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
8789
+ if max_read_request_units is not None:
8790
+ self._values["max_read_request_units"] = max_read_request_units
8791
+ if max_write_request_units is not None:
8792
+ self._values["max_write_request_units"] = max_write_request_units
8793
+
8794
+ @builtins.property
8795
+ def max_read_request_units(self) -> typing.Optional[jsii.Number]:
8796
+ '''The max read request units.
8797
+
8798
+ :default:
8799
+
8800
+ - if table mode is on-demand and this property is undefined,
8801
+ no maximum throughput limit will be put in place for read requests.
8802
+ This property is only applicable for tables using on-demand mode.
8803
+ '''
8804
+ result = self._values.get("max_read_request_units")
8805
+ return typing.cast(typing.Optional[jsii.Number], result)
8806
+
8807
+ @builtins.property
8808
+ def max_write_request_units(self) -> typing.Optional[jsii.Number]:
8809
+ '''The max write request units.
8810
+
8811
+ :default:
8812
+
8813
+ - if table mode is on-demand and this property is undefined,
8814
+ no maximum throughput limit will be put in place for write requests.
8815
+ This property is only applicable for tables using on-demand mode.
8816
+ '''
8817
+ result = self._values.get("max_write_request_units")
8818
+ return typing.cast(typing.Optional[jsii.Number], result)
8819
+
8820
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
8821
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
8822
+
8823
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
8824
+ return not (rhs == self)
8825
+
8826
+ def __repr__(self) -> str:
8827
+ return "MaxThroughputProps(%s)" % ", ".join(
8828
+ k + "=" + repr(v) for k, v in self._values.items()
8829
+ )
8830
+
8831
+
8726
8832
  @jsii.enum(jsii_type="aws-cdk-lib.aws_dynamodb.Operation")
8727
8833
  class Operation(enum.Enum):
8728
8834
  '''Supported DynamoDB table operations.'''
@@ -8781,6 +8887,7 @@ class ProjectionType(enum.Enum):
8781
8887
  jsii_struct_bases=[],
8782
8888
  name_mapping={
8783
8889
  "contributor_insights": "contributorInsights",
8890
+ "max_read_request_units": "maxReadRequestUnits",
8784
8891
  "read_capacity": "readCapacity",
8785
8892
  },
8786
8893
  )
@@ -8789,11 +8896,13 @@ class ReplicaGlobalSecondaryIndexOptions:
8789
8896
  self,
8790
8897
  *,
8791
8898
  contributor_insights: typing.Optional[builtins.bool] = None,
8899
+ max_read_request_units: typing.Optional[jsii.Number] = None,
8792
8900
  read_capacity: typing.Optional[Capacity] = None,
8793
8901
  ) -> None:
8794
8902
  '''Options used to configure global secondary indexes on a replica table.
8795
8903
 
8796
8904
  :param contributor_insights: Whether CloudWatch contributor insights is enabled for a specific global secondary index on a replica table. Default: - inherited from the primary table
8905
+ :param max_read_request_units: The maximum read request units for a specific global secondary index on a replica table. Note: This can only be configured if primary table billing is PAY_PER_REQUEST. Default: - inherited from the primary table
8797
8906
  :param read_capacity: The read capacity for a specific global secondary index on a replica table. Note: This can only be configured if primary table billing is provisioned. Default: - inherited from the primary table
8798
8907
 
8799
8908
  :exampleMetadata: infused
@@ -8845,10 +8954,13 @@ class ReplicaGlobalSecondaryIndexOptions:
8845
8954
  if __debug__:
8846
8955
  type_hints = typing.get_type_hints(_typecheckingstub__eaa3a170e1978a5997011b8319bcd83bf34642dac50e342aad0705ee28b15714)
8847
8956
  check_type(argname="argument contributor_insights", value=contributor_insights, expected_type=type_hints["contributor_insights"])
8957
+ check_type(argname="argument max_read_request_units", value=max_read_request_units, expected_type=type_hints["max_read_request_units"])
8848
8958
  check_type(argname="argument read_capacity", value=read_capacity, expected_type=type_hints["read_capacity"])
8849
8959
  self._values: typing.Dict[builtins.str, typing.Any] = {}
8850
8960
  if contributor_insights is not None:
8851
8961
  self._values["contributor_insights"] = contributor_insights
8962
+ if max_read_request_units is not None:
8963
+ self._values["max_read_request_units"] = max_read_request_units
8852
8964
  if read_capacity is not None:
8853
8965
  self._values["read_capacity"] = read_capacity
8854
8966
 
@@ -8861,6 +8973,17 @@ class ReplicaGlobalSecondaryIndexOptions:
8861
8973
  result = self._values.get("contributor_insights")
8862
8974
  return typing.cast(typing.Optional[builtins.bool], result)
8863
8975
 
8976
+ @builtins.property
8977
+ def max_read_request_units(self) -> typing.Optional[jsii.Number]:
8978
+ '''The maximum read request units for a specific global secondary index on a replica table.
8979
+
8980
+ Note: This can only be configured if primary table billing is PAY_PER_REQUEST.
8981
+
8982
+ :default: - inherited from the primary table
8983
+ '''
8984
+ result = self._values.get("max_read_request_units")
8985
+ return typing.cast(typing.Optional[jsii.Number], result)
8986
+
8864
8987
  @builtins.property
8865
8988
  def read_capacity(self) -> typing.Optional[Capacity]:
8866
8989
  '''The read capacity for a specific global secondary index on a replica table.
@@ -10439,7 +10562,7 @@ class _TableBaseProxy(
10439
10562
  if __debug__:
10440
10563
  type_hints = typing.get_type_hints(_typecheckingstub__385df27fafa61fd6d1e8ebb872e4af26b3119795ee6bb9684e56f891cd86ba94)
10441
10564
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10442
- jsii.set(self, "resourcePolicy", value)
10565
+ jsii.set(self, "resourcePolicy", value) # pyright: ignore[reportArgumentType]
10443
10566
 
10444
10567
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
10445
10568
  typing.cast(typing.Any, TableBase).__jsii_proxy_class__ = lambda : _TableBaseProxy
@@ -11241,7 +11364,7 @@ class _TableBaseV2Proxy(
11241
11364
  if __debug__:
11242
11365
  type_hints = typing.get_type_hints(_typecheckingstub__cb944fe3dd5a924cda3570a3226b526ff95d46099b3de4b4ab2a005c34091870)
11243
11366
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11244
- jsii.set(self, "resourcePolicy", value)
11367
+ jsii.set(self, "resourcePolicy", value) # pyright: ignore[reportArgumentType]
11245
11368
 
11246
11369
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
11247
11370
  typing.cast(typing.Any, TableBaseV2).__jsii_proxy_class__ = lambda : _TableBaseV2Proxy
@@ -11390,6 +11513,8 @@ typing.cast(typing.Any, TableEncryptionV2).__jsii_proxy_class__ = lambda : _Tabl
11390
11513
  "encryption": "encryption",
11391
11514
  "encryption_key": "encryptionKey",
11392
11515
  "import_source": "importSource",
11516
+ "max_read_request_units": "maxReadRequestUnits",
11517
+ "max_write_request_units": "maxWriteRequestUnits",
11393
11518
  "point_in_time_recovery": "pointInTimeRecovery",
11394
11519
  "read_capacity": "readCapacity",
11395
11520
  "removal_policy": "removalPolicy",
@@ -11415,6 +11540,8 @@ class TableOptions(SchemaOptions):
11415
11540
  encryption: typing.Optional[TableEncryption] = None,
11416
11541
  encryption_key: typing.Optional[_IKey_5f11635f] = None,
11417
11542
  import_source: typing.Optional[typing.Union[ImportSourceSpecification, typing.Dict[builtins.str, typing.Any]]] = None,
11543
+ max_read_request_units: typing.Optional[jsii.Number] = None,
11544
+ max_write_request_units: typing.Optional[jsii.Number] = None,
11418
11545
  point_in_time_recovery: typing.Optional[builtins.bool] = None,
11419
11546
  read_capacity: typing.Optional[jsii.Number] = None,
11420
11547
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -11439,6 +11566,8 @@ class TableOptions(SchemaOptions):
11439
11566
  :param encryption: Whether server-side encryption with an AWS managed customer master key is enabled. This property cannot be set if ``serverSideEncryption`` is set. .. epigraph:: **NOTE**: if you set this to ``CUSTOMER_MANAGED`` and ``encryptionKey`` is not specified, the key that the Tablet generates for you will be created with default permissions. If you are using CDKv2, these permissions will be sufficient to enable the key for use with DynamoDB tables. If you are using CDKv1, make sure the feature flag ``@aws-cdk/aws-kms:defaultKeyPolicies`` is set to ``true`` in your ``cdk.json``. Default: - The table is encrypted with an encryption key managed by DynamoDB, and you are not charged any fee for using it.
11440
11567
  :param encryption_key: External KMS key to use for table encryption. This property can only be set if ``encryption`` is set to ``TableEncryption.CUSTOMER_MANAGED``. Default: - If ``encryption`` is set to ``TableEncryption.CUSTOMER_MANAGED`` and this property is undefined, a new KMS key will be created and associated with this table. If ``encryption`` and this property are both undefined, then the table is encrypted with an encryption key managed by DynamoDB, and you are not charged any fee for using it.
11441
11568
  :param import_source: The properties of data being imported from the S3 bucket source to the table. Default: - no data import from the S3 bucket
11569
+ :param max_read_request_units: The maximum read request units for the table. Careful if you add Global Secondary Indexes, as those will share the table's maximum on-demand throughput. Can only be provided if billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
11570
+ :param max_write_request_units: The write request units for the table. Careful if you add Global Secondary Indexes, as those will share the table's maximum on-demand throughput. Can only be provided if billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
11442
11571
  :param point_in_time_recovery: Whether point-in-time recovery is enabled. Default: - point-in-time recovery is disabled
11443
11572
  :param read_capacity: The read capacity for the table. Careful if you add Global Secondary Indexes, as those will share the table's provisioned throughput. Can only be provided if billingMode is Provisioned. Default: 5
11444
11573
  :param removal_policy: The removal policy to apply to the DynamoDB Table. Default: RemovalPolicy.RETAIN
@@ -11489,6 +11618,8 @@ class TableOptions(SchemaOptions):
11489
11618
  compression_type=dynamodb.InputCompressionType.GZIP,
11490
11619
  key_prefix="keyPrefix"
11491
11620
  ),
11621
+ max_read_request_units=123,
11622
+ max_write_request_units=123,
11492
11623
  point_in_time_recovery=False,
11493
11624
  read_capacity=123,
11494
11625
  removal_policy=cdk.RemovalPolicy.DESTROY,
@@ -11522,6 +11653,8 @@ class TableOptions(SchemaOptions):
11522
11653
  check_type(argname="argument encryption", value=encryption, expected_type=type_hints["encryption"])
11523
11654
  check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
11524
11655
  check_type(argname="argument import_source", value=import_source, expected_type=type_hints["import_source"])
11656
+ check_type(argname="argument max_read_request_units", value=max_read_request_units, expected_type=type_hints["max_read_request_units"])
11657
+ check_type(argname="argument max_write_request_units", value=max_write_request_units, expected_type=type_hints["max_write_request_units"])
11525
11658
  check_type(argname="argument point_in_time_recovery", value=point_in_time_recovery, expected_type=type_hints["point_in_time_recovery"])
11526
11659
  check_type(argname="argument read_capacity", value=read_capacity, expected_type=type_hints["read_capacity"])
11527
11660
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
@@ -11550,6 +11683,10 @@ class TableOptions(SchemaOptions):
11550
11683
  self._values["encryption_key"] = encryption_key
11551
11684
  if import_source is not None:
11552
11685
  self._values["import_source"] = import_source
11686
+ if max_read_request_units is not None:
11687
+ self._values["max_read_request_units"] = max_read_request_units
11688
+ if max_write_request_units is not None:
11689
+ self._values["max_write_request_units"] = max_write_request_units
11553
11690
  if point_in_time_recovery is not None:
11554
11691
  self._values["point_in_time_recovery"] = point_in_time_recovery
11555
11692
  if read_capacity is not None:
@@ -11660,6 +11797,34 @@ class TableOptions(SchemaOptions):
11660
11797
  result = self._values.get("import_source")
11661
11798
  return typing.cast(typing.Optional[ImportSourceSpecification], result)
11662
11799
 
11800
+ @builtins.property
11801
+ def max_read_request_units(self) -> typing.Optional[jsii.Number]:
11802
+ '''The maximum read request units for the table.
11803
+
11804
+ Careful if you add Global Secondary Indexes, as
11805
+ those will share the table's maximum on-demand throughput.
11806
+
11807
+ Can only be provided if billingMode is PAY_PER_REQUEST.
11808
+
11809
+ :default: - on-demand throughput is disabled
11810
+ '''
11811
+ result = self._values.get("max_read_request_units")
11812
+ return typing.cast(typing.Optional[jsii.Number], result)
11813
+
11814
+ @builtins.property
11815
+ def max_write_request_units(self) -> typing.Optional[jsii.Number]:
11816
+ '''The write request units for the table.
11817
+
11818
+ Careful if you add Global Secondary Indexes, as
11819
+ those will share the table's maximum on-demand throughput.
11820
+
11821
+ Can only be provided if billingMode is PAY_PER_REQUEST.
11822
+
11823
+ :default: - on-demand throughput is disabled
11824
+ '''
11825
+ result = self._values.get("max_write_request_units")
11826
+ return typing.cast(typing.Optional[jsii.Number], result)
11827
+
11663
11828
  @builtins.property
11664
11829
  def point_in_time_recovery(self) -> typing.Optional[builtins.bool]:
11665
11830
  '''Whether point-in-time recovery is enabled.
@@ -11976,6 +12141,8 @@ class TableOptionsV2:
11976
12141
  "encryption": "encryption",
11977
12142
  "encryption_key": "encryptionKey",
11978
12143
  "import_source": "importSource",
12144
+ "max_read_request_units": "maxReadRequestUnits",
12145
+ "max_write_request_units": "maxWriteRequestUnits",
11979
12146
  "point_in_time_recovery": "pointInTimeRecovery",
11980
12147
  "read_capacity": "readCapacity",
11981
12148
  "removal_policy": "removalPolicy",
@@ -12003,6 +12170,8 @@ class TableProps(TableOptions):
12003
12170
  encryption: typing.Optional[TableEncryption] = None,
12004
12171
  encryption_key: typing.Optional[_IKey_5f11635f] = None,
12005
12172
  import_source: typing.Optional[typing.Union[ImportSourceSpecification, typing.Dict[builtins.str, typing.Any]]] = None,
12173
+ max_read_request_units: typing.Optional[jsii.Number] = None,
12174
+ max_write_request_units: typing.Optional[jsii.Number] = None,
12006
12175
  point_in_time_recovery: typing.Optional[builtins.bool] = None,
12007
12176
  read_capacity: typing.Optional[jsii.Number] = None,
12008
12177
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -12027,6 +12196,8 @@ class TableProps(TableOptions):
12027
12196
  :param encryption: Whether server-side encryption with an AWS managed customer master key is enabled. This property cannot be set if ``serverSideEncryption`` is set. .. epigraph:: **NOTE**: if you set this to ``CUSTOMER_MANAGED`` and ``encryptionKey`` is not specified, the key that the Tablet generates for you will be created with default permissions. If you are using CDKv2, these permissions will be sufficient to enable the key for use with DynamoDB tables. If you are using CDKv1, make sure the feature flag ``@aws-cdk/aws-kms:defaultKeyPolicies`` is set to ``true`` in your ``cdk.json``. Default: - The table is encrypted with an encryption key managed by DynamoDB, and you are not charged any fee for using it.
12028
12197
  :param encryption_key: External KMS key to use for table encryption. This property can only be set if ``encryption`` is set to ``TableEncryption.CUSTOMER_MANAGED``. Default: - If ``encryption`` is set to ``TableEncryption.CUSTOMER_MANAGED`` and this property is undefined, a new KMS key will be created and associated with this table. If ``encryption`` and this property are both undefined, then the table is encrypted with an encryption key managed by DynamoDB, and you are not charged any fee for using it.
12029
12198
  :param import_source: The properties of data being imported from the S3 bucket source to the table. Default: - no data import from the S3 bucket
12199
+ :param max_read_request_units: The maximum read request units for the table. Careful if you add Global Secondary Indexes, as those will share the table's maximum on-demand throughput. Can only be provided if billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
12200
+ :param max_write_request_units: The write request units for the table. Careful if you add Global Secondary Indexes, as those will share the table's maximum on-demand throughput. Can only be provided if billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
12030
12201
  :param point_in_time_recovery: Whether point-in-time recovery is enabled. Default: - point-in-time recovery is disabled
12031
12202
  :param read_capacity: The read capacity for the table. Careful if you add Global Secondary Indexes, as those will share the table's provisioned throughput. Can only be provided if billingMode is Provisioned. Default: 5
12032
12203
  :param removal_policy: The removal policy to apply to the DynamoDB Table. Default: RemovalPolicy.RETAIN
@@ -12083,6 +12254,8 @@ class TableProps(TableOptions):
12083
12254
  check_type(argname="argument encryption", value=encryption, expected_type=type_hints["encryption"])
12084
12255
  check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
12085
12256
  check_type(argname="argument import_source", value=import_source, expected_type=type_hints["import_source"])
12257
+ check_type(argname="argument max_read_request_units", value=max_read_request_units, expected_type=type_hints["max_read_request_units"])
12258
+ check_type(argname="argument max_write_request_units", value=max_write_request_units, expected_type=type_hints["max_write_request_units"])
12086
12259
  check_type(argname="argument point_in_time_recovery", value=point_in_time_recovery, expected_type=type_hints["point_in_time_recovery"])
12087
12260
  check_type(argname="argument read_capacity", value=read_capacity, expected_type=type_hints["read_capacity"])
12088
12261
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
@@ -12113,6 +12286,10 @@ class TableProps(TableOptions):
12113
12286
  self._values["encryption_key"] = encryption_key
12114
12287
  if import_source is not None:
12115
12288
  self._values["import_source"] = import_source
12289
+ if max_read_request_units is not None:
12290
+ self._values["max_read_request_units"] = max_read_request_units
12291
+ if max_write_request_units is not None:
12292
+ self._values["max_write_request_units"] = max_write_request_units
12116
12293
  if point_in_time_recovery is not None:
12117
12294
  self._values["point_in_time_recovery"] = point_in_time_recovery
12118
12295
  if read_capacity is not None:
@@ -12227,6 +12404,34 @@ class TableProps(TableOptions):
12227
12404
  result = self._values.get("import_source")
12228
12405
  return typing.cast(typing.Optional[ImportSourceSpecification], result)
12229
12406
 
12407
+ @builtins.property
12408
+ def max_read_request_units(self) -> typing.Optional[jsii.Number]:
12409
+ '''The maximum read request units for the table.
12410
+
12411
+ Careful if you add Global Secondary Indexes, as
12412
+ those will share the table's maximum on-demand throughput.
12413
+
12414
+ Can only be provided if billingMode is PAY_PER_REQUEST.
12415
+
12416
+ :default: - on-demand throughput is disabled
12417
+ '''
12418
+ result = self._values.get("max_read_request_units")
12419
+ return typing.cast(typing.Optional[jsii.Number], result)
12420
+
12421
+ @builtins.property
12422
+ def max_write_request_units(self) -> typing.Optional[jsii.Number]:
12423
+ '''The write request units for the table.
12424
+
12425
+ Careful if you add Global Secondary Indexes, as
12426
+ those will share the table's maximum on-demand throughput.
12427
+
12428
+ Can only be provided if billingMode is PAY_PER_REQUEST.
12429
+
12430
+ :default: - on-demand throughput is disabled
12431
+ '''
12432
+ result = self._values.get("max_write_request_units")
12433
+ return typing.cast(typing.Optional[jsii.Number], result)
12434
+
12230
12435
  @builtins.property
12231
12436
  def point_in_time_recovery(self) -> typing.Optional[builtins.bool]:
12232
12437
  '''Whether point-in-time recovery is enabled.
@@ -12916,6 +13121,8 @@ class TableV2(
12916
13121
  self,
12917
13122
  *,
12918
13123
  partition_key: typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]],
13124
+ max_read_request_units: typing.Optional[jsii.Number] = None,
13125
+ max_write_request_units: typing.Optional[jsii.Number] = None,
12919
13126
  read_capacity: typing.Optional[Capacity] = None,
12920
13127
  sort_key: typing.Optional[typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]]] = None,
12921
13128
  write_capacity: typing.Optional[Capacity] = None,
@@ -12928,6 +13135,8 @@ class TableV2(
12928
13135
  Note: Global secondary indexes will be inherited by all replica tables.
12929
13136
 
12930
13137
  :param partition_key: Partition key attribute definition.
13138
+ :param max_read_request_units: The maximum read request units. Note: This can only be configured if the primary table billing is PAY_PER_REQUEST. Default: - inherited from the primary table.
13139
+ :param max_write_request_units: The maximum write request units. Note: This can only be configured if the primary table billing is PAY_PER_REQUEST. Default: - inherited from the primary table.
12931
13140
  :param read_capacity: The read capacity. Note: This can only be configured if the primary table billing is provisioned. Default: - inherited from the primary table.
12932
13141
  :param sort_key: Sort key attribute definition. Default: - no sort key
12933
13142
  :param write_capacity: The write capacity. Note: This can only be configured if the primary table billing is provisioned. Default: - inherited from the primary table.
@@ -12937,6 +13146,8 @@ class TableV2(
12937
13146
  '''
12938
13147
  props = GlobalSecondaryIndexPropsV2(
12939
13148
  partition_key=partition_key,
13149
+ max_read_request_units=max_read_request_units,
13150
+ max_write_request_units=max_write_request_units,
12940
13151
  read_capacity=read_capacity,
12941
13152
  sort_key=sort_key,
12942
13153
  write_capacity=write_capacity,
@@ -12980,6 +13191,7 @@ class TableV2(
12980
13191
  *,
12981
13192
  region: builtins.str,
12982
13193
  global_secondary_index_options: typing.Optional[typing.Mapping[builtins.str, typing.Union[ReplicaGlobalSecondaryIndexOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
13194
+ max_read_request_units: typing.Optional[jsii.Number] = None,
12983
13195
  read_capacity: typing.Optional[Capacity] = None,
12984
13196
  contributor_insights: typing.Optional[builtins.bool] = None,
12985
13197
  deletion_protection: typing.Optional[builtins.bool] = None,
@@ -12995,6 +13207,7 @@ class TableV2(
12995
13207
 
12996
13208
  :param region: The region that the replica table will be created in.
12997
13209
  :param global_secondary_index_options: Options used to configure global secondary index properties. Default: - inherited from the primary table
13210
+ :param max_read_request_units: The maxium read request units. Note: This can only be configured if the primary table billing is PAY_PER_REQUEST. Default: - inherited from the primary table
12998
13211
  :param read_capacity: The read capacity. Note: This can only be configured if the primary table billing is provisioned. Default: - inherited from the primary table
12999
13212
  :param contributor_insights: Whether CloudWatch contributor insights is enabled. Default: false
13000
13213
  :param deletion_protection: Whether deletion protection is enabled. Default: false
@@ -13007,6 +13220,7 @@ class TableV2(
13007
13220
  props = ReplicaTableProps(
13008
13221
  region=region,
13009
13222
  global_secondary_index_options=global_secondary_index_options,
13223
+ max_read_request_units=max_read_request_units,
13010
13224
  read_capacity=read_capacity,
13011
13225
  contributor_insights=contributor_insights,
13012
13226
  deletion_protection=deletion_protection,
@@ -13098,7 +13312,7 @@ class TableV2(
13098
13312
  if __debug__:
13099
13313
  type_hints = typing.get_type_hints(_typecheckingstub__7c681fc6a08524e2909b1c97c77ad38edec11b1f8bd3f666a073a61c09638e19)
13100
13314
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
13101
- jsii.set(self, "resourcePolicy", value)
13315
+ jsii.set(self, "resourcePolicy", value) # pyright: ignore[reportArgumentType]
13102
13316
 
13103
13317
 
13104
13318
  @jsii.data_type(
@@ -13321,6 +13535,8 @@ class UtilizationScalingProps(_BaseTargetTrackingProps_540ba713):
13321
13535
  "projection_type": "projectionType",
13322
13536
  "partition_key": "partitionKey",
13323
13537
  "sort_key": "sortKey",
13538
+ "max_read_request_units": "maxReadRequestUnits",
13539
+ "max_write_request_units": "maxWriteRequestUnits",
13324
13540
  "read_capacity": "readCapacity",
13325
13541
  "write_capacity": "writeCapacity",
13326
13542
  },
@@ -13334,6 +13550,8 @@ class GlobalSecondaryIndexProps(SecondaryIndexProps, SchemaOptions):
13334
13550
  projection_type: typing.Optional[ProjectionType] = None,
13335
13551
  partition_key: typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]],
13336
13552
  sort_key: typing.Optional[typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]]] = None,
13553
+ max_read_request_units: typing.Optional[jsii.Number] = None,
13554
+ max_write_request_units: typing.Optional[jsii.Number] = None,
13337
13555
  read_capacity: typing.Optional[jsii.Number] = None,
13338
13556
  write_capacity: typing.Optional[jsii.Number] = None,
13339
13557
  ) -> None:
@@ -13344,6 +13562,8 @@ class GlobalSecondaryIndexProps(SecondaryIndexProps, SchemaOptions):
13344
13562
  :param projection_type: The set of attributes that are projected into the secondary index. Default: ALL
13345
13563
  :param partition_key: Partition key attribute definition.
13346
13564
  :param sort_key: Sort key attribute definition. Default: no sort key
13565
+ :param max_read_request_units: The maximum read request units for the global secondary index. Can only be provided if table billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
13566
+ :param max_write_request_units: The maximum write request units for the global secondary index. Can only be provided if table billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
13347
13567
  :param read_capacity: The read capacity for the global secondary index. Can only be provided if table billingMode is Provisioned or undefined. Default: 5
13348
13568
  :param write_capacity: The write capacity for the global secondary index. Can only be provided if table billingMode is Provisioned or undefined. Default: 5
13349
13569
 
@@ -13363,6 +13583,8 @@ class GlobalSecondaryIndexProps(SecondaryIndexProps, SchemaOptions):
13363
13583
  ),
13364
13584
 
13365
13585
  # the properties below are optional
13586
+ max_read_request_units=123,
13587
+ max_write_request_units=123,
13366
13588
  non_key_attributes=["nonKeyAttributes"],
13367
13589
  projection_type=dynamodb.ProjectionType.KEYS_ONLY,
13368
13590
  read_capacity=123,
@@ -13384,6 +13606,8 @@ class GlobalSecondaryIndexProps(SecondaryIndexProps, SchemaOptions):
13384
13606
  check_type(argname="argument projection_type", value=projection_type, expected_type=type_hints["projection_type"])
13385
13607
  check_type(argname="argument partition_key", value=partition_key, expected_type=type_hints["partition_key"])
13386
13608
  check_type(argname="argument sort_key", value=sort_key, expected_type=type_hints["sort_key"])
13609
+ check_type(argname="argument max_read_request_units", value=max_read_request_units, expected_type=type_hints["max_read_request_units"])
13610
+ check_type(argname="argument max_write_request_units", value=max_write_request_units, expected_type=type_hints["max_write_request_units"])
13387
13611
  check_type(argname="argument read_capacity", value=read_capacity, expected_type=type_hints["read_capacity"])
13388
13612
  check_type(argname="argument write_capacity", value=write_capacity, expected_type=type_hints["write_capacity"])
13389
13613
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -13396,6 +13620,10 @@ class GlobalSecondaryIndexProps(SecondaryIndexProps, SchemaOptions):
13396
13620
  self._values["projection_type"] = projection_type
13397
13621
  if sort_key is not None:
13398
13622
  self._values["sort_key"] = sort_key
13623
+ if max_read_request_units is not None:
13624
+ self._values["max_read_request_units"] = max_read_request_units
13625
+ if max_write_request_units is not None:
13626
+ self._values["max_write_request_units"] = max_write_request_units
13399
13627
  if read_capacity is not None:
13400
13628
  self._values["read_capacity"] = read_capacity
13401
13629
  if write_capacity is not None:
@@ -13442,6 +13670,28 @@ class GlobalSecondaryIndexProps(SecondaryIndexProps, SchemaOptions):
13442
13670
  result = self._values.get("sort_key")
13443
13671
  return typing.cast(typing.Optional[Attribute], result)
13444
13672
 
13673
+ @builtins.property
13674
+ def max_read_request_units(self) -> typing.Optional[jsii.Number]:
13675
+ '''The maximum read request units for the global secondary index.
13676
+
13677
+ Can only be provided if table billingMode is PAY_PER_REQUEST.
13678
+
13679
+ :default: - on-demand throughput is disabled
13680
+ '''
13681
+ result = self._values.get("max_read_request_units")
13682
+ return typing.cast(typing.Optional[jsii.Number], result)
13683
+
13684
+ @builtins.property
13685
+ def max_write_request_units(self) -> typing.Optional[jsii.Number]:
13686
+ '''The maximum write request units for the global secondary index.
13687
+
13688
+ Can only be provided if table billingMode is PAY_PER_REQUEST.
13689
+
13690
+ :default: - on-demand throughput is disabled
13691
+ '''
13692
+ result = self._values.get("max_write_request_units")
13693
+ return typing.cast(typing.Optional[jsii.Number], result)
13694
+
13445
13695
  @builtins.property
13446
13696
  def read_capacity(self) -> typing.Optional[jsii.Number]:
13447
13697
  '''The read capacity for the global secondary index.
@@ -13484,6 +13734,8 @@ class GlobalSecondaryIndexProps(SecondaryIndexProps, SchemaOptions):
13484
13734
  "non_key_attributes": "nonKeyAttributes",
13485
13735
  "projection_type": "projectionType",
13486
13736
  "partition_key": "partitionKey",
13737
+ "max_read_request_units": "maxReadRequestUnits",
13738
+ "max_write_request_units": "maxWriteRequestUnits",
13487
13739
  "read_capacity": "readCapacity",
13488
13740
  "sort_key": "sortKey",
13489
13741
  "write_capacity": "writeCapacity",
@@ -13497,6 +13749,8 @@ class GlobalSecondaryIndexPropsV2(SecondaryIndexProps):
13497
13749
  non_key_attributes: typing.Optional[typing.Sequence[builtins.str]] = None,
13498
13750
  projection_type: typing.Optional[ProjectionType] = None,
13499
13751
  partition_key: typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]],
13752
+ max_read_request_units: typing.Optional[jsii.Number] = None,
13753
+ max_write_request_units: typing.Optional[jsii.Number] = None,
13500
13754
  read_capacity: typing.Optional[Capacity] = None,
13501
13755
  sort_key: typing.Optional[typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]]] = None,
13502
13756
  write_capacity: typing.Optional[Capacity] = None,
@@ -13507,6 +13761,8 @@ class GlobalSecondaryIndexPropsV2(SecondaryIndexProps):
13507
13761
  :param non_key_attributes: The non-key attributes that are projected into the secondary index. Default: - No additional attributes
13508
13762
  :param projection_type: The set of attributes that are projected into the secondary index. Default: ALL
13509
13763
  :param partition_key: Partition key attribute definition.
13764
+ :param max_read_request_units: The maximum read request units. Note: This can only be configured if the primary table billing is PAY_PER_REQUEST. Default: - inherited from the primary table.
13765
+ :param max_write_request_units: The maximum write request units. Note: This can only be configured if the primary table billing is PAY_PER_REQUEST. Default: - inherited from the primary table.
13510
13766
  :param read_capacity: The read capacity. Note: This can only be configured if the primary table billing is provisioned. Default: - inherited from the primary table.
13511
13767
  :param sort_key: Sort key attribute definition. Default: - no sort key
13512
13768
  :param write_capacity: The write capacity. Note: This can only be configured if the primary table billing is provisioned. Default: - inherited from the primary table.
@@ -13539,6 +13795,8 @@ class GlobalSecondaryIndexPropsV2(SecondaryIndexProps):
13539
13795
  check_type(argname="argument non_key_attributes", value=non_key_attributes, expected_type=type_hints["non_key_attributes"])
13540
13796
  check_type(argname="argument projection_type", value=projection_type, expected_type=type_hints["projection_type"])
13541
13797
  check_type(argname="argument partition_key", value=partition_key, expected_type=type_hints["partition_key"])
13798
+ check_type(argname="argument max_read_request_units", value=max_read_request_units, expected_type=type_hints["max_read_request_units"])
13799
+ check_type(argname="argument max_write_request_units", value=max_write_request_units, expected_type=type_hints["max_write_request_units"])
13542
13800
  check_type(argname="argument read_capacity", value=read_capacity, expected_type=type_hints["read_capacity"])
13543
13801
  check_type(argname="argument sort_key", value=sort_key, expected_type=type_hints["sort_key"])
13544
13802
  check_type(argname="argument write_capacity", value=write_capacity, expected_type=type_hints["write_capacity"])
@@ -13550,6 +13808,10 @@ class GlobalSecondaryIndexPropsV2(SecondaryIndexProps):
13550
13808
  self._values["non_key_attributes"] = non_key_attributes
13551
13809
  if projection_type is not None:
13552
13810
  self._values["projection_type"] = projection_type
13811
+ if max_read_request_units is not None:
13812
+ self._values["max_read_request_units"] = max_read_request_units
13813
+ if max_write_request_units is not None:
13814
+ self._values["max_write_request_units"] = max_write_request_units
13553
13815
  if read_capacity is not None:
13554
13816
  self._values["read_capacity"] = read_capacity
13555
13817
  if sort_key is not None:
@@ -13589,6 +13851,28 @@ class GlobalSecondaryIndexPropsV2(SecondaryIndexProps):
13589
13851
  assert result is not None, "Required property 'partition_key' is missing"
13590
13852
  return typing.cast(Attribute, result)
13591
13853
 
13854
+ @builtins.property
13855
+ def max_read_request_units(self) -> typing.Optional[jsii.Number]:
13856
+ '''The maximum read request units.
13857
+
13858
+ Note: This can only be configured if the primary table billing is PAY_PER_REQUEST.
13859
+
13860
+ :default: - inherited from the primary table.
13861
+ '''
13862
+ result = self._values.get("max_read_request_units")
13863
+ return typing.cast(typing.Optional[jsii.Number], result)
13864
+
13865
+ @builtins.property
13866
+ def max_write_request_units(self) -> typing.Optional[jsii.Number]:
13867
+ '''The maximum write request units.
13868
+
13869
+ Note: This can only be configured if the primary table billing is PAY_PER_REQUEST.
13870
+
13871
+ :default: - inherited from the primary table.
13872
+ '''
13873
+ result = self._values.get("max_write_request_units")
13874
+ return typing.cast(typing.Optional[jsii.Number], result)
13875
+
13592
13876
  @builtins.property
13593
13877
  def read_capacity(self) -> typing.Optional[Capacity]:
13594
13878
  '''The read capacity.
@@ -13976,6 +14260,7 @@ class OperationsMetricOptions(SystemErrorsForOperationsMetricOptions):
13976
14260
  "tags": "tags",
13977
14261
  "region": "region",
13978
14262
  "global_secondary_index_options": "globalSecondaryIndexOptions",
14263
+ "max_read_request_units": "maxReadRequestUnits",
13979
14264
  "read_capacity": "readCapacity",
13980
14265
  },
13981
14266
  )
@@ -13992,6 +14277,7 @@ class ReplicaTableProps(TableOptionsV2):
13992
14277
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
13993
14278
  region: builtins.str,
13994
14279
  global_secondary_index_options: typing.Optional[typing.Mapping[builtins.str, typing.Union[ReplicaGlobalSecondaryIndexOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
14280
+ max_read_request_units: typing.Optional[jsii.Number] = None,
13995
14281
  read_capacity: typing.Optional[Capacity] = None,
13996
14282
  ) -> None:
13997
14283
  '''Properties used to configure a replica table.
@@ -14005,6 +14291,7 @@ class ReplicaTableProps(TableOptionsV2):
14005
14291
  :param tags: Tags to be applied to the table or replica table. Default: - no tags
14006
14292
  :param region: The region that the replica table will be created in.
14007
14293
  :param global_secondary_index_options: Options used to configure global secondary index properties. Default: - inherited from the primary table
14294
+ :param max_read_request_units: The maxium read request units. Note: This can only be configured if the primary table billing is PAY_PER_REQUEST. Default: - inherited from the primary table
14008
14295
  :param read_capacity: The read capacity. Note: This can only be configured if the primary table billing is provisioned. Default: - inherited from the primary table
14009
14296
 
14010
14297
  :exampleMetadata: infused
@@ -14035,6 +14322,7 @@ class ReplicaTableProps(TableOptionsV2):
14035
14322
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
14036
14323
  check_type(argname="argument region", value=region, expected_type=type_hints["region"])
14037
14324
  check_type(argname="argument global_secondary_index_options", value=global_secondary_index_options, expected_type=type_hints["global_secondary_index_options"])
14325
+ check_type(argname="argument max_read_request_units", value=max_read_request_units, expected_type=type_hints["max_read_request_units"])
14038
14326
  check_type(argname="argument read_capacity", value=read_capacity, expected_type=type_hints["read_capacity"])
14039
14327
  self._values: typing.Dict[builtins.str, typing.Any] = {
14040
14328
  "region": region,
@@ -14055,6 +14343,8 @@ class ReplicaTableProps(TableOptionsV2):
14055
14343
  self._values["tags"] = tags
14056
14344
  if global_secondary_index_options is not None:
14057
14345
  self._values["global_secondary_index_options"] = global_secondary_index_options
14346
+ if max_read_request_units is not None:
14347
+ self._values["max_read_request_units"] = max_read_request_units
14058
14348
  if read_capacity is not None:
14059
14349
  self._values["read_capacity"] = read_capacity
14060
14350
 
@@ -14141,6 +14431,17 @@ class ReplicaTableProps(TableOptionsV2):
14141
14431
  result = self._values.get("global_secondary_index_options")
14142
14432
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, ReplicaGlobalSecondaryIndexOptions]], result)
14143
14433
 
14434
+ @builtins.property
14435
+ def max_read_request_units(self) -> typing.Optional[jsii.Number]:
14436
+ '''The maxium read request units.
14437
+
14438
+ Note: This can only be configured if the primary table billing is PAY_PER_REQUEST.
14439
+
14440
+ :default: - inherited from the primary table
14441
+ '''
14442
+ result = self._values.get("max_read_request_units")
14443
+ return typing.cast(typing.Optional[jsii.Number], result)
14444
+
14144
14445
  @builtins.property
14145
14446
  def read_capacity(self) -> typing.Optional[Capacity]:
14146
14447
  '''The read capacity.
@@ -14211,6 +14512,8 @@ class Table(
14211
14512
  encryption: typing.Optional[TableEncryption] = None,
14212
14513
  encryption_key: typing.Optional[_IKey_5f11635f] = None,
14213
14514
  import_source: typing.Optional[typing.Union[ImportSourceSpecification, typing.Dict[builtins.str, typing.Any]]] = None,
14515
+ max_read_request_units: typing.Optional[jsii.Number] = None,
14516
+ max_write_request_units: typing.Optional[jsii.Number] = None,
14214
14517
  point_in_time_recovery: typing.Optional[builtins.bool] = None,
14215
14518
  read_capacity: typing.Optional[jsii.Number] = None,
14216
14519
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -14236,6 +14539,8 @@ class Table(
14236
14539
  :param encryption: Whether server-side encryption with an AWS managed customer master key is enabled. This property cannot be set if ``serverSideEncryption`` is set. .. epigraph:: **NOTE**: if you set this to ``CUSTOMER_MANAGED`` and ``encryptionKey`` is not specified, the key that the Tablet generates for you will be created with default permissions. If you are using CDKv2, these permissions will be sufficient to enable the key for use with DynamoDB tables. If you are using CDKv1, make sure the feature flag ``@aws-cdk/aws-kms:defaultKeyPolicies`` is set to ``true`` in your ``cdk.json``. Default: - The table is encrypted with an encryption key managed by DynamoDB, and you are not charged any fee for using it.
14237
14540
  :param encryption_key: External KMS key to use for table encryption. This property can only be set if ``encryption`` is set to ``TableEncryption.CUSTOMER_MANAGED``. Default: - If ``encryption`` is set to ``TableEncryption.CUSTOMER_MANAGED`` and this property is undefined, a new KMS key will be created and associated with this table. If ``encryption`` and this property are both undefined, then the table is encrypted with an encryption key managed by DynamoDB, and you are not charged any fee for using it.
14238
14541
  :param import_source: The properties of data being imported from the S3 bucket source to the table. Default: - no data import from the S3 bucket
14542
+ :param max_read_request_units: The maximum read request units for the table. Careful if you add Global Secondary Indexes, as those will share the table's maximum on-demand throughput. Can only be provided if billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
14543
+ :param max_write_request_units: The write request units for the table. Careful if you add Global Secondary Indexes, as those will share the table's maximum on-demand throughput. Can only be provided if billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
14239
14544
  :param point_in_time_recovery: Whether point-in-time recovery is enabled. Default: - point-in-time recovery is disabled
14240
14545
  :param read_capacity: The read capacity for the table. Careful if you add Global Secondary Indexes, as those will share the table's provisioned throughput. Can only be provided if billingMode is Provisioned. Default: 5
14241
14546
  :param removal_policy: The removal policy to apply to the DynamoDB Table. Default: RemovalPolicy.RETAIN
@@ -14263,6 +14568,8 @@ class Table(
14263
14568
  encryption=encryption,
14264
14569
  encryption_key=encryption_key,
14265
14570
  import_source=import_source,
14571
+ max_read_request_units=max_read_request_units,
14572
+ max_write_request_units=max_write_request_units,
14266
14573
  point_in_time_recovery=point_in_time_recovery,
14267
14574
  read_capacity=read_capacity,
14268
14575
  removal_policy=removal_policy,
@@ -14369,6 +14676,8 @@ class Table(
14369
14676
  def add_global_secondary_index(
14370
14677
  self,
14371
14678
  *,
14679
+ max_read_request_units: typing.Optional[jsii.Number] = None,
14680
+ max_write_request_units: typing.Optional[jsii.Number] = None,
14372
14681
  read_capacity: typing.Optional[jsii.Number] = None,
14373
14682
  write_capacity: typing.Optional[jsii.Number] = None,
14374
14683
  index_name: builtins.str,
@@ -14379,6 +14688,8 @@ class Table(
14379
14688
  ) -> None:
14380
14689
  '''Add a global secondary index of table.
14381
14690
 
14691
+ :param max_read_request_units: The maximum read request units for the global secondary index. Can only be provided if table billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
14692
+ :param max_write_request_units: The maximum write request units for the global secondary index. Can only be provided if table billingMode is PAY_PER_REQUEST. Default: - on-demand throughput is disabled
14382
14693
  :param read_capacity: The read capacity for the global secondary index. Can only be provided if table billingMode is Provisioned or undefined. Default: 5
14383
14694
  :param write_capacity: The write capacity for the global secondary index. Can only be provided if table billingMode is Provisioned or undefined. Default: 5
14384
14695
  :param index_name: The name of the secondary index.
@@ -14388,6 +14699,8 @@ class Table(
14388
14699
  :param sort_key: Sort key attribute definition. Default: no sort key
14389
14700
  '''
14390
14701
  props = GlobalSecondaryIndexProps(
14702
+ max_read_request_units=max_read_request_units,
14703
+ max_write_request_units=max_write_request_units,
14391
14704
  read_capacity=read_capacity,
14392
14705
  write_capacity=write_capacity,
14393
14706
  index_name=index_name,
@@ -14582,7 +14895,7 @@ class Table(
14582
14895
  if __debug__:
14583
14896
  type_hints = typing.get_type_hints(_typecheckingstub__b85333b9f4a3ca55431a35f4006c1aeb1fcd34f68dee45d5355498d8a1b77806)
14584
14897
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
14585
- jsii.set(self, "resourcePolicy", value)
14898
+ jsii.set(self, "resourcePolicy", value) # pyright: ignore[reportArgumentType]
14586
14899
 
14587
14900
 
14588
14901
  __all__ = [
@@ -14608,6 +14921,7 @@ __all__ = [
14608
14921
  "InputCompressionType",
14609
14922
  "InputFormat",
14610
14923
  "LocalSecondaryIndexProps",
14924
+ "MaxThroughputProps",
14611
14925
  "Operation",
14612
14926
  "OperationsMetricOptions",
14613
14927
  "ProjectionType",
@@ -15402,9 +15716,18 @@ def _typecheckingstub__085db855741db88e396eec35bbd4cd5d6e9c4cc7ae855a18cfe091ce2
15402
15716
  """Type checking stubs"""
15403
15717
  pass
15404
15718
 
15719
+ def _typecheckingstub__be7ea0183d8be6420b32efcd6b8d4ab24e05bd813b7c0abb65a713b53d61464f(
15720
+ *,
15721
+ max_read_request_units: typing.Optional[jsii.Number] = None,
15722
+ max_write_request_units: typing.Optional[jsii.Number] = None,
15723
+ ) -> None:
15724
+ """Type checking stubs"""
15725
+ pass
15726
+
15405
15727
  def _typecheckingstub__eaa3a170e1978a5997011b8319bcd83bf34642dac50e342aad0705ee28b15714(
15406
15728
  *,
15407
15729
  contributor_insights: typing.Optional[builtins.bool] = None,
15730
+ max_read_request_units: typing.Optional[jsii.Number] = None,
15408
15731
  read_capacity: typing.Optional[Capacity] = None,
15409
15732
  ) -> None:
15410
15733
  """Type checking stubs"""
@@ -15695,6 +16018,8 @@ def _typecheckingstub__dadf5733fac70178ab246582a0b777b8c203659229753a8396594d751
15695
16018
  encryption: typing.Optional[TableEncryption] = None,
15696
16019
  encryption_key: typing.Optional[_IKey_5f11635f] = None,
15697
16020
  import_source: typing.Optional[typing.Union[ImportSourceSpecification, typing.Dict[builtins.str, typing.Any]]] = None,
16021
+ max_read_request_units: typing.Optional[jsii.Number] = None,
16022
+ max_write_request_units: typing.Optional[jsii.Number] = None,
15698
16023
  point_in_time_recovery: typing.Optional[builtins.bool] = None,
15699
16024
  read_capacity: typing.Optional[jsii.Number] = None,
15700
16025
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -15733,6 +16058,8 @@ def _typecheckingstub__00475a5e14af8c4c7049089f69b3d29ad81bc91e7e1f0a5a5b7b794a5
15733
16058
  encryption: typing.Optional[TableEncryption] = None,
15734
16059
  encryption_key: typing.Optional[_IKey_5f11635f] = None,
15735
16060
  import_source: typing.Optional[typing.Union[ImportSourceSpecification, typing.Dict[builtins.str, typing.Any]]] = None,
16061
+ max_read_request_units: typing.Optional[jsii.Number] = None,
16062
+ max_write_request_units: typing.Optional[jsii.Number] = None,
15736
16063
  point_in_time_recovery: typing.Optional[builtins.bool] = None,
15737
16064
  read_capacity: typing.Optional[jsii.Number] = None,
15738
16065
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -15870,6 +16197,8 @@ def _typecheckingstub__7f586bf63a567e16bde337be791f392306be66abca1c4abb791989fb9
15870
16197
  projection_type: typing.Optional[ProjectionType] = None,
15871
16198
  partition_key: typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]],
15872
16199
  sort_key: typing.Optional[typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]]] = None,
16200
+ max_read_request_units: typing.Optional[jsii.Number] = None,
16201
+ max_write_request_units: typing.Optional[jsii.Number] = None,
15873
16202
  read_capacity: typing.Optional[jsii.Number] = None,
15874
16203
  write_capacity: typing.Optional[jsii.Number] = None,
15875
16204
  ) -> None:
@@ -15882,6 +16211,8 @@ def _typecheckingstub__4d662ce35086830139f09f255840ae92cf556a93d47e96653c908cc7a
15882
16211
  non_key_attributes: typing.Optional[typing.Sequence[builtins.str]] = None,
15883
16212
  projection_type: typing.Optional[ProjectionType] = None,
15884
16213
  partition_key: typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]],
16214
+ max_read_request_units: typing.Optional[jsii.Number] = None,
16215
+ max_write_request_units: typing.Optional[jsii.Number] = None,
15885
16216
  read_capacity: typing.Optional[Capacity] = None,
15886
16217
  sort_key: typing.Optional[typing.Union[Attribute, typing.Dict[builtins.str, typing.Any]]] = None,
15887
16218
  write_capacity: typing.Optional[Capacity] = None,
@@ -15925,6 +16256,7 @@ def _typecheckingstub__7500a741eaeb840f48aaefcd8fc5fbbb8b1082165601116ca363e5ddb
15925
16256
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
15926
16257
  region: builtins.str,
15927
16258
  global_secondary_index_options: typing.Optional[typing.Mapping[builtins.str, typing.Union[ReplicaGlobalSecondaryIndexOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
16259
+ max_read_request_units: typing.Optional[jsii.Number] = None,
15928
16260
  read_capacity: typing.Optional[Capacity] = None,
15929
16261
  ) -> None:
15930
16262
  """Type checking stubs"""
@@ -15942,6 +16274,8 @@ def _typecheckingstub__b92f0ed514f00b57a2a41d754e55fe495d22b05b0ad4711b80ce00457
15942
16274
  encryption: typing.Optional[TableEncryption] = None,
15943
16275
  encryption_key: typing.Optional[_IKey_5f11635f] = None,
15944
16276
  import_source: typing.Optional[typing.Union[ImportSourceSpecification, typing.Dict[builtins.str, typing.Any]]] = None,
16277
+ max_read_request_units: typing.Optional[jsii.Number] = None,
16278
+ max_write_request_units: typing.Optional[jsii.Number] = None,
15945
16279
  point_in_time_recovery: typing.Optional[builtins.bool] = None,
15946
16280
  read_capacity: typing.Optional[jsii.Number] = None,
15947
16281
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,