@kensio/yulin 1.3.0 → 1.4.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 (375) hide show
  1. package/README.md +1 -0
  2. package/dist/sdk/router/resolve-sim-sdk-command-router.d.ts.map +1 -1
  3. package/dist/sdk/router/resolve-sim-sdk-command-router.js +3 -0
  4. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  5. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +10 -8
  6. package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
  7. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +22 -23
  8. package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
  9. package/dist/service/aws/factory/sim-aws-s3-notification-destinations.d.ts +11 -0
  10. package/dist/service/aws/factory/sim-aws-s3-notification-destinations.d.ts.map +1 -0
  11. package/dist/service/aws/factory/sim-aws-s3-notification-destinations.js +23 -0
  12. package/dist/service/aws/factory/sim-aws-s3-notification-destinations.js.map +1 -0
  13. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +3 -0
  14. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  15. package/dist/service/aws/factory/sim-aws-service-factory.js +4 -0
  16. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  17. package/dist/service/aws/sim-aws-account-region-scope.d.ts +5 -0
  18. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  19. package/dist/service/aws/sim-aws-account-region-scope.js +6 -0
  20. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  21. package/dist/service/aws/sim-aws-service-accessors.d.ts +3 -0
  22. package/dist/service/aws/sim-aws-service-accessors.d.ts.map +1 -1
  23. package/dist/service/aws/sim-aws-service-accessors.js +4 -0
  24. package/dist/service/aws/sim-aws-service-accessors.js.map +1 -1
  25. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-cfn-value-adapter.d.ts +4 -0
  26. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-cfn-value-adapter.d.ts.map +1 -1
  27. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-cfn-value-adapter.js +19 -2
  28. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-cfn-value-adapter.js.map +1 -1
  29. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.d.ts +20 -4
  30. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.d.ts.map +1 -1
  31. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.js +28 -6
  32. package/dist/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.js.map +1 -1
  33. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.d.ts +26 -0
  34. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.d.ts.map +1 -0
  35. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.js +28 -0
  36. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.js.map +1 -0
  37. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts +26 -0
  38. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.d.ts.map +1 -0
  39. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js +27 -0
  40. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.js.map +1 -0
  41. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.d.ts +17 -0
  42. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.d.ts.map +1 -0
  43. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.js +62 -0
  44. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.js.map +1 -0
  45. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.d.ts +37 -0
  46. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.d.ts.map +1 -0
  47. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.js +88 -0
  48. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.js.map +1 -0
  49. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.d.ts +23 -0
  50. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.d.ts.map +1 -0
  51. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.js +151 -0
  52. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.js.map +1 -0
  53. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property.d.ts +29 -0
  54. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property.d.ts.map +1 -0
  55. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property.js +26 -0
  56. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property.js.map +1 -0
  57. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replica-rules.d.ts +15 -0
  58. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replica-rules.d.ts.map +1 -0
  59. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replica-rules.js +98 -0
  60. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replica-rules.js.map +1 -0
  61. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replicas.d.ts +48 -0
  62. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replicas.d.ts.map +1 -0
  63. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replicas.js +78 -0
  64. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-replicas.js.map +1 -0
  65. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-resource.factory.d.ts +53 -0
  66. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-resource.factory.d.ts.map +1 -0
  67. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-resource.factory.js +46 -0
  68. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-resource.factory.js.map +1 -0
  69. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-simulated.d.ts +18 -0
  70. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-simulated.d.ts.map +1 -0
  71. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-simulated.js +41 -0
  72. package/dist/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-simulated.js.map +1 -0
  73. package/dist/service/dynamodb/cfn/{table/sim-cfn-dynamodb-table-property-error.d.ts → property/sim-cfn-dynamodb-property-error.d.ts} +9 -5
  74. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-error.d.ts.map +1 -0
  75. package/dist/service/dynamodb/cfn/{table/sim-cfn-dynamodb-table-property-error.js → property/sim-cfn-dynamodb-property-error.js} +11 -7
  76. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-error.js.map +1 -0
  77. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-rules.d.ts +54 -0
  78. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-rules.d.ts.map +1 -0
  79. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-rules.js +71 -0
  80. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-rules.js.map +1 -0
  81. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-scalars.d.ts +17 -0
  82. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-scalars.d.ts.map +1 -0
  83. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-scalars.js +35 -0
  84. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-scalars.js.map +1 -0
  85. package/dist/service/dynamodb/cfn/{table/sim-cfn-dynamodb-table-values.d.ts → property/sim-cfn-dynamodb-property-values.d.ts} +23 -17
  86. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-values.d.ts.map +1 -0
  87. package/dist/service/dynamodb/cfn/{table/sim-cfn-dynamodb-table-values.js → property/sim-cfn-dynamodb-property-values.js} +33 -30
  88. package/dist/service/dynamodb/cfn/property/sim-cfn-dynamodb-property-values.js.map +1 -0
  89. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts +6 -4
  90. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.d.ts.map +1 -1
  91. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js +15 -5
  92. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-factory.js.map +1 -1
  93. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-type.d.ts +14 -0
  94. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-type.d.ts.map +1 -0
  95. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-type.js +14 -0
  96. package/dist/service/dynamodb/cfn/sim-cfn-dynamodb-resource-type.js.map +1 -0
  97. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.d.ts +8 -26
  98. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.d.ts.map +1 -1
  99. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.js +23 -59
  100. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.js.map +1 -1
  101. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.d.ts +2 -2
  102. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.d.ts.map +1 -1
  103. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.js.map +1 -1
  104. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.d.ts +2 -2
  105. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.d.ts.map +1 -1
  106. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.js.map +1 -1
  107. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts.map +1 -1
  108. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js +4 -2
  109. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js.map +1 -1
  110. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts +2 -3
  111. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts.map +1 -1
  112. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js +13 -18
  113. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js.map +1 -1
  114. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-resource.factory.d.ts +7 -0
  115. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-resource.factory.d.ts.map +1 -1
  116. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-resource.factory.js +5 -2
  117. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-resource.factory.js.map +1 -1
  118. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.d.ts +3 -15
  119. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.d.ts.map +1 -1
  120. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.js +11 -33
  121. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream-rules.js.map +1 -1
  122. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.d.ts +2 -2
  123. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.d.ts.map +1 -1
  124. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-stream.js.map +1 -1
  125. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.d.ts +2 -2
  126. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.d.ts.map +1 -1
  127. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.js.map +1 -1
  128. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-time-to-live.d.ts +2 -2
  129. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-time-to-live.d.ts.map +1 -1
  130. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-time-to-live.js.map +1 -1
  131. package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.d.ts +26 -0
  132. package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.d.ts.map +1 -0
  133. package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.js +45 -0
  134. package/dist/service/rekognition/command/authorize/sim-rekognition-authorizer.js.map +1 -0
  135. package/dist/service/rekognition/command/detect-faces/detect-faces-request.d.ts +12 -0
  136. package/dist/service/rekognition/command/detect-faces/detect-faces-request.d.ts.map +1 -0
  137. package/dist/service/rekognition/command/detect-faces/detect-faces-request.js +18 -0
  138. package/dist/service/rekognition/command/detect-faces/detect-faces-request.js.map +1 -0
  139. package/dist/service/rekognition/command/detect-faces/detect-faces.command.d.ts +133 -0
  140. package/dist/service/rekognition/command/detect-faces/detect-faces.command.d.ts.map +1 -0
  141. package/dist/service/rekognition/command/detect-faces/detect-faces.command.js +2 -0
  142. package/dist/service/rekognition/command/detect-faces/detect-faces.command.js.map +1 -0
  143. package/dist/service/rekognition/command/detect-faces/detect-faces.handler.d.ts +35 -0
  144. package/dist/service/rekognition/command/detect-faces/detect-faces.handler.d.ts.map +1 -0
  145. package/dist/service/rekognition/command/detect-faces/detect-faces.handler.js +39 -0
  146. package/dist/service/rekognition/command/detect-faces/detect-faces.handler.js.map +1 -0
  147. package/dist/service/rekognition/command/detect-labels/detect-labels-request.d.ts +30 -0
  148. package/dist/service/rekognition/command/detect-labels/detect-labels-request.d.ts.map +1 -0
  149. package/dist/service/rekognition/command/detect-labels/detect-labels-request.js +71 -0
  150. package/dist/service/rekognition/command/detect-labels/detect-labels-request.js.map +1 -0
  151. package/dist/service/rekognition/command/detect-labels/detect-labels.command.d.ts +57 -0
  152. package/dist/service/rekognition/command/detect-labels/detect-labels.command.d.ts.map +1 -0
  153. package/dist/service/rekognition/command/detect-labels/detect-labels.command.js +2 -0
  154. package/dist/service/rekognition/command/detect-labels/detect-labels.command.js.map +1 -0
  155. package/dist/service/rekognition/command/detect-labels/detect-labels.handler.d.ts +35 -0
  156. package/dist/service/rekognition/command/detect-labels/detect-labels.handler.d.ts.map +1 -0
  157. package/dist/service/rekognition/command/detect-labels/detect-labels.handler.js +41 -0
  158. package/dist/service/rekognition/command/detect-labels/detect-labels.handler.js.map +1 -0
  159. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels-request.d.ts +17 -0
  160. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels-request.d.ts.map +1 -0
  161. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels-request.js +30 -0
  162. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels-request.js.map +1 -0
  163. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.command.d.ts +42 -0
  164. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.command.d.ts.map +1 -0
  165. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.command.js +2 -0
  166. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.command.js.map +1 -0
  167. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.handler.d.ts +36 -0
  168. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.handler.d.ts.map +1 -0
  169. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.handler.js +47 -0
  170. package/dist/service/rekognition/command/detect-moderation-labels/detect-moderation-labels.handler.js.map +1 -0
  171. package/dist/service/rekognition/command/sim-rekognition-min-confidence.d.ts +19 -0
  172. package/dist/service/rekognition/command/sim-rekognition-min-confidence.d.ts.map +1 -0
  173. package/dist/service/rekognition/command/sim-rekognition-min-confidence.js +34 -0
  174. package/dist/service/rekognition/command/sim-rekognition-min-confidence.js.map +1 -0
  175. package/dist/service/rekognition/command/sim-rekognition-request-options.d.ts +16 -0
  176. package/dist/service/rekognition/command/sim-rekognition-request-options.d.ts.map +1 -0
  177. package/dist/service/rekognition/command/sim-rekognition-request-options.js +2 -0
  178. package/dist/service/rekognition/command/sim-rekognition-request-options.js.map +1 -0
  179. package/dist/service/rekognition/command/sim-rekognition-unsimulated-input.d.ts +19 -0
  180. package/dist/service/rekognition/command/sim-rekognition-unsimulated-input.d.ts.map +1 -0
  181. package/dist/service/rekognition/command/sim-rekognition-unsimulated-input.js +30 -0
  182. package/dist/service/rekognition/command/sim-rekognition-unsimulated-input.js.map +1 -0
  183. package/dist/service/rekognition/error/sim-rekognition.error.d.ts +87 -0
  184. package/dist/service/rekognition/error/sim-rekognition.error.d.ts.map +1 -0
  185. package/dist/service/rekognition/error/sim-rekognition.error.js +95 -0
  186. package/dist/service/rekognition/error/sim-rekognition.error.js.map +1 -0
  187. package/dist/service/rekognition/face/sim-rekognition-declared-value.d.ts +26 -0
  188. package/dist/service/rekognition/face/sim-rekognition-declared-value.d.ts.map +1 -0
  189. package/dist/service/rekognition/face/sim-rekognition-declared-value.js +28 -0
  190. package/dist/service/rekognition/face/sim-rekognition-declared-value.js.map +1 -0
  191. package/dist/service/rekognition/face/sim-rekognition-detected-face.d.ts +29 -0
  192. package/dist/service/rekognition/face/sim-rekognition-detected-face.d.ts.map +1 -0
  193. package/dist/service/rekognition/face/sim-rekognition-detected-face.js +53 -0
  194. package/dist/service/rekognition/face/sim-rekognition-detected-face.js.map +1 -0
  195. package/dist/service/rekognition/face/sim-rekognition-emotion-name.d.ts +18 -0
  196. package/dist/service/rekognition/face/sim-rekognition-emotion-name.d.ts.map +1 -0
  197. package/dist/service/rekognition/face/sim-rekognition-emotion-name.js +27 -0
  198. package/dist/service/rekognition/face/sim-rekognition-emotion-name.js.map +1 -0
  199. package/dist/service/rekognition/face/sim-rekognition-face-age-and-gender.d.ts +24 -0
  200. package/dist/service/rekognition/face/sim-rekognition-face-age-and-gender.d.ts.map +1 -0
  201. package/dist/service/rekognition/face/sim-rekognition-face-age-and-gender.js +62 -0
  202. package/dist/service/rekognition/face/sim-rekognition-face-age-and-gender.js.map +1 -0
  203. package/dist/service/rekognition/face/sim-rekognition-face-attributes.d.ts +41 -0
  204. package/dist/service/rekognition/face/sim-rekognition-face-attributes.d.ts.map +1 -0
  205. package/dist/service/rekognition/face/sim-rekognition-face-attributes.js +75 -0
  206. package/dist/service/rekognition/face/sim-rekognition-face-attributes.js.map +1 -0
  207. package/dist/service/rekognition/face/sim-rekognition-face-declaration.d.ts +116 -0
  208. package/dist/service/rekognition/face/sim-rekognition-face-declaration.d.ts.map +1 -0
  209. package/dist/service/rekognition/face/sim-rekognition-face-declaration.js +2 -0
  210. package/dist/service/rekognition/face/sim-rekognition-face-declaration.js.map +1 -0
  211. package/dist/service/rekognition/face/sim-rekognition-face-defaults.d.ts +31 -0
  212. package/dist/service/rekognition/face/sim-rekognition-face-defaults.d.ts.map +1 -0
  213. package/dist/service/rekognition/face/sim-rekognition-face-defaults.js +120 -0
  214. package/dist/service/rekognition/face/sim-rekognition-face-defaults.js.map +1 -0
  215. package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.d.ts +31 -0
  216. package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.d.ts.map +1 -0
  217. package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.js +38 -0
  218. package/dist/service/rekognition/face/sim-rekognition-face-detail-builder.js.map +1 -0
  219. package/dist/service/rekognition/face/sim-rekognition-face-detection.d.ts +21 -0
  220. package/dist/service/rekognition/face/sim-rekognition-face-detection.d.ts.map +1 -0
  221. package/dist/service/rekognition/face/sim-rekognition-face-detection.js +33 -0
  222. package/dist/service/rekognition/face/sim-rekognition-face-detection.js.map +1 -0
  223. package/dist/service/rekognition/face/sim-rekognition-face-emotions.d.ts +23 -0
  224. package/dist/service/rekognition/face/sim-rekognition-face-emotions.d.ts.map +1 -0
  225. package/dist/service/rekognition/face/sim-rekognition-face-emotions.js +55 -0
  226. package/dist/service/rekognition/face/sim-rekognition-face-emotions.js.map +1 -0
  227. package/dist/service/rekognition/face/sim-rekognition-face-eye-direction.d.ts +19 -0
  228. package/dist/service/rekognition/face/sim-rekognition-face-eye-direction.d.ts.map +1 -0
  229. package/dist/service/rekognition/face/sim-rekognition-face-eye-direction.js +31 -0
  230. package/dist/service/rekognition/face/sim-rekognition-face-eye-direction.js.map +1 -0
  231. package/dist/service/rekognition/face/sim-rekognition-face-feature-members.d.ts +56 -0
  232. package/dist/service/rekognition/face/sim-rekognition-face-feature-members.d.ts.map +1 -0
  233. package/dist/service/rekognition/face/sim-rekognition-face-feature-members.js +22 -0
  234. package/dist/service/rekognition/face/sim-rekognition-face-feature-members.js.map +1 -0
  235. package/dist/service/rekognition/face/sim-rekognition-face-features.d.ts +19 -0
  236. package/dist/service/rekognition/face/sim-rekognition-face-features.d.ts.map +1 -0
  237. package/dist/service/rekognition/face/sim-rekognition-face-features.js +39 -0
  238. package/dist/service/rekognition/face/sim-rekognition-face-features.js.map +1 -0
  239. package/dist/service/rekognition/face/sim-rekognition-face-frame.d.ts +27 -0
  240. package/dist/service/rekognition/face/sim-rekognition-face-frame.d.ts.map +1 -0
  241. package/dist/service/rekognition/face/sim-rekognition-face-frame.js +74 -0
  242. package/dist/service/rekognition/face/sim-rekognition-face-frame.js.map +1 -0
  243. package/dist/service/rekognition/face/sim-rekognition-face-landmark-points.d.ts +25 -0
  244. package/dist/service/rekognition/face/sim-rekognition-face-landmark-points.d.ts.map +1 -0
  245. package/dist/service/rekognition/face/sim-rekognition-face-landmark-points.js +89 -0
  246. package/dist/service/rekognition/face/sim-rekognition-face-landmark-points.js.map +1 -0
  247. package/dist/service/rekognition/face/sim-rekognition-face-landmarks.d.ts +20 -0
  248. package/dist/service/rekognition/face/sim-rekognition-face-landmarks.d.ts.map +1 -0
  249. package/dist/service/rekognition/face/sim-rekognition-face-landmarks.js +32 -0
  250. package/dist/service/rekognition/face/sim-rekognition-face-landmarks.js.map +1 -0
  251. package/dist/service/rekognition/face/sim-rekognition-face-measures.d.ts +27 -0
  252. package/dist/service/rekognition/face/sim-rekognition-face-measures.d.ts.map +1 -0
  253. package/dist/service/rekognition/face/sim-rekognition-face-measures.js +49 -0
  254. package/dist/service/rekognition/face/sim-rekognition-face-measures.js.map +1 -0
  255. package/dist/service/rekognition/face/sim-rekognition-faces.d.ts +36 -0
  256. package/dist/service/rekognition/face/sim-rekognition-faces.d.ts.map +1 -0
  257. package/dist/service/rekognition/face/sim-rekognition-faces.js +49 -0
  258. package/dist/service/rekognition/face/sim-rekognition-faces.js.map +1 -0
  259. package/dist/service/rekognition/face/sim-rekognition-landmark-name.d.ts +30 -0
  260. package/dist/service/rekognition/face/sim-rekognition-landmark-name.d.ts.map +1 -0
  261. package/dist/service/rekognition/face/sim-rekognition-landmark-name.js +66 -0
  262. package/dist/service/rekognition/face/sim-rekognition-landmark-name.js.map +1 -0
  263. package/dist/service/rekognition/image/s3/sim-aws-rekognition-image-objects.d.ts +48 -0
  264. package/dist/service/rekognition/image/s3/sim-aws-rekognition-image-objects.d.ts.map +1 -0
  265. package/dist/service/rekognition/image/s3/sim-aws-rekognition-image-objects.js +78 -0
  266. package/dist/service/rekognition/image/s3/sim-aws-rekognition-image-objects.js.map +1 -0
  267. package/dist/service/rekognition/image/sim-rekognition-bounding-box.d.ts +48 -0
  268. package/dist/service/rekognition/image/sim-rekognition-bounding-box.d.ts.map +1 -0
  269. package/dist/service/rekognition/image/sim-rekognition-bounding-box.js +50 -0
  270. package/dist/service/rekognition/image/sim-rekognition-bounding-box.js.map +1 -0
  271. package/dist/service/rekognition/image/sim-rekognition-image-format.d.ts +17 -0
  272. package/dist/service/rekognition/image/sim-rekognition-image-format.d.ts.map +1 -0
  273. package/dist/service/rekognition/image/sim-rekognition-image-format.js +28 -0
  274. package/dist/service/rekognition/image/sim-rekognition-image-format.js.map +1 -0
  275. package/dist/service/rekognition/image/sim-rekognition-image-hash.d.ts +15 -0
  276. package/dist/service/rekognition/image/sim-rekognition-image-hash.d.ts.map +1 -0
  277. package/dist/service/rekognition/image/sim-rekognition-image-hash.js +20 -0
  278. package/dist/service/rekognition/image/sim-rekognition-image-hash.js.map +1 -0
  279. package/dist/service/rekognition/image/sim-rekognition-image-input.d.ts +23 -0
  280. package/dist/service/rekognition/image/sim-rekognition-image-input.d.ts.map +1 -0
  281. package/dist/service/rekognition/image/sim-rekognition-image-input.js +2 -0
  282. package/dist/service/rekognition/image/sim-rekognition-image-input.js.map +1 -0
  283. package/dist/service/rekognition/image/sim-rekognition-image-objects.d.ts +35 -0
  284. package/dist/service/rekognition/image/sim-rekognition-image-objects.d.ts.map +1 -0
  285. package/dist/service/rekognition/image/sim-rekognition-image-objects.js +21 -0
  286. package/dist/service/rekognition/image/sim-rekognition-image-objects.js.map +1 -0
  287. package/dist/service/rekognition/image/sim-rekognition-image-request.d.ts +59 -0
  288. package/dist/service/rekognition/image/sim-rekognition-image-request.d.ts.map +1 -0
  289. package/dist/service/rekognition/image/sim-rekognition-image-request.js +88 -0
  290. package/dist/service/rekognition/image/sim-rekognition-image-request.js.map +1 -0
  291. package/dist/service/rekognition/image/sim-rekognition-image.d.ts +30 -0
  292. package/dist/service/rekognition/image/sim-rekognition-image.d.ts.map +1 -0
  293. package/dist/service/rekognition/image/sim-rekognition-image.js +36 -0
  294. package/dist/service/rekognition/image/sim-rekognition-image.js.map +1 -0
  295. package/dist/service/rekognition/index.d.ts +18 -0
  296. package/dist/service/rekognition/index.d.ts.map +1 -0
  297. package/dist/service/rekognition/index.js +13 -0
  298. package/dist/service/rekognition/index.js.map +1 -0
  299. package/dist/service/rekognition/label/sim-rekognition-detected-label.d.ts +11 -0
  300. package/dist/service/rekognition/label/sim-rekognition-detected-label.d.ts.map +1 -0
  301. package/dist/service/rekognition/label/sim-rekognition-detected-label.js +49 -0
  302. package/dist/service/rekognition/label/sim-rekognition-detected-label.js.map +1 -0
  303. package/dist/service/rekognition/label/sim-rekognition-label-declaration.d.ts +43 -0
  304. package/dist/service/rekognition/label/sim-rekognition-label-declaration.d.ts.map +1 -0
  305. package/dist/service/rekognition/label/sim-rekognition-label-declaration.js +10 -0
  306. package/dist/service/rekognition/label/sim-rekognition-label-declaration.js.map +1 -0
  307. package/dist/service/rekognition/label/sim-rekognition-label-defaults.d.ts +22 -0
  308. package/dist/service/rekognition/label/sim-rekognition-label-defaults.d.ts.map +1 -0
  309. package/dist/service/rekognition/label/sim-rekognition-label-defaults.js +42 -0
  310. package/dist/service/rekognition/label/sim-rekognition-label-defaults.js.map +1 -0
  311. package/dist/service/rekognition/label/sim-rekognition-label-detection.d.ts +32 -0
  312. package/dist/service/rekognition/label/sim-rekognition-label-detection.d.ts.map +1 -0
  313. package/dist/service/rekognition/label/sim-rekognition-label-detection.js +35 -0
  314. package/dist/service/rekognition/label/sim-rekognition-label-detection.js.map +1 -0
  315. package/dist/service/rekognition/label/sim-rekognition-label-instances.d.ts +19 -0
  316. package/dist/service/rekognition/label/sim-rekognition-label-instances.d.ts.map +1 -0
  317. package/dist/service/rekognition/label/sim-rekognition-label-instances.js +28 -0
  318. package/dist/service/rekognition/label/sim-rekognition-label-instances.js.map +1 -0
  319. package/dist/service/rekognition/label/sim-rekognition-labels.d.ts +30 -0
  320. package/dist/service/rekognition/label/sim-rekognition-labels.d.ts.map +1 -0
  321. package/dist/service/rekognition/label/sim-rekognition-labels.js +38 -0
  322. package/dist/service/rekognition/label/sim-rekognition-labels.js.map +1 -0
  323. package/dist/service/rekognition/moderation/sim-rekognition-moderation-labels.d.ts +29 -0
  324. package/dist/service/rekognition/moderation/sim-rekognition-moderation-labels.d.ts.map +1 -0
  325. package/dist/service/rekognition/moderation/sim-rekognition-moderation-labels.js +85 -0
  326. package/dist/service/rekognition/moderation/sim-rekognition-moderation-labels.js.map +1 -0
  327. package/dist/service/rekognition/moderation/sim-rekognition-moderation-result.d.ts +46 -0
  328. package/dist/service/rekognition/moderation/sim-rekognition-moderation-result.d.ts.map +1 -0
  329. package/dist/service/rekognition/moderation/sim-rekognition-moderation-result.js +79 -0
  330. package/dist/service/rekognition/moderation/sim-rekognition-moderation-result.js.map +1 -0
  331. package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.d.ts +55 -0
  332. package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.d.ts.map +1 -0
  333. package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.js +87 -0
  334. package/dist/service/rekognition/moderation/sim-rekognition-moderation-taxonomy.js.map +1 -0
  335. package/dist/service/rekognition/moderation/sim-rekognition-moderation.d.ts +35 -0
  336. package/dist/service/rekognition/moderation/sim-rekognition-moderation.d.ts.map +1 -0
  337. package/dist/service/rekognition/moderation/sim-rekognition-moderation.js +57 -0
  338. package/dist/service/rekognition/moderation/sim-rekognition-moderation.js.map +1 -0
  339. package/dist/service/rekognition/rule/sim-rekognition-declared-confidence.d.ts +21 -0
  340. package/dist/service/rekognition/rule/sim-rekognition-declared-confidence.d.ts.map +1 -0
  341. package/dist/service/rekognition/rule/sim-rekognition-declared-confidence.js +34 -0
  342. package/dist/service/rekognition/rule/sim-rekognition-declared-confidence.js.map +1 -0
  343. package/dist/service/rekognition/rule/sim-rekognition-result-rules.d.ts +51 -0
  344. package/dist/service/rekognition/rule/sim-rekognition-result-rules.d.ts.map +1 -0
  345. package/dist/service/rekognition/rule/sim-rekognition-result-rules.js +80 -0
  346. package/dist/service/rekognition/rule/sim-rekognition-result-rules.js.map +1 -0
  347. package/dist/service/rekognition/sample/sim-rekognition-sample-image-files.d.ts +27 -0
  348. package/dist/service/rekognition/sample/sim-rekognition-sample-image-files.d.ts.map +1 -0
  349. package/dist/service/rekognition/sample/sim-rekognition-sample-image-files.js +62 -0
  350. package/dist/service/rekognition/sample/sim-rekognition-sample-image-files.js.map +1 -0
  351. package/dist/service/rekognition/sample/sim-rekognition-sample-image.d.ts +26 -0
  352. package/dist/service/rekognition/sample/sim-rekognition-sample-image.d.ts.map +1 -0
  353. package/dist/service/rekognition/sample/sim-rekognition-sample-image.js +32 -0
  354. package/dist/service/rekognition/sample/sim-rekognition-sample-image.js.map +1 -0
  355. package/dist/service/rekognition/sample/sim-rekognition-sample-images.d.ts +52 -0
  356. package/dist/service/rekognition/sample/sim-rekognition-sample-images.d.ts.map +1 -0
  357. package/dist/service/rekognition/sample/sim-rekognition-sample-images.js +63 -0
  358. package/dist/service/rekognition/sample/sim-rekognition-sample-images.js.map +1 -0
  359. package/dist/service/rekognition/sample/sim-rekognition-sample-rules.d.ts +29 -0
  360. package/dist/service/rekognition/sample/sim-rekognition-sample-rules.d.ts.map +1 -0
  361. package/dist/service/rekognition/sample/sim-rekognition-sample-rules.js +31 -0
  362. package/dist/service/rekognition/sample/sim-rekognition-sample-rules.js.map +1 -0
  363. package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.d.ts +20 -0
  364. package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.d.ts.map +1 -0
  365. package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.js +38 -0
  366. package/dist/service/rekognition/sdk/sim-rekognition-sdk-command-router.js.map +1 -0
  367. package/dist/service/rekognition/sim-rekognition.d.ts +95 -0
  368. package/dist/service/rekognition/sim-rekognition.d.ts.map +1 -0
  369. package/dist/service/rekognition/sim-rekognition.js +124 -0
  370. package/dist/service/rekognition/sim-rekognition.js.map +1 -0
  371. package/package.json +7 -2
  372. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.d.ts.map +0 -1
  373. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.js.map +0 -1
  374. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.d.ts.map +0 -1
  375. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.js.map +0 -1
@@ -1,24 +1,29 @@
1
+ import { dynamoDbGlobalTableResourceTypeName } from "../../../../dynamodb/cfn/sim-cfn-dynamodb-resource-type.js";
1
2
  /**
2
3
  * CloudFormation-facing values for a simulated DynamoDB table.
3
4
  */
4
5
  export class SimDynamoDbTableCfn {
5
6
  table;
7
+ resourceTypeName;
6
8
  constructor(properties) {
7
9
  this.table = properties.table;
10
+ this.resourceTypeName = properties.resourceTypeName;
8
11
  }
9
12
  /**
10
- * AWS::DynamoDB::Table Ref returns the table name rather than its ARN, which
11
- * is what makes a Ref usable as a PutItem TableName. It is also what a
13
+ * Both Resource types answer a Ref with the table name rather than its ARN,
14
+ * which is what makes a Ref usable as a PutItem TableName. It is also what a
12
15
  * template hands a function through its environment.
13
16
  */
14
17
  refValue() {
15
18
  return this.table.tableName;
16
19
  }
17
20
  /**
18
- * AWS::DynamoDB::Table attributes.
21
+ * The attributes a table Resource documents.
19
22
  *
20
23
  * `Arn` is what an IAM policy names the table by. `StreamArn` is the ARN of
21
- * the stream the table's `StreamSpecification` gave it.
24
+ * the stream the table's `StreamSpecification` gave it. `TableId` is the
25
+ * table's unique ID, which only AWS::DynamoDB::GlobalTable has an attribute
26
+ * for.
22
27
  */
23
28
  attributeValue(attributeName) {
24
29
  switch (attributeName) {
@@ -28,8 +33,11 @@ export class SimDynamoDbTableCfn {
28
33
  case "StreamArn": {
29
34
  return this.streamArn();
30
35
  }
36
+ case "TableId": {
37
+ return this.tableId();
38
+ }
31
39
  default: {
32
- throw new Error(`Unsupported AWS::DynamoDB::Table attribute ${attributeName}`);
40
+ throw this.unsupported(attributeName);
33
41
  }
34
42
  }
35
43
  }
@@ -44,11 +52,25 @@ export class SimDynamoDbTableCfn {
44
52
  streamArn() {
45
53
  const arn = this.table.stream.latest?.arn;
46
54
  if (arn === undefined) {
47
- throw new Error(`Unsupported AWS::DynamoDB::Table attribute StreamArn: table ` +
55
+ throw new Error(`Unsupported ${this.resourceTypeName} attribute StreamArn: table ` +
48
56
  `${this.table.tableName} has no StreamSpecification, so it has no ` +
49
57
  `stream and no stream ARN`);
50
58
  }
51
59
  return arn;
52
60
  }
61
+ /**
62
+ * The table's unique ID, which AWS::DynamoDB::Table has no attribute for at
63
+ * all, so asking an ordinary table for one is refused as the unknown
64
+ * attribute it is.
65
+ */
66
+ tableId() {
67
+ if (this.resourceTypeName !== dynamoDbGlobalTableResourceTypeName) {
68
+ throw this.unsupported("TableId");
69
+ }
70
+ return this.table.tableId;
71
+ }
72
+ unsupported(attributeName) {
73
+ return new Error(`Unsupported ${this.resourceTypeName} attribute ${attributeName}`);
74
+ }
53
75
  }
54
76
  //# sourceMappingURL=sim-dynamodb-table-cfn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-cfn.js","sourceRoot":"","sources":["../../../../../../src/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACb,KAAK,CAAmB;IAEzC,YAAY,UAAyC;QACnD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,aAAqB;QAClC,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACxB,CAAC;YACD,KAAK,WAAW,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,CAAC;YACD,SAAS,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,8CAA8C,aAAa,EAAE,CAC9D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,SAAS;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QAE1C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,8DAA8D;gBAC5D,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,4CAA4C;gBACnE,0BAA0B,CAC7B,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-table-cfn.js","sourceRoot":"","sources":["../../../../../../src/service/cloudformation/resource/cfn/dynamodb/sim-dynamodb-table-cfn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,4DAA4D,CAAC;AAgBjH;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACb,KAAK,CAAmB;IACxB,gBAAgB,CAAS;IAE1C,YAAY,UAAyC;QACnD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,aAAqB;QAClC,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACxB,CAAC;YACD,KAAK,WAAW,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,CAAC;YACD,KAAK,SAAS,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YACD,SAAS,CAAC;gBACR,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,SAAS;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QAE1C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,CAAC,gBAAgB,8BAA8B;gBAChE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,4CAA4C;gBACnE,0BAA0B,CAC7B,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACK,OAAO;QACb,IAAI,IAAI,CAAC,gBAAgB,KAAK,mCAAmC,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEO,WAAW,CAAC,aAAqB;QACvC,OAAO,IAAI,KAAK,CACd,eAAe,IAAI,CAAC,gBAAgB,cAAc,aAAa,EAAE,CAClE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
2
+ import type { SimCfnDynamoDbPropertyValues } from "../property/sim-cfn-dynamodb-property-values.js";
3
+ interface SimCfnDynamoDbGlobalTableCapacitySources {
4
+ readonly read: SimCfnDynamoDbPropertyValues | undefined;
5
+ readonly write: SimCfnDynamoDbPropertyValues | undefined;
6
+ }
7
+ /**
8
+ * The `ProvisionedThroughput` a global table's two capacity settings add up to.
9
+ *
10
+ * A global table splits the capacity an ordinary table states in one place:
11
+ * writes are the table's, since every replica takes the same writes, and reads
12
+ * belong to the replica doing them. One replica is one of each, so the two go
13
+ * back together into the property CreateTable takes.
14
+ *
15
+ * Each half is read here rather than passed through, so a capacity the template
16
+ * wrote as something other than a number is refused at the path a global table
17
+ * puts it at rather than at the one an ordinary table would have.
18
+ *
19
+ * A table that states neither half has no `ProvisionedThroughput` at all, which
20
+ * is what an on-demand table looks like. A table stating one of them keeps the
21
+ * gap, so CreateTable refuses it in its own words rather than being handed a
22
+ * capacity nothing asked for.
23
+ */
24
+ export declare function simCfnDynamoDbGlobalTableCapacity(sources: SimCfnDynamoDbGlobalTableCapacitySources): SimCfnTemplateValueRecord | undefined;
25
+ export {};
26
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-capacity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-capacity.d.ts","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAGpG,UAAU,wCAAwC;IAChD,QAAQ,CAAC,IAAI,EAAE,4BAA4B,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,KAAK,EAAE,4BAA4B,GAAG,SAAS,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,yBAAyB,GAAG,SAAS,CAevC"}
@@ -0,0 +1,28 @@
1
+ import { simCfnDynamoDbGlobalTableEntry } from "./sim-cfn-dynamodb-global-table-property.js";
2
+ /**
3
+ * The `ProvisionedThroughput` a global table's two capacity settings add up to.
4
+ *
5
+ * A global table splits the capacity an ordinary table states in one place:
6
+ * writes are the table's, since every replica takes the same writes, and reads
7
+ * belong to the replica doing them. One replica is one of each, so the two go
8
+ * back together into the property CreateTable takes.
9
+ *
10
+ * Each half is read here rather than passed through, so a capacity the template
11
+ * wrote as something other than a number is refused at the path a global table
12
+ * puts it at rather than at the one an ordinary table would have.
13
+ *
14
+ * A table that states neither half has no `ProvisionedThroughput` at all, which
15
+ * is what an on-demand table looks like. A table stating one of them keeps the
16
+ * gap, so CreateTable refuses it in its own words rather than being handed a
17
+ * capacity nothing asked for.
18
+ */
19
+ export function simCfnDynamoDbGlobalTableCapacity(sources) {
20
+ if (sources.read === undefined && sources.write === undefined) {
21
+ return undefined;
22
+ }
23
+ return Object.fromEntries([
24
+ ...simCfnDynamoDbGlobalTableEntry("ReadCapacityUnits", sources.read?.number("ReadCapacityUnits")),
25
+ ...simCfnDynamoDbGlobalTableEntry("WriteCapacityUnits", sources.write?.number("WriteCapacityUnits")),
26
+ ]);
27
+ }
28
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-capacity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-capacity.js","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-capacity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAO7F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iCAAiC,CAC/C,OAAiD;IAEjD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CAAC;QACxB,GAAG,8BAA8B,CAC/B,mBAAmB,EACnB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAC1C;QACD,GAAG,8BAA8B,CAC/B,oBAAoB,EACpB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAC5C;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ import type { SimDynamoDbTable } from "../../table/sim-dynamodb-table.js";
4
+ import type { SimCfnDynamoDbTableCreator } from "../table/sim-cfn-dynamodb-table-creator.js";
5
+ interface SimCfnDynamoDbGlobalTableCreatorProperties {
6
+ readonly tableCreator: SimCfnDynamoDbTableCreator;
7
+ }
8
+ /**
9
+ * Creates simulated tables from AWS::DynamoDB::GlobalTable Resources.
10
+ *
11
+ * A global table naming one replica is turned into the AWS::DynamoDB::Table it
12
+ * is and created down the path an ordinary table already takes, so the table a
13
+ * `TableV2` stack deployed is the same thing a `Table` stack would have got:
14
+ * the same name generation, the same CreateTable rules, the same refusals for
15
+ * what this simulation does not model.
16
+ */
17
+ export declare class SimCfnDynamoDbGlobalTableCreator {
18
+ private readonly tableCreator;
19
+ constructor(properties: SimCfnDynamoDbGlobalTableCreatorProperties);
20
+ /**
21
+ * Create a table from an AWS::DynamoDB::GlobalTable Resource.
22
+ */
23
+ create(resource: SimCfnResource, properties: SimCfnTemplateValueRecord): Promise<SimDynamoDbTable>;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-creator.d.ts","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAG7F,UAAU,0CAA0C;IAClD,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAC;CACnD;AAED;;;;;;;;GAQG;AACH,qBAAa,gCAAgC;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAE1D,YAAY,UAAU,EAAE,0CAA0C,EAEjE;IAED;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAU3B;CACF"}
@@ -0,0 +1,27 @@
1
+ import { SimCfnDynamoDbGlobalTableProperties } from "./sim-cfn-dynamodb-global-table-properties.js";
2
+ /**
3
+ * Creates simulated tables from AWS::DynamoDB::GlobalTable Resources.
4
+ *
5
+ * A global table naming one replica is turned into the AWS::DynamoDB::Table it
6
+ * is and created down the path an ordinary table already takes, so the table a
7
+ * `TableV2` stack deployed is the same thing a `Table` stack would have got:
8
+ * the same name generation, the same CreateTable rules, the same refusals for
9
+ * what this simulation does not model.
10
+ */
11
+ export class SimCfnDynamoDbGlobalTableCreator {
12
+ tableCreator;
13
+ constructor(properties) {
14
+ this.tableCreator = properties.tableCreator;
15
+ }
16
+ /**
17
+ * Create a table from an AWS::DynamoDB::GlobalTable Resource.
18
+ */
19
+ async create(resource, properties) {
20
+ const globalTable = new SimCfnDynamoDbGlobalTableProperties({
21
+ resource,
22
+ properties,
23
+ });
24
+ return await this.tableCreator.create(resource, globalTable.tableProperties());
25
+ }
26
+ }
27
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-creator.js","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-creator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mCAAmC,EAAE,MAAM,+CAA+C,CAAC;AAMpG;;;;;;;;GAQG;AACH,MAAM,OAAO,gCAAgC;IAC1B,YAAY,CAA6B;IAE1D,YAAY,UAAsD;QAChE,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,UAAqC;QAErC,MAAM,WAAW,GAAG,IAAI,mCAAmC,CAAC;YAC1D,QAAQ;YACR,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CACnC,QAAQ,EACR,WAAW,CAAC,eAAe,EAAE,CAC9B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { SimCfnTemplateValue } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
2
+ import type { SimCfnDynamoDbPropertyValues } from "../property/sim-cfn-dynamodb-property-values.js";
3
+ /**
4
+ * The `GlobalSecondaryIndexes` an AWS::DynamoDB::Table would carry, built from
5
+ * the two halves a global table splits each index into.
6
+ *
7
+ * The table names the index and what it projects, and provisions its writes.
8
+ * The replica provisions its reads, naming the index it is talking about rather
9
+ * than restating it. Putting them back together is what makes an index on a
10
+ * global table the index an ordinary table's template would have declared.
11
+ *
12
+ * A table declaring the property at all keeps it, even holding no indexes, so
13
+ * an empty list stays an empty list rather than becoming a table that never
14
+ * mentioned indexes.
15
+ */
16
+ export declare function simCfnDynamoDbGlobalTableIndexes(values: SimCfnDynamoDbPropertyValues, replica: SimCfnDynamoDbPropertyValues): SimCfnTemplateValue | undefined;
17
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-indexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-indexes.d.ts","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAEpB,MAAM,kEAAkE,CAAC;AAC1E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAQpG;;;;;;;;;;;;GAYG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,4BAA4B,EACpC,OAAO,EAAE,4BAA4B,GACpC,mBAAmB,GAAG,SAAS,CAejC"}
@@ -0,0 +1,62 @@
1
+ import { simCfnDynamoDbGlobalTableCapacity } from "./sim-cfn-dynamodb-global-table-capacity.js";
2
+ import { simCfnDynamoDbGlobalTableEntry, simCfnDynamoDbGlobalTableProperty, } from "./sim-cfn-dynamodb-global-table-property.js";
3
+ /**
4
+ * The `GlobalSecondaryIndexes` an AWS::DynamoDB::Table would carry, built from
5
+ * the two halves a global table splits each index into.
6
+ *
7
+ * The table names the index and what it projects, and provisions its writes.
8
+ * The replica provisions its reads, naming the index it is talking about rather
9
+ * than restating it. Putting them back together is what makes an index on a
10
+ * global table the index an ordinary table's template would have declared.
11
+ *
12
+ * A table declaring the property at all keeps it, even holding no indexes, so
13
+ * an empty list stays an empty list rather than becoming a table that never
14
+ * mentioned indexes.
15
+ */
16
+ export function simCfnDynamoDbGlobalTableIndexes(values, replica) {
17
+ if (values.value("GlobalSecondaryIndexes") === undefined) {
18
+ return undefined;
19
+ }
20
+ const readSettings = replicaReadSettings(replica);
21
+ return values.list("GlobalSecondaryIndexes").map((index) => {
22
+ const indexName = index.string("IndexName");
23
+ return tableIndex(index, indexName === undefined ? undefined : readSettings.get(indexName));
24
+ });
25
+ }
26
+ /**
27
+ * One index, as the table declared it and the replica provisioned it.
28
+ */
29
+ function tableIndex(index, replicaIndex) {
30
+ return Object.fromEntries([
31
+ ...simCfnDynamoDbGlobalTableProperty(index, [
32
+ "IndexName",
33
+ "KeySchema",
34
+ "Projection",
35
+ ]),
36
+ ...namedCapacity(index, replicaIndex),
37
+ ]);
38
+ }
39
+ /**
40
+ * The `ProvisionedThroughput` entry an index gets, where either half of its
41
+ * capacity was stated.
42
+ */
43
+ function namedCapacity(index, replicaIndex) {
44
+ return simCfnDynamoDbGlobalTableEntry("ProvisionedThroughput", simCfnDynamoDbGlobalTableCapacity({
45
+ read: replicaIndex?.object("ReadProvisionedThroughputSettings"),
46
+ write: index.object("WriteProvisionedThroughputSettings"),
47
+ }));
48
+ }
49
+ /**
50
+ * The replica's per-index read settings, by the index they name.
51
+ *
52
+ * An entry naming no index is left out rather than matched to something, since
53
+ * there is nothing it could be about. CreateTable is where an index with no
54
+ * name is refused.
55
+ */
56
+ function replicaReadSettings(replica) {
57
+ return new Map(replica.list("GlobalSecondaryIndexes").flatMap((index) => {
58
+ const indexName = index.string("IndexName");
59
+ return indexName === undefined ? [] : [[indexName, index]];
60
+ }));
61
+ }
62
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-indexes.js","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-indexes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAEL,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,6CAA6C,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAoC,EACpC,OAAqC;IAErC,IAAI,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,UAAU,CACf,KAAK,EACL,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAClE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CACjB,KAAmC,EACnC,YAAsD;IAEtD,OAAO,MAAM,CAAC,WAAW,CAAC;QACxB,GAAG,iCAAiC,CAAC,KAAK,EAAE;YAC1C,WAAW;YACX,WAAW;YACX,YAAY;SACb,CAAC;QACF,GAAG,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC;KACtC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CACpB,KAAmC,EACnC,YAAsD;IAEtD,OAAO,8BAA8B,CACnC,uBAAuB,EACvB,iCAAiC,CAAC;QAChC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,mCAAmC,CAAC;QAC/D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC;KAC1D,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAC1B,OAAqC;IAErC,OAAO,IAAI,GAAG,CACZ,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAU,CAAC,CAAC;IACtE,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { SimCfnResource } from "../../../cloudformation/resource/sim-cfn-resource.js";
2
+ import type { SimCfnTemplateValueRecord } from "../../../cloudformation/template/value/sim-cfn-template-value.js";
3
+ interface SimCfnDynamoDbGlobalTablePropertiesProperties {
4
+ readonly resource: SimCfnResource;
5
+ readonly properties: SimCfnTemplateValueRecord;
6
+ }
7
+ /**
8
+ * Reads an AWS::DynamoDB::GlobalTable Resource into the AWS::DynamoDB::Table
9
+ * Resource it is.
10
+ *
11
+ * A global table with one replica is an ordinary table in that region, so it is
12
+ * turned into one and deployed down the path an ordinary table already takes.
13
+ * Nothing about what a key schema, a projection or a billing mode is allowed to
14
+ * be is decided here: most properties are handed on in the shape the template
15
+ * wrote them, and CreateTable is where they are checked.
16
+ *
17
+ * What is decided here is what a global table says differently. The replica
18
+ * carries the settings an ordinary table carries itself, capacity is split
19
+ * between the table's writes and the replica's reads, and there are properties
20
+ * about replication that have nothing to be true of on one table in one region.
21
+ */
22
+ export declare class SimCfnDynamoDbGlobalTableProperties {
23
+ private readonly logicalId;
24
+ private readonly values;
25
+ private readonly replicas;
26
+ constructor(properties: SimCfnDynamoDbGlobalTablePropertiesProperties);
27
+ /**
28
+ * The AWS::DynamoDB::Table properties this global table is, refusing
29
+ * everything about it that is not simulated on the way.
30
+ *
31
+ * The replica is settled first, since a table replicating across regions is
32
+ * skipped whatever else it asks for.
33
+ */
34
+ tableProperties(): SimCfnTemplateValueRecord;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-properties.d.ts","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAmClH,UAAU,6CAA6C;IACrD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;CAChD;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mCAAmC;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAE7D,YAAY,UAAU,EAAE,6CAA6C,EAYpE;IAED;;;;;;OAMG;IACH,eAAe,IAAI,yBAAyB,CAwB3C;CACF"}
@@ -0,0 +1,88 @@
1
+ import { SimCfnDynamoDbPropertyValues } from "../property/sim-cfn-dynamodb-property-values.js";
2
+ import { dynamoDbGlobalTableResourceTypeName } from "../sim-cfn-dynamodb-resource-type.js";
3
+ import { simCfnDynamoDbGlobalTableCapacity } from "./sim-cfn-dynamodb-global-table-capacity.js";
4
+ import { simCfnDynamoDbGlobalTableIndexes } from "./sim-cfn-dynamodb-global-table-indexes.js";
5
+ import { simCfnDynamoDbGlobalTableEntry, simCfnDynamoDbGlobalTableProperty, } from "./sim-cfn-dynamodb-global-table-property.js";
6
+ import { SimCfnDynamoDbGlobalTableReplicas } from "./sim-cfn-dynamodb-global-table-replicas.js";
7
+ import { assertSimCfnDynamoDbGlobalTableSimulated } from "./sim-cfn-dynamodb-global-table-simulated.js";
8
+ /**
9
+ * The properties a global table states the same way an ordinary table does.
10
+ */
11
+ const tableWordedPropertyNames = [
12
+ "AttributeDefinitions",
13
+ "BillingMode",
14
+ "KeySchema",
15
+ "LocalSecondaryIndexes",
16
+ "StreamSpecification",
17
+ "TableName",
18
+ "TimeToLiveSpecification",
19
+ ];
20
+ /**
21
+ * The properties a global table puts on its replica and an ordinary table puts
22
+ * on itself.
23
+ */
24
+ const replicaWordedPropertyNames = [
25
+ "DeletionProtectionEnabled",
26
+ "TableClass",
27
+ "Tags",
28
+ ];
29
+ /**
30
+ * Reads an AWS::DynamoDB::GlobalTable Resource into the AWS::DynamoDB::Table
31
+ * Resource it is.
32
+ *
33
+ * A global table with one replica is an ordinary table in that region, so it is
34
+ * turned into one and deployed down the path an ordinary table already takes.
35
+ * Nothing about what a key schema, a projection or a billing mode is allowed to
36
+ * be is decided here: most properties are handed on in the shape the template
37
+ * wrote them, and CreateTable is where they are checked.
38
+ *
39
+ * What is decided here is what a global table says differently. The replica
40
+ * carries the settings an ordinary table carries itself, capacity is split
41
+ * between the table's writes and the replica's reads, and there are properties
42
+ * about replication that have nothing to be true of on one table in one region.
43
+ */
44
+ export class SimCfnDynamoDbGlobalTableProperties {
45
+ logicalId;
46
+ values;
47
+ replicas;
48
+ constructor(properties) {
49
+ this.logicalId = properties.resource.logicalId;
50
+ this.values = new SimCfnDynamoDbPropertyValues({
51
+ resourceTypeName: dynamoDbGlobalTableResourceTypeName,
52
+ logicalId: this.logicalId,
53
+ properties: properties.properties,
54
+ });
55
+ this.replicas = new SimCfnDynamoDbGlobalTableReplicas({
56
+ logicalId: this.logicalId,
57
+ regionName: properties.resource.accountRegionScope.regionName,
58
+ values: this.values,
59
+ });
60
+ }
61
+ /**
62
+ * The AWS::DynamoDB::Table properties this global table is, refusing
63
+ * everything about it that is not simulated on the way.
64
+ *
65
+ * The replica is settled first, since a table replicating across regions is
66
+ * skipped whatever else it asks for.
67
+ */
68
+ tableProperties() {
69
+ const replica = this.replicas.single();
70
+ assertSimCfnDynamoDbGlobalTableSimulated({
71
+ logicalId: this.logicalId,
72
+ values: this.values,
73
+ replica,
74
+ });
75
+ const indexes = simCfnDynamoDbGlobalTableIndexes(this.values, replica);
76
+ const capacity = simCfnDynamoDbGlobalTableCapacity({
77
+ read: replica.object("ReadProvisionedThroughputSettings"),
78
+ write: this.values.object("WriteProvisionedThroughputSettings"),
79
+ });
80
+ return Object.fromEntries([
81
+ ...simCfnDynamoDbGlobalTableProperty(this.values, tableWordedPropertyNames),
82
+ ...simCfnDynamoDbGlobalTableProperty(replica, replicaWordedPropertyNames),
83
+ ...simCfnDynamoDbGlobalTableEntry("GlobalSecondaryIndexes", indexes),
84
+ ...simCfnDynamoDbGlobalTableEntry("ProvisionedThroughput", capacity),
85
+ ]);
86
+ }
87
+ }
88
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-properties.js","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-properties.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,wCAAwC,EAAE,MAAM,8CAA8C,CAAC;AAExG;;GAEG;AACH,MAAM,wBAAwB,GAAsB;IAClD,sBAAsB;IACtB,aAAa;IACb,WAAW;IACX,uBAAuB;IACvB,qBAAqB;IACrB,WAAW;IACX,yBAAyB;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,0BAA0B,GAAsB;IACpD,2BAA2B;IAC3B,YAAY;IACZ,MAAM;CACP,CAAC;AAOF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,mCAAmC;IAC7B,SAAS,CAAS;IAClB,MAAM,CAA+B;IACrC,QAAQ,CAAoC;IAE7D,YAAY,UAAyD;QACnE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,4BAA4B,CAAC;YAC7C,gBAAgB,EAAE,mCAAmC;YACrD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,UAAU,CAAC,UAAU;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,iCAAiC,CAAC;YACpD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU;YAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,eAAe;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAEvC,wCAAwC,CAAC;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,gCAAgC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,iCAAiC,CAAC;YACjD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,mCAAmC,CAAC;YACzD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAAC;SAChE,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,WAAW,CAAC;YACxB,GAAG,iCAAiC,CAClC,IAAI,CAAC,MAAM,EACX,wBAAwB,CACzB;YACD,GAAG,iCAAiC,CAAC,OAAO,EAAE,0BAA0B,CAAC;YACzE,GAAG,8BAA8B,CAAC,wBAAwB,EAAE,OAAO,CAAC;YACpE,GAAG,8BAA8B,CAAC,uBAAuB,EAAE,QAAQ,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import { SimCfnDynamoDbPropertyRules } from "../property/sim-cfn-dynamodb-property-rules.js";
2
+ /**
3
+ * The rules the Resource's own properties are read under.
4
+ */
5
+ export declare function simCfnDynamoDbGlobalTableRules(logicalId: string): SimCfnDynamoDbPropertyRules;
6
+ /**
7
+ * The rules a `GlobalSecondaryIndexes` entry on the table itself is read under.
8
+ */
9
+ export declare function simCfnDynamoDbGlobalTableIndexRules(logicalId: string): SimCfnDynamoDbPropertyRules;
10
+ /**
11
+ * The rules a `LocalSecondaryIndexes` entry is read under.
12
+ */
13
+ export declare function simCfnDynamoDbGlobalTableLocalIndexRules(logicalId: string): SimCfnDynamoDbPropertyRules;
14
+ /**
15
+ * The rules the `StreamSpecification` is read under.
16
+ */
17
+ export declare function simCfnDynamoDbGlobalTableStreamRules(logicalId: string): SimCfnDynamoDbPropertyRules;
18
+ /**
19
+ * The rules a `WriteProvisionedThroughputSettings` is read under, on the table
20
+ * or on one of its global secondary indexes.
21
+ */
22
+ export declare function simCfnDynamoDbGlobalTableWriteCapacityRules(logicalId: string): SimCfnDynamoDbPropertyRules;
23
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-property-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-property-rules.d.ts","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAqG7F;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,GAChB,2BAA2B,CAO7B;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,MAAM,GAChB,2BAA2B,CAQ7B;AAED;;GAEG;AACH,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,MAAM,GAChB,2BAA2B,CAO7B;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,MAAM,GAChB,2BAA2B,CAO7B;AAED;;;GAGG;AACH,wBAAgB,2CAA2C,CACzD,SAAS,EAAE,MAAM,GAChB,2BAA2B,CAQ7B"}
@@ -0,0 +1,151 @@
1
+ import { SimCfnDynamoDbPropertyRules } from "../property/sim-cfn-dynamodb-property-rules.js";
2
+ import { dynamoDbGlobalTableResourceTypeName } from "../sim-cfn-dynamodb-resource-type.js";
3
+ /**
4
+ * The AWS::DynamoDB::GlobalTable properties this simulation acts on.
5
+ *
6
+ * Everything but `Replicas` is the table itself, and is handed on to the
7
+ * AWS::DynamoDB::Table path in the shape it already reads. `Replicas` is what
8
+ * decides whether there is a table here to create at all.
9
+ */
10
+ const simulatedPropertyNames = new Set([
11
+ "AttributeDefinitions",
12
+ "BillingMode",
13
+ "GlobalSecondaryIndexes",
14
+ "KeySchema",
15
+ "LocalSecondaryIndexes",
16
+ "Replicas",
17
+ "StreamSpecification",
18
+ "TableName",
19
+ "TimeToLiveSpecification",
20
+ "WriteProvisionedThroughputSettings",
21
+ ]);
22
+ /**
23
+ * Real AWS::DynamoDB::GlobalTable properties this simulation does not model.
24
+ *
25
+ * These are the ones the AWS::DynamoDB::Table path already skips, under the
26
+ * names a global table gives them, plus `MultiRegionConsistency`, which is a
27
+ * statement about replication and so has nothing to be true of here.
28
+ */
29
+ const unsimulatedPropertyNames = new Set([
30
+ "MultiRegionConsistency",
31
+ "SSESpecification",
32
+ "WarmThroughput",
33
+ "WriteOnDemandThroughputSettings",
34
+ ]);
35
+ /**
36
+ * The GlobalSecondaryIndex properties a global table's own index carries.
37
+ *
38
+ * A global table splits an index's capacity in two: the write capacity is the
39
+ * table's, since every replica takes the same writes, and the read capacity
40
+ * belongs to each replica. This is the writing half.
41
+ */
42
+ const simulatedIndexPropertyNames = new Set([
43
+ "IndexName",
44
+ "KeySchema",
45
+ "Projection",
46
+ "WriteProvisionedThroughputSettings",
47
+ ]);
48
+ /**
49
+ * Real GlobalSecondaryIndex properties of a global table this simulation does
50
+ * not model.
51
+ */
52
+ const unsimulatedIndexPropertyNames = new Set([
53
+ "WarmThroughput",
54
+ "WriteOnDemandThroughputSettings",
55
+ ]);
56
+ /**
57
+ * The LocalSecondaryIndex properties, which this simulation models all of.
58
+ *
59
+ * A local secondary index reads out of its table's capacity rather than having
60
+ * any of its own, on a global table as on an ordinary one, so there is nothing
61
+ * here that is real and unmodelled.
62
+ */
63
+ const simulatedLocalIndexPropertyNames = new Set([
64
+ "IndexName",
65
+ "KeySchema",
66
+ "Projection",
67
+ ]);
68
+ /**
69
+ * The StreamSpecification properties of a global table.
70
+ *
71
+ * A global table's stream is what replication reads from, so AWS gives it no
72
+ * `ResourcePolicy` and no choice of view type worth the name. `StreamViewType`
73
+ * is the whole of it.
74
+ */
75
+ const simulatedStreamPropertyNames = new Set([
76
+ "StreamViewType",
77
+ ]);
78
+ /**
79
+ * The write capacity settings this simulation acts on.
80
+ *
81
+ * A fixed `WriteCapacityUnits` is the capacity an ordinary table's
82
+ * `ProvisionedThroughput` states, so it is carried across.
83
+ * `WriteCapacityAutoScalingSettings` asks for capacity that changes with load,
84
+ * which nothing here changes, so it skips the table rather than being read as
85
+ * the capacity it starts at.
86
+ */
87
+ const simulatedWriteCapacityPropertyNames = new Set([
88
+ "WriteCapacityUnits",
89
+ ]);
90
+ const unsimulatedWriteCapacityPropertyNames = new Set([
91
+ "WriteCapacityAutoScalingSettings",
92
+ ]);
93
+ /**
94
+ * The rules the Resource's own properties are read under.
95
+ */
96
+ export function simCfnDynamoDbGlobalTableRules(logicalId) {
97
+ return new SimCfnDynamoDbPropertyRules({
98
+ resourceTypeName: dynamoDbGlobalTableResourceTypeName,
99
+ logicalId,
100
+ simulated: simulatedPropertyNames,
101
+ unsimulated: unsimulatedPropertyNames,
102
+ });
103
+ }
104
+ /**
105
+ * The rules a `GlobalSecondaryIndexes` entry on the table itself is read under.
106
+ */
107
+ export function simCfnDynamoDbGlobalTableIndexRules(logicalId) {
108
+ return new SimCfnDynamoDbPropertyRules({
109
+ resourceTypeName: dynamoDbGlobalTableResourceTypeName,
110
+ logicalId,
111
+ kind: "GlobalSecondaryIndex",
112
+ simulated: simulatedIndexPropertyNames,
113
+ unsimulated: unsimulatedIndexPropertyNames,
114
+ });
115
+ }
116
+ /**
117
+ * The rules a `LocalSecondaryIndexes` entry is read under.
118
+ */
119
+ export function simCfnDynamoDbGlobalTableLocalIndexRules(logicalId) {
120
+ return new SimCfnDynamoDbPropertyRules({
121
+ resourceTypeName: dynamoDbGlobalTableResourceTypeName,
122
+ logicalId,
123
+ kind: "LocalSecondaryIndex",
124
+ simulated: simulatedLocalIndexPropertyNames,
125
+ });
126
+ }
127
+ /**
128
+ * The rules the `StreamSpecification` is read under.
129
+ */
130
+ export function simCfnDynamoDbGlobalTableStreamRules(logicalId) {
131
+ return new SimCfnDynamoDbPropertyRules({
132
+ resourceTypeName: dynamoDbGlobalTableResourceTypeName,
133
+ logicalId,
134
+ kind: "StreamSpecification",
135
+ simulated: simulatedStreamPropertyNames,
136
+ });
137
+ }
138
+ /**
139
+ * The rules a `WriteProvisionedThroughputSettings` is read under, on the table
140
+ * or on one of its global secondary indexes.
141
+ */
142
+ export function simCfnDynamoDbGlobalTableWriteCapacityRules(logicalId) {
143
+ return new SimCfnDynamoDbPropertyRules({
144
+ resourceTypeName: dynamoDbGlobalTableResourceTypeName,
145
+ logicalId,
146
+ kind: "WriteProvisionedThroughputSettings",
147
+ simulated: simulatedWriteCapacityPropertyNames,
148
+ unsimulated: unsimulatedWriteCapacityPropertyNames,
149
+ });
150
+ }
151
+ //# sourceMappingURL=sim-cfn-dynamodb-global-table-property-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-dynamodb-global-table-property-rules.js","sourceRoot":"","sources":["../../../../../src/service/dynamodb/cfn/global-table/sim-cfn-dynamodb-global-table-property-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,sBAAsB;IACtB,aAAa;IACb,wBAAwB;IACxB,WAAW;IACX,uBAAuB;IACvB,UAAU;IACV,qBAAqB;IACrB,WAAW;IACX,yBAAyB;IACzB,oCAAoC;CACrC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IAC5D,wBAAwB;IACxB,kBAAkB;IAClB,gBAAgB;IAChB,iCAAiC;CAClC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC;IAC/D,WAAW;IACX,WAAW;IACX,YAAY;IACZ,oCAAoC;CACrC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CAAC;IACjE,gBAAgB;IAChB,iCAAiC;CAClC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,gCAAgC,GAAwB,IAAI,GAAG,CAAC;IACpE,WAAW;IACX,WAAW;IACX,YAAY;CACb,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,4BAA4B,GAAwB,IAAI,GAAG,CAAC;IAChE,gBAAgB;CACjB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,mCAAmC,GAAwB,IAAI,GAAG,CAAC;IACvE,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,qCAAqC,GAAwB,IAAI,GAAG,CAAC;IACzE,kCAAkC;CACnC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,SAAiB;IAEjB,OAAO,IAAI,2BAA2B,CAAC;QACrC,gBAAgB,EAAE,mCAAmC;QACrD,SAAS;QACT,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,wBAAwB;KACtC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC,CACjD,SAAiB;IAEjB,OAAO,IAAI,2BAA2B,CAAC;QACrC,gBAAgB,EAAE,mCAAmC;QACrD,SAAS;QACT,IAAI,EAAE,sBAAsB;QAC5B,SAAS,EAAE,2BAA2B;QACtC,WAAW,EAAE,6BAA6B;KAC3C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wCAAwC,CACtD,SAAiB;IAEjB,OAAO,IAAI,2BAA2B,CAAC;QACrC,gBAAgB,EAAE,mCAAmC;QACrD,SAAS;QACT,IAAI,EAAE,qBAAqB;QAC3B,SAAS,EAAE,gCAAgC;KAC5C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC,CAClD,SAAiB;IAEjB,OAAO,IAAI,2BAA2B,CAAC;QACrC,gBAAgB,EAAE,mCAAmC;QACrD,SAAS;QACT,IAAI,EAAE,qBAAqB;QAC3B,SAAS,EAAE,4BAA4B;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2CAA2C,CACzD,SAAiB;IAEjB,OAAO,IAAI,2BAA2B,CAAC;QACrC,gBAAgB,EAAE,mCAAmC;QACrD,SAAS;QACT,IAAI,EAAE,oCAAoC;QAC1C,SAAS,EAAE,mCAAmC;QAC9C,WAAW,EAAE,qCAAqC;KACnD,CAAC,CAAC;AACL,CAAC"}