@kensio/yulin 1.20.7 → 1.20.8

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 (495) 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 +5 -0
  4. package/dist/sdk/router/resolve-sim-sdk-command-router.js.map +1 -1
  5. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.d.ts +30 -0
  6. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.d.ts.map +1 -0
  7. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.js +48 -0
  8. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-creator.js.map +1 -0
  9. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-properties.d.ts +33 -0
  10. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-properties.d.ts.map +1 -0
  11. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-properties.js +67 -0
  12. package/dist/service/athena/cfn/named-query/sim-cfn-athena-named-query-properties.js.map +1 -0
  13. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.d.ts +29 -0
  14. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.d.ts.map +1 -0
  15. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.js +67 -0
  16. package/dist/service/athena/cfn/sim-athena-cfn-resource-factory.js.map +1 -0
  17. package/dist/service/athena/cfn/sim-cfn-athena-property-values.d.ts +29 -0
  18. package/dist/service/athena/cfn/sim-cfn-athena-property-values.d.ts.map +1 -0
  19. package/dist/service/athena/cfn/sim-cfn-athena-property-values.js +74 -0
  20. package/dist/service/athena/cfn/sim-cfn-athena-property-values.js.map +1 -0
  21. package/dist/service/athena/cfn/sim-cfn-athena-resource-error.d.ts +21 -0
  22. package/dist/service/athena/cfn/sim-cfn-athena-resource-error.d.ts.map +1 -0
  23. package/dist/service/athena/cfn/sim-cfn-athena-resource-error.js +34 -0
  24. package/dist/service/athena/cfn/sim-cfn-athena-resource-error.js.map +1 -0
  25. package/dist/service/athena/cfn/sim-cfn-athena-resource-types.d.ts +13 -0
  26. package/dist/service/athena/cfn/sim-cfn-athena-resource-types.d.ts.map +1 -0
  27. package/dist/service/athena/cfn/sim-cfn-athena-resource-types.js +13 -0
  28. package/dist/service/athena/cfn/sim-cfn-athena-resource-types.js.map +1 -0
  29. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-configuration-properties.d.ts +12 -0
  30. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-configuration-properties.d.ts.map +1 -0
  31. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-configuration-properties.js +46 -0
  32. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-configuration-properties.js.map +1 -0
  33. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.d.ts +34 -0
  34. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.d.ts.map +1 -0
  35. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.js +65 -0
  36. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-creator.js.map +1 -0
  37. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-properties.d.ts +46 -0
  38. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-properties.d.ts.map +1 -0
  39. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-properties.js +77 -0
  40. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-properties.js.map +1 -0
  41. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-property-rules.d.ts +27 -0
  42. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-property-rules.d.ts.map +1 -0
  43. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-property-rules.js +75 -0
  44. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-property-rules.js.map +1 -0
  45. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-unsimulated-properties.d.ts +18 -0
  46. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-unsimulated-properties.d.ts.map +1 -0
  47. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-unsimulated-properties.js +49 -0
  48. package/dist/service/athena/cfn/work-group/sim-cfn-athena-work-group-unsimulated-properties.js.map +1 -0
  49. package/dist/service/athena/command/authorize/sim-athena-authorizer.d.ts +36 -0
  50. package/dist/service/athena/command/authorize/sim-athena-authorizer.d.ts.map +1 -0
  51. package/dist/service/athena/command/authorize/sim-athena-authorizer.js +56 -0
  52. package/dist/service/athena/command/authorize/sim-athena-authorizer.js.map +1 -0
  53. package/dist/service/athena/command/execution/execution.command.d.ts +130 -0
  54. package/dist/service/athena/command/execution/execution.command.d.ts.map +1 -0
  55. package/dist/service/athena/command/execution/execution.command.js +2 -0
  56. package/dist/service/athena/command/execution/execution.command.js.map +1 -0
  57. package/dist/service/athena/command/execution/sim-athena-described-execution.d.ts +11 -0
  58. package/dist/service/athena/command/execution/sim-athena-described-execution.d.ts.map +1 -0
  59. package/dist/service/athena/command/execution/sim-athena-described-execution.js +50 -0
  60. package/dist/service/athena/command/execution/sim-athena-described-execution.js.map +1 -0
  61. package/dist/service/athena/command/execution/sim-athena-execution-reads.d.ts +30 -0
  62. package/dist/service/athena/command/execution/sim-athena-execution-reads.d.ts.map +1 -0
  63. package/dist/service/athena/command/execution/sim-athena-execution-reads.js +43 -0
  64. package/dist/service/athena/command/execution/sim-athena-execution-reads.js.map +1 -0
  65. package/dist/service/athena/command/execution/sim-athena-execution-writes.d.ts +43 -0
  66. package/dist/service/athena/command/execution/sim-athena-execution-writes.d.ts.map +1 -0
  67. package/dist/service/athena/command/execution/sim-athena-execution-writes.js +42 -0
  68. package/dist/service/athena/command/execution/sim-athena-execution-writes.js.map +1 -0
  69. package/dist/service/athena/command/execution/sim-athena-query-output-location.d.ts +17 -0
  70. package/dist/service/athena/command/execution/sim-athena-query-output-location.d.ts.map +1 -0
  71. package/dist/service/athena/command/execution/sim-athena-query-output-location.js +28 -0
  72. package/dist/service/athena/command/execution/sim-athena-query-output-location.js.map +1 -0
  73. package/dist/service/athena/command/execution/sim-athena-query-results-page.d.ts +10 -0
  74. package/dist/service/athena/command/execution/sim-athena-query-results-page.d.ts.map +1 -0
  75. package/dist/service/athena/command/execution/sim-athena-query-results-page.js +36 -0
  76. package/dist/service/athena/command/execution/sim-athena-query-results-page.js.map +1 -0
  77. package/dist/service/athena/command/execution/sim-athena-query-rows.d.ts +16 -0
  78. package/dist/service/athena/command/execution/sim-athena-query-rows.d.ts.map +1 -0
  79. package/dist/service/athena/command/execution/sim-athena-query-rows.js +28 -0
  80. package/dist/service/athena/command/execution/sim-athena-query-rows.js.map +1 -0
  81. package/dist/service/athena/command/execution/sim-athena-query-start.d.ts +24 -0
  82. package/dist/service/athena/command/execution/sim-athena-query-start.d.ts.map +1 -0
  83. package/dist/service/athena/command/execution/sim-athena-query-start.js +60 -0
  84. package/dist/service/athena/command/execution/sim-athena-query-start.js.map +1 -0
  85. package/dist/service/athena/command/execution/sim-athena-query-stop.d.ts +16 -0
  86. package/dist/service/athena/command/execution/sim-athena-query-stop.d.ts.map +1 -0
  87. package/dist/service/athena/command/execution/sim-athena-query-stop.js +23 -0
  88. package/dist/service/athena/command/execution/sim-athena-query-stop.js.map +1 -0
  89. package/dist/service/athena/command/named-query/named-query.command.d.ts +104 -0
  90. package/dist/service/athena/command/named-query/named-query.command.d.ts.map +1 -0
  91. package/dist/service/athena/command/named-query/named-query.command.js +2 -0
  92. package/dist/service/athena/command/named-query/named-query.command.js.map +1 -0
  93. package/dist/service/athena/command/named-query/sim-athena-described-named-query.d.ts +7 -0
  94. package/dist/service/athena/command/named-query/sim-athena-described-named-query.d.ts.map +1 -0
  95. package/dist/service/athena/command/named-query/sim-athena-described-named-query.js +14 -0
  96. package/dist/service/athena/command/named-query/sim-athena-described-named-query.js.map +1 -0
  97. package/dist/service/athena/command/named-query/sim-athena-named-query-batch.d.ts +14 -0
  98. package/dist/service/athena/command/named-query/sim-athena-named-query-batch.d.ts.map +1 -0
  99. package/dist/service/athena/command/named-query/sim-athena-named-query-batch.js +56 -0
  100. package/dist/service/athena/command/named-query/sim-athena-named-query-batch.js.map +1 -0
  101. package/dist/service/athena/command/named-query/sim-athena-named-query-field.d.ts +5 -0
  102. package/dist/service/athena/command/named-query/sim-athena-named-query-field.d.ts.map +1 -0
  103. package/dist/service/athena/command/named-query/sim-athena-named-query-field.js +11 -0
  104. package/dist/service/athena/command/named-query/sim-athena-named-query-field.js.map +1 -0
  105. package/dist/service/athena/command/named-query/sim-athena-named-query-reads.d.ts +33 -0
  106. package/dist/service/athena/command/named-query/sim-athena-named-query-reads.d.ts.map +1 -0
  107. package/dist/service/athena/command/named-query/sim-athena-named-query-reads.js +55 -0
  108. package/dist/service/athena/command/named-query/sim-athena-named-query-reads.js.map +1 -0
  109. package/dist/service/athena/command/named-query/sim-athena-named-query-writes.d.ts +33 -0
  110. package/dist/service/athena/command/named-query/sim-athena-named-query-writes.d.ts.map +1 -0
  111. package/dist/service/athena/command/named-query/sim-athena-named-query-writes.js +50 -0
  112. package/dist/service/athena/command/named-query/sim-athena-named-query-writes.js.map +1 -0
  113. package/dist/service/athena/command/sim-athena-command.types.d.ts +4 -0
  114. package/dist/service/athena/command/sim-athena-command.types.d.ts.map +1 -0
  115. package/dist/service/athena/command/sim-athena-command.types.js +2 -0
  116. package/dist/service/athena/command/sim-athena-command.types.js.map +1 -0
  117. package/dist/service/athena/command/sim-athena-commands.d.ts +42 -0
  118. package/dist/service/athena/command/sim-athena-commands.d.ts.map +1 -0
  119. package/dist/service/athena/command/sim-athena-commands.js +65 -0
  120. package/dist/service/athena/command/sim-athena-commands.js.map +1 -0
  121. package/dist/service/athena/command/sim-athena-page.d.ts +49 -0
  122. package/dist/service/athena/command/sim-athena-page.d.ts.map +1 -0
  123. package/dist/service/athena/command/sim-athena-page.js +75 -0
  124. package/dist/service/athena/command/sim-athena-page.js.map +1 -0
  125. package/dist/service/athena/command/sim-athena-request-options.d.ts +12 -0
  126. package/dist/service/athena/command/sim-athena-request-options.d.ts.map +1 -0
  127. package/dist/service/athena/command/sim-athena-request-options.js +2 -0
  128. package/dist/service/athena/command/sim-athena-request-options.js.map +1 -0
  129. package/dist/service/athena/command/work-group/sim-athena-described-work-group.d.ts +14 -0
  130. package/dist/service/athena/command/work-group/sim-athena-described-work-group.d.ts.map +1 -0
  131. package/dist/service/athena/command/work-group/sim-athena-described-work-group.js +66 -0
  132. package/dist/service/athena/command/work-group/sim-athena-described-work-group.js.map +1 -0
  133. package/dist/service/athena/command/work-group/sim-athena-work-group-creation.d.ts +12 -0
  134. package/dist/service/athena/command/work-group/sim-athena-work-group-creation.d.ts.map +1 -0
  135. package/dist/service/athena/command/work-group/sim-athena-work-group-creation.js +22 -0
  136. package/dist/service/athena/command/work-group/sim-athena-work-group-creation.js.map +1 -0
  137. package/dist/service/athena/command/work-group/sim-athena-work-group-deletion.d.ts +12 -0
  138. package/dist/service/athena/command/work-group/sim-athena-work-group-deletion.d.ts.map +1 -0
  139. package/dist/service/athena/command/work-group/sim-athena-work-group-deletion.js +24 -0
  140. package/dist/service/athena/command/work-group/sim-athena-work-group-deletion.js.map +1 -0
  141. package/dist/service/athena/command/work-group/sim-athena-work-group-input.d.ts +26 -0
  142. package/dist/service/athena/command/work-group/sim-athena-work-group-input.d.ts.map +1 -0
  143. package/dist/service/athena/command/work-group/sim-athena-work-group-input.js +93 -0
  144. package/dist/service/athena/command/work-group/sim-athena-work-group-input.js.map +1 -0
  145. package/dist/service/athena/command/work-group/sim-athena-work-group-reads.d.ts +26 -0
  146. package/dist/service/athena/command/work-group/sim-athena-work-group-reads.d.ts.map +1 -0
  147. package/dist/service/athena/command/work-group/sim-athena-work-group-reads.js +39 -0
  148. package/dist/service/athena/command/work-group/sim-athena-work-group-reads.js.map +1 -0
  149. package/dist/service/athena/command/work-group/sim-athena-work-group-update.d.ts +12 -0
  150. package/dist/service/athena/command/work-group/sim-athena-work-group-update.d.ts.map +1 -0
  151. package/dist/service/athena/command/work-group/sim-athena-work-group-update.js +26 -0
  152. package/dist/service/athena/command/work-group/sim-athena-work-group-update.js.map +1 -0
  153. package/dist/service/athena/command/work-group/sim-athena-work-group-updates-input.d.ts +11 -0
  154. package/dist/service/athena/command/work-group/sim-athena-work-group-updates-input.d.ts.map +1 -0
  155. package/dist/service/athena/command/work-group/sim-athena-work-group-updates-input.js +35 -0
  156. package/dist/service/athena/command/work-group/sim-athena-work-group-updates-input.js.map +1 -0
  157. package/dist/service/athena/command/work-group/sim-athena-work-group-writes.d.ts +40 -0
  158. package/dist/service/athena/command/work-group/sim-athena-work-group-writes.d.ts.map +1 -0
  159. package/dist/service/athena/command/work-group/sim-athena-work-group-writes.js +53 -0
  160. package/dist/service/athena/command/work-group/sim-athena-work-group-writes.js.map +1 -0
  161. package/dist/service/athena/command/work-group/work-group.command.d.ts +164 -0
  162. package/dist/service/athena/command/work-group/work-group.command.d.ts.map +1 -0
  163. package/dist/service/athena/command/work-group/work-group.command.js +2 -0
  164. package/dist/service/athena/command/work-group/work-group.command.js.map +1 -0
  165. package/dist/service/athena/error/sim-athena.error.d.ts +33 -0
  166. package/dist/service/athena/error/sim-athena.error.d.ts.map +1 -0
  167. package/dist/service/athena/error/sim-athena.error.js +34 -0
  168. package/dist/service/athena/error/sim-athena.error.js.map +1 -0
  169. package/dist/service/athena/execution/sim-athena-no-result-destination.d.ts +11 -0
  170. package/dist/service/athena/execution/sim-athena-no-result-destination.d.ts.map +1 -0
  171. package/dist/service/athena/execution/sim-athena-no-result-destination.js +15 -0
  172. package/dist/service/athena/execution/sim-athena-no-result-destination.js.map +1 -0
  173. package/dist/service/athena/execution/sim-athena-output-location.d.ts +24 -0
  174. package/dist/service/athena/execution/sim-athena-output-location.d.ts.map +1 -0
  175. package/dist/service/athena/execution/sim-athena-output-location.js +49 -0
  176. package/dist/service/athena/execution/sim-athena-output-location.js.map +1 -0
  177. package/dist/service/athena/execution/sim-athena-query-execution-store.d.ts +24 -0
  178. package/dist/service/athena/execution/sim-athena-query-execution-store.d.ts.map +1 -0
  179. package/dist/service/athena/execution/sim-athena-query-execution-store.js +36 -0
  180. package/dist/service/athena/execution/sim-athena-query-execution-store.js.map +1 -0
  181. package/dist/service/athena/execution/sim-athena-query-execution.d.ts +58 -0
  182. package/dist/service/athena/execution/sim-athena-query-execution.d.ts.map +1 -0
  183. package/dist/service/athena/execution/sim-athena-query-execution.js +81 -0
  184. package/dist/service/athena/execution/sim-athena-query-execution.js.map +1 -0
  185. package/dist/service/athena/execution/sim-athena-query-runner.d.ts +48 -0
  186. package/dist/service/athena/execution/sim-athena-query-runner.d.ts.map +1 -0
  187. package/dist/service/athena/execution/sim-athena-query-runner.js +87 -0
  188. package/dist/service/athena/execution/sim-athena-query-runner.js.map +1 -0
  189. package/dist/service/athena/execution/sim-athena-query-state.d.ts +12 -0
  190. package/dist/service/athena/execution/sim-athena-query-state.d.ts.map +1 -0
  191. package/dist/service/athena/execution/sim-athena-query-state.js +18 -0
  192. package/dist/service/athena/execution/sim-athena-query-state.js.map +1 -0
  193. package/dist/service/athena/execution/sim-athena-query-status.d.ts +28 -0
  194. package/dist/service/athena/execution/sim-athena-query-status.d.ts.map +1 -0
  195. package/dist/service/athena/execution/sim-athena-query-status.js +48 -0
  196. package/dist/service/athena/execution/sim-athena-query-status.js.map +1 -0
  197. package/dist/service/athena/execution/sim-athena-query-tokens.d.ts +30 -0
  198. package/dist/service/athena/execution/sim-athena-query-tokens.d.ts.map +1 -0
  199. package/dist/service/athena/execution/sim-athena-query-tokens.js +49 -0
  200. package/dist/service/athena/execution/sim-athena-query-tokens.js.map +1 -0
  201. package/dist/service/athena/execution/sim-athena-result-csv.d.ts +11 -0
  202. package/dist/service/athena/execution/sim-athena-result-csv.d.ts.map +1 -0
  203. package/dist/service/athena/execution/sim-athena-result-csv.js +20 -0
  204. package/dist/service/athena/execution/sim-athena-result-csv.js.map +1 -0
  205. package/dist/service/athena/execution/sim-athena-result-writer.d.ts +42 -0
  206. package/dist/service/athena/execution/sim-athena-result-writer.d.ts.map +1 -0
  207. package/dist/service/athena/execution/sim-athena-result-writer.js +31 -0
  208. package/dist/service/athena/execution/sim-athena-result-writer.js.map +1 -0
  209. package/dist/service/athena/execution/sim-athena-write-failure.d.ts +9 -0
  210. package/dist/service/athena/execution/sim-athena-write-failure.d.ts.map +1 -0
  211. package/dist/service/athena/execution/sim-athena-write-failure.js +12 -0
  212. package/dist/service/athena/execution/sim-athena-write-failure.js.map +1 -0
  213. package/dist/service/athena/index.d.ts +21 -0
  214. package/dist/service/athena/index.d.ts.map +1 -0
  215. package/dist/service/athena/index.js +18 -0
  216. package/dist/service/athena/index.js.map +1 -0
  217. package/dist/service/athena/named-query/sim-athena-named-query-store.d.ts +42 -0
  218. package/dist/service/athena/named-query/sim-athena-named-query-store.d.ts.map +1 -0
  219. package/dist/service/athena/named-query/sim-athena-named-query-store.js +62 -0
  220. package/dist/service/athena/named-query/sim-athena-named-query-store.js.map +1 -0
  221. package/dist/service/athena/named-query/sim-athena-named-query.d.ts +30 -0
  222. package/dist/service/athena/named-query/sim-athena-named-query.d.ts.map +1 -0
  223. package/dist/service/athena/named-query/sim-athena-named-query.js +28 -0
  224. package/dist/service/athena/named-query/sim-athena-named-query.js.map +1 -0
  225. package/dist/service/athena/result/sim-athena-declared-result.d.ts +44 -0
  226. package/dist/service/athena/result/sim-athena-declared-result.d.ts.map +1 -0
  227. package/dist/service/athena/result/sim-athena-declared-result.js +2 -0
  228. package/dist/service/athena/result/sim-athena-declared-result.js.map +1 -0
  229. package/dist/service/athena/result/sim-athena-query-results.d.ts +48 -0
  230. package/dist/service/athena/result/sim-athena-query-results.d.ts.map +1 -0
  231. package/dist/service/athena/result/sim-athena-query-results.js +59 -0
  232. package/dist/service/athena/result/sim-athena-query-results.js.map +1 -0
  233. package/dist/service/athena/result/sim-athena-resolved-result.d.ts +20 -0
  234. package/dist/service/athena/result/sim-athena-resolved-result.d.ts.map +1 -0
  235. package/dist/service/athena/result/sim-athena-resolved-result.js +52 -0
  236. package/dist/service/athena/result/sim-athena-resolved-result.js.map +1 -0
  237. package/dist/service/athena/sdk/sim-athena-sdk-command-router.d.ts +18 -0
  238. package/dist/service/athena/sdk/sim-athena-sdk-command-router.d.ts.map +1 -0
  239. package/dist/service/athena/sdk/sim-athena-sdk-command-router.js +80 -0
  240. package/dist/service/athena/sdk/sim-athena-sdk-command-router.js.map +1 -0
  241. package/dist/service/athena/sim-athena-arn.d.ts +11 -0
  242. package/dist/service/athena/sim-athena-arn.d.ts.map +1 -0
  243. package/dist/service/athena/sim-athena-arn.js +13 -0
  244. package/dist/service/athena/sim-athena-arn.js.map +1 -0
  245. package/dist/service/athena/sim-athena-executions.d.ts +81 -0
  246. package/dist/service/athena/sim-athena-executions.d.ts.map +1 -0
  247. package/dist/service/athena/sim-athena-executions.js +112 -0
  248. package/dist/service/athena/sim-athena-executions.js.map +1 -0
  249. package/dist/service/athena/sim-athena.d.ts +93 -0
  250. package/dist/service/athena/sim-athena.d.ts.map +1 -0
  251. package/dist/service/athena/sim-athena.js +128 -0
  252. package/dist/service/athena/sim-athena.js.map +1 -0
  253. package/dist/service/athena/workgroup/sim-athena-result-configuration.d.ts +59 -0
  254. package/dist/service/athena/workgroup/sim-athena-result-configuration.d.ts.map +1 -0
  255. package/dist/service/athena/workgroup/sim-athena-result-configuration.js +61 -0
  256. package/dist/service/athena/workgroup/sim-athena-result-configuration.js.map +1 -0
  257. package/dist/service/athena/workgroup/sim-athena-work-group-configuration.d.ts +52 -0
  258. package/dist/service/athena/workgroup/sim-athena-work-group-configuration.d.ts.map +1 -0
  259. package/dist/service/athena/workgroup/sim-athena-work-group-configuration.js +67 -0
  260. package/dist/service/athena/workgroup/sim-athena-work-group-configuration.js.map +1 -0
  261. package/dist/service/athena/workgroup/sim-athena-work-group-name.d.ts +17 -0
  262. package/dist/service/athena/workgroup/sim-athena-work-group-name.d.ts.map +1 -0
  263. package/dist/service/athena/workgroup/sim-athena-work-group-name.js +41 -0
  264. package/dist/service/athena/workgroup/sim-athena-work-group-name.js.map +1 -0
  265. package/dist/service/athena/workgroup/sim-athena-work-group-store.d.ts +31 -0
  266. package/dist/service/athena/workgroup/sim-athena-work-group-store.d.ts.map +1 -0
  267. package/dist/service/athena/workgroup/sim-athena-work-group-store.js +45 -0
  268. package/dist/service/athena/workgroup/sim-athena-work-group-store.js.map +1 -0
  269. package/dist/service/athena/workgroup/sim-athena-work-group-updates.d.ts +32 -0
  270. package/dist/service/athena/workgroup/sim-athena-work-group-updates.d.ts.map +1 -0
  271. package/dist/service/athena/workgroup/sim-athena-work-group-updates.js +2 -0
  272. package/dist/service/athena/workgroup/sim-athena-work-group-updates.js.map +1 -0
  273. package/dist/service/athena/workgroup/sim-athena-work-group.d.ts +54 -0
  274. package/dist/service/athena/workgroup/sim-athena-work-group.d.ts.map +1 -0
  275. package/dist/service/athena/workgroup/sim-athena-work-group.js +59 -0
  276. package/dist/service/athena/workgroup/sim-athena-work-group.js.map +1 -0
  277. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts +18 -0
  278. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.d.ts.map +1 -1
  279. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js +22 -0
  280. package/dist/service/aws/factory/sim-aws-self-contained-service-builder.js.map +1 -1
  281. package/dist/service/aws/factory/sim-aws-service-factory.d.ts +6 -0
  282. package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
  283. package/dist/service/aws/factory/sim-aws-service-factory.js +8 -0
  284. package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
  285. package/dist/service/aws/sim-aws-account-region-scope.d.ts +6 -0
  286. package/dist/service/aws/sim-aws-account-region-scope.d.ts.map +1 -1
  287. package/dist/service/aws/sim-aws-account-region-scope.js +8 -0
  288. package/dist/service/aws/sim-aws-account-region-scope.js.map +1 -1
  289. package/dist/service/aws/sim-aws-service-accessors.d.ts +6 -0
  290. package/dist/service/aws/sim-aws-service-accessors.d.ts.map +1 -1
  291. package/dist/service/aws/sim-aws-service-accessors.js +8 -0
  292. package/dist/service/aws/sim-aws-service-accessors.js.map +1 -1
  293. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-cfn-value-adapter.d.ts +6 -0
  294. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-cfn-value-adapter.d.ts.map +1 -0
  295. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-cfn-value-adapter.js +19 -0
  296. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-cfn-value-adapter.js.map +1 -0
  297. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-named-query-cfn.d.ts +23 -0
  298. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-named-query-cfn.d.ts.map +1 -0
  299. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-named-query-cfn.js +25 -0
  300. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-named-query-cfn.js.map +1 -0
  301. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-work-group-cfn.d.ts +26 -0
  302. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-work-group-cfn.d.ts.map +1 -0
  303. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-work-group-cfn.js +28 -0
  304. package/dist/service/cloudformation/resource/cfn/athena/sim-athena-work-group-cfn.js.map +1 -0
  305. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-cfn-value-adapter.d.ts +6 -0
  306. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-cfn-value-adapter.d.ts.map +1 -0
  307. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-cfn-value-adapter.js +19 -0
  308. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-cfn-value-adapter.js.map +1 -0
  309. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-database-cfn.d.ts +27 -0
  310. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-database-cfn.d.ts.map +1 -0
  311. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-database-cfn.js +27 -0
  312. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-database-cfn.js.map +1 -0
  313. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-table-cfn-id.d.ts +21 -0
  314. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-table-cfn-id.d.ts.map +1 -0
  315. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-table-cfn-id.js +22 -0
  316. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-table-cfn-id.js.map +1 -0
  317. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-table-cfn.d.ts +27 -0
  318. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-table-cfn.d.ts.map +1 -0
  319. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-table-cfn.js +30 -0
  320. package/dist/service/cloudformation/resource/cfn/glue/sim-glue-table-cfn.js.map +1 -0
  321. package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.d.ts.map +1 -1
  322. package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js +4 -0
  323. package/dist/service/cloudformation/resource/cfn/sim-cfn-service-value-adapters.js.map +1 -1
  324. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.d.ts.map +1 -1
  325. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js +8 -0
  326. package/dist/service/cloudformation/resource/resolve/service/sim-cfn-service-factories.js.map +1 -1
  327. package/dist/service/glue/arn/sim-glue-arn.d.ts +22 -0
  328. package/dist/service/glue/arn/sim-glue-arn.d.ts.map +1 -0
  329. package/dist/service/glue/arn/sim-glue-arn.js +29 -0
  330. package/dist/service/glue/arn/sim-glue-arn.js.map +1 -0
  331. package/dist/service/glue/arn/sim-glue-authorized-resources.d.ts +17 -0
  332. package/dist/service/glue/arn/sim-glue-authorized-resources.d.ts.map +1 -0
  333. package/dist/service/glue/arn/sim-glue-authorized-resources.js +29 -0
  334. package/dist/service/glue/arn/sim-glue-authorized-resources.js.map +1 -0
  335. package/dist/service/glue/cfn/database/sim-cfn-glue-database-creator.d.ts +27 -0
  336. package/dist/service/glue/cfn/database/sim-cfn-glue-database-creator.d.ts.map +1 -0
  337. package/dist/service/glue/cfn/database/sim-cfn-glue-database-creator.js +43 -0
  338. package/dist/service/glue/cfn/database/sim-cfn-glue-database-creator.js.map +1 -0
  339. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.d.ts +31 -0
  340. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.d.ts.map +1 -0
  341. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js +61 -0
  342. package/dist/service/glue/cfn/database/sim-cfn-glue-database-properties.js.map +1 -0
  343. package/dist/service/glue/cfn/database/sim-cfn-glue-database-rules.d.ts +18 -0
  344. package/dist/service/glue/cfn/database/sim-cfn-glue-database-rules.d.ts.map +1 -0
  345. package/dist/service/glue/cfn/database/sim-cfn-glue-database-rules.js +43 -0
  346. package/dist/service/glue/cfn/database/sim-cfn-glue-database-rules.js.map +1 -0
  347. package/dist/service/glue/cfn/database/sim-cfn-glue-database-unsimulated-properties.d.ts +10 -0
  348. package/dist/service/glue/cfn/database/sim-cfn-glue-database-unsimulated-properties.d.ts.map +1 -0
  349. package/dist/service/glue/cfn/database/sim-cfn-glue-database-unsimulated-properties.js +25 -0
  350. package/dist/service/glue/cfn/database/sim-cfn-glue-database-unsimulated-properties.js.map +1 -0
  351. package/dist/service/glue/cfn/sim-cfn-glue-catalog-id.d.ts +18 -0
  352. package/dist/service/glue/cfn/sim-cfn-glue-catalog-id.d.ts.map +1 -0
  353. package/dist/service/glue/cfn/sim-cfn-glue-catalog-id.js +20 -0
  354. package/dist/service/glue/cfn/sim-cfn-glue-catalog-id.js.map +1 -0
  355. package/dist/service/glue/cfn/sim-cfn-glue-ignored.d.ts +19 -0
  356. package/dist/service/glue/cfn/sim-cfn-glue-ignored.d.ts.map +1 -0
  357. package/dist/service/glue/cfn/sim-cfn-glue-ignored.js +22 -0
  358. package/dist/service/glue/cfn/sim-cfn-glue-ignored.js.map +1 -0
  359. package/dist/service/glue/cfn/sim-cfn-glue-property-error.d.ts +5 -0
  360. package/dist/service/glue/cfn/sim-cfn-glue-property-error.d.ts.map +1 -0
  361. package/dist/service/glue/cfn/sim-cfn-glue-property-error.js +8 -0
  362. package/dist/service/glue/cfn/sim-cfn-glue-property-error.js.map +1 -0
  363. package/dist/service/glue/cfn/sim-cfn-glue-record.d.ts +37 -0
  364. package/dist/service/glue/cfn/sim-cfn-glue-record.d.ts.map +1 -0
  365. package/dist/service/glue/cfn/sim-cfn-glue-record.js +63 -0
  366. package/dist/service/glue/cfn/sim-cfn-glue-record.js.map +1 -0
  367. package/dist/service/glue/cfn/sim-cfn-glue-values.d.ts +40 -0
  368. package/dist/service/glue/cfn/sim-cfn-glue-values.d.ts.map +1 -0
  369. package/dist/service/glue/cfn/sim-cfn-glue-values.js +74 -0
  370. package/dist/service/glue/cfn/sim-cfn-glue-values.js.map +1 -0
  371. package/dist/service/glue/cfn/sim-glue-cfn-resource-factory.d.ts +28 -0
  372. package/dist/service/glue/cfn/sim-glue-cfn-resource-factory.d.ts.map +1 -0
  373. package/dist/service/glue/cfn/sim-glue-cfn-resource-factory.js +54 -0
  374. package/dist/service/glue/cfn/sim-glue-cfn-resource-factory.js.map +1 -0
  375. package/dist/service/glue/cfn/table/sim-cfn-glue-columns.d.ts +20 -0
  376. package/dist/service/glue/cfn/table/sim-cfn-glue-columns.d.ts.map +1 -0
  377. package/dist/service/glue/cfn/table/sim-cfn-glue-columns.js +51 -0
  378. package/dist/service/glue/cfn/table/sim-cfn-glue-columns.js.map +1 -0
  379. package/dist/service/glue/cfn/table/sim-cfn-glue-storage-descriptor.d.ts +19 -0
  380. package/dist/service/glue/cfn/table/sim-cfn-glue-storage-descriptor.d.ts.map +1 -0
  381. package/dist/service/glue/cfn/table/sim-cfn-glue-storage-descriptor.js +63 -0
  382. package/dist/service/glue/cfn/table/sim-cfn-glue-storage-descriptor.js.map +1 -0
  383. package/dist/service/glue/cfn/table/sim-cfn-glue-table-creator.d.ts +30 -0
  384. package/dist/service/glue/cfn/table/sim-cfn-glue-table-creator.d.ts.map +1 -0
  385. package/dist/service/glue/cfn/table/sim-cfn-glue-table-creator.js +47 -0
  386. package/dist/service/glue/cfn/table/sim-cfn-glue-table-creator.js.map +1 -0
  387. package/dist/service/glue/cfn/table/sim-cfn-glue-table-input.d.ts +16 -0
  388. package/dist/service/glue/cfn/table/sim-cfn-glue-table-input.d.ts.map +1 -0
  389. package/dist/service/glue/cfn/table/sim-cfn-glue-table-input.js +26 -0
  390. package/dist/service/glue/cfn/table/sim-cfn-glue-table-input.js.map +1 -0
  391. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.d.ts +31 -0
  392. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.d.ts.map +1 -0
  393. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js +55 -0
  394. package/dist/service/glue/cfn/table/sim-cfn-glue-table-properties.js.map +1 -0
  395. package/dist/service/glue/cfn/table/sim-cfn-glue-table-rules.d.ts +12 -0
  396. package/dist/service/glue/cfn/table/sim-cfn-glue-table-rules.d.ts.map +1 -0
  397. package/dist/service/glue/cfn/table/sim-cfn-glue-table-rules.js +37 -0
  398. package/dist/service/glue/cfn/table/sim-cfn-glue-table-rules.js.map +1 -0
  399. package/dist/service/glue/cfn/table/sim-cfn-glue-table-unsimulated-properties.d.ts +19 -0
  400. package/dist/service/glue/cfn/table/sim-cfn-glue-table-unsimulated-properties.d.ts.map +1 -0
  401. package/dist/service/glue/cfn/table/sim-cfn-glue-table-unsimulated-properties.js +75 -0
  402. package/dist/service/glue/cfn/table/sim-cfn-glue-table-unsimulated-properties.js.map +1 -0
  403. package/dist/service/glue/command/authorize/sim-glue-authorize-resources.d.ts +18 -0
  404. package/dist/service/glue/command/authorize/sim-glue-authorize-resources.d.ts.map +1 -0
  405. package/dist/service/glue/command/authorize/sim-glue-authorize-resources.js +26 -0
  406. package/dist/service/glue/command/authorize/sim-glue-authorize-resources.js.map +1 -0
  407. package/dist/service/glue/command/authorize/sim-glue-authorizer.d.ts +45 -0
  408. package/dist/service/glue/command/authorize/sim-glue-authorizer.d.ts.map +1 -0
  409. package/dist/service/glue/command/authorize/sim-glue-authorizer.js +59 -0
  410. package/dist/service/glue/command/authorize/sim-glue-authorizer.js.map +1 -0
  411. package/dist/service/glue/command/database/database.command.d.ts +86 -0
  412. package/dist/service/glue/command/database/database.command.d.ts.map +1 -0
  413. package/dist/service/glue/command/database/database.command.js +2 -0
  414. package/dist/service/glue/command/database/database.command.js.map +1 -0
  415. package/dist/service/glue/command/database/sim-glue-database-commands.d.ts +42 -0
  416. package/dist/service/glue/command/database/sim-glue-database-commands.d.ts.map +1 -0
  417. package/dist/service/glue/command/database/sim-glue-database-commands.js +74 -0
  418. package/dist/service/glue/command/database/sim-glue-database-commands.js.map +1 -0
  419. package/dist/service/glue/command/database/sim-glue-database-detail.d.ts +10 -0
  420. package/dist/service/glue/command/database/sim-glue-database-detail.d.ts.map +1 -0
  421. package/dist/service/glue/command/database/sim-glue-database-detail.js +18 -0
  422. package/dist/service/glue/command/database/sim-glue-database-detail.js.map +1 -0
  423. package/dist/service/glue/command/sim-glue-catalog-id.d.ts +11 -0
  424. package/dist/service/glue/command/sim-glue-catalog-id.d.ts.map +1 -0
  425. package/dist/service/glue/command/sim-glue-catalog-id.js +18 -0
  426. package/dist/service/glue/command/sim-glue-catalog-id.js.map +1 -0
  427. package/dist/service/glue/command/sim-glue-request-options.d.ts +12 -0
  428. package/dist/service/glue/command/sim-glue-request-options.d.ts.map +1 -0
  429. package/dist/service/glue/command/sim-glue-request-options.js +2 -0
  430. package/dist/service/glue/command/sim-glue-request-options.js.map +1 -0
  431. package/dist/service/glue/command/table/sim-glue-table-commands.d.ts +43 -0
  432. package/dist/service/glue/command/table/sim-glue-table-commands.d.ts.map +1 -0
  433. package/dist/service/glue/command/table/sim-glue-table-commands.js +86 -0
  434. package/dist/service/glue/command/table/sim-glue-table-commands.js.map +1 -0
  435. package/dist/service/glue/command/table/sim-glue-table-detail.d.ts +14 -0
  436. package/dist/service/glue/command/table/sim-glue-table-detail.d.ts.map +1 -0
  437. package/dist/service/glue/command/table/sim-glue-table-detail.js +28 -0
  438. package/dist/service/glue/command/table/sim-glue-table-detail.js.map +1 -0
  439. package/dist/service/glue/command/table/table.command.d.ts +105 -0
  440. package/dist/service/glue/command/table/table.command.d.ts.map +1 -0
  441. package/dist/service/glue/command/table/table.command.js +2 -0
  442. package/dist/service/glue/command/table/table.command.js.map +1 -0
  443. package/dist/service/glue/database/sim-glue-catalog-name.d.ts +8 -0
  444. package/dist/service/glue/database/sim-glue-catalog-name.d.ts.map +1 -0
  445. package/dist/service/glue/database/sim-glue-catalog-name.js +26 -0
  446. package/dist/service/glue/database/sim-glue-catalog-name.js.map +1 -0
  447. package/dist/service/glue/database/sim-glue-database-store.d.ts +37 -0
  448. package/dist/service/glue/database/sim-glue-database-store.d.ts.map +1 -0
  449. package/dist/service/glue/database/sim-glue-database-store.js +54 -0
  450. package/dist/service/glue/database/sim-glue-database-store.js.map +1 -0
  451. package/dist/service/glue/database/sim-glue-database.d.ts +31 -0
  452. package/dist/service/glue/database/sim-glue-database.d.ts.map +1 -0
  453. package/dist/service/glue/database/sim-glue-database.js +33 -0
  454. package/dist/service/glue/database/sim-glue-database.js.map +1 -0
  455. package/dist/service/glue/error/sim-glue.error.d.ts +38 -0
  456. package/dist/service/glue/error/sim-glue.error.d.ts.map +1 -0
  457. package/dist/service/glue/error/sim-glue.error.js +41 -0
  458. package/dist/service/glue/error/sim-glue.error.js.map +1 -0
  459. package/dist/service/glue/index.d.ts +14 -0
  460. package/dist/service/glue/index.d.ts.map +1 -0
  461. package/dist/service/glue/index.js +9 -0
  462. package/dist/service/glue/index.js.map +1 -0
  463. package/dist/service/glue/sdk/sim-glue-sdk-command-router.d.ts +14 -0
  464. package/dist/service/glue/sdk/sim-glue-sdk-command-router.d.ts.map +1 -0
  465. package/dist/service/glue/sdk/sim-glue-sdk-command-router.js +52 -0
  466. package/dist/service/glue/sdk/sim-glue-sdk-command-router.js.map +1 -0
  467. package/dist/service/glue/sim-glue.d.ts +74 -0
  468. package/dist/service/glue/sim-glue.d.ts.map +1 -0
  469. package/dist/service/glue/sim-glue.js +128 -0
  470. package/dist/service/glue/sim-glue.js.map +1 -0
  471. package/dist/service/glue/table/sim-glue-table-input-shape.d.ts +37 -0
  472. package/dist/service/glue/table/sim-glue-table-input-shape.d.ts.map +1 -0
  473. package/dist/service/glue/table/sim-glue-table-input-shape.js +26 -0
  474. package/dist/service/glue/table/sim-glue-table-input-shape.js.map +1 -0
  475. package/dist/service/glue/table/sim-glue-table-schema.d.ts +51 -0
  476. package/dist/service/glue/table/sim-glue-table-schema.d.ts.map +1 -0
  477. package/dist/service/glue/table/sim-glue-table-schema.js +2 -0
  478. package/dist/service/glue/table/sim-glue-table-schema.js.map +1 -0
  479. package/dist/service/glue/table/sim-glue-table-store.d.ts +35 -0
  480. package/dist/service/glue/table/sim-glue-table-store.d.ts.map +1 -0
  481. package/dist/service/glue/table/sim-glue-table-store.js +71 -0
  482. package/dist/service/glue/table/sim-glue-table-store.js.map +1 -0
  483. package/dist/service/glue/table/sim-glue-table.d.ts +55 -0
  484. package/dist/service/glue/table/sim-glue-table.d.ts.map +1 -0
  485. package/dist/service/glue/table/sim-glue-table.js +58 -0
  486. package/dist/service/glue/table/sim-glue-table.js.map +1 -0
  487. package/dist/service/glue/write/sim-glue-catalog-writer.d.ts +35 -0
  488. package/dist/service/glue/write/sim-glue-catalog-writer.d.ts.map +1 -0
  489. package/dist/service/glue/write/sim-glue-catalog-writer.js +40 -0
  490. package/dist/service/glue/write/sim-glue-catalog-writer.js.map +1 -0
  491. package/dist/util/record/defined-entries.d.ts +10 -0
  492. package/dist/util/record/defined-entries.d.ts.map +1 -0
  493. package/dist/util/record/defined-entries.js +12 -0
  494. package/dist/util/record/defined-entries.js.map +1 -0
  495. package/package.json +11 -1
@@ -0,0 +1,128 @@
1
+ import { BackgroundTasks, } from "../../util/background/background.js";
2
+ import { simAwsAccountRegionScopeFactory } from "../aws/sim-aws-account-region-scope.factory.js";
3
+ import { SimIamAllowAllAuth, } from "../iam/authorize/sim-iam-inter-service-auth-z.js";
4
+ import { SimGlueAuthorizer } from "./command/authorize/sim-glue-authorizer.js";
5
+ import { SimGlueDatabaseCommands } from "./command/database/sim-glue-database-commands.js";
6
+ import { SimGlueTableCommands } from "./command/table/sim-glue-table-commands.js";
7
+ import { SimGlueDatabaseStore } from "./database/sim-glue-database-store.js";
8
+ import { SimGlueCfnResourceFactory } from "./cfn/sim-glue-cfn-resource-factory.js";
9
+ import { SimGlueSdkCommandRouter } from "./sdk/sim-glue-sdk-command-router.js";
10
+ import { SimGlueTableStore } from "./table/sim-glue-table-store.js";
11
+ import { SimGlueCatalogWriter } from "./write/sim-glue-catalog-writer.js";
12
+ /**
13
+ * Simulated Glue Data Catalog. Handles SDK commands. Emulates AWS behaviour
14
+ * and state.
15
+ *
16
+ * A database and a table are metadata, so this holds definitions rather than
17
+ * data. Nothing here reads an S3 object, and nothing evaluates the Athena
18
+ * partition projection a table's parameters configure. What a table is for
19
+ * here is asserting that a stack declared the definition it meant to.
20
+ *
21
+ * Databases and tables are scoped to an account and region, as they are on
22
+ * real AWS: a catalog belongs to one account, and a database ARN names the
23
+ * region.
24
+ */
25
+ export class SimGlue {
26
+ #databases;
27
+ #tables;
28
+ #databaseCommands;
29
+ #tableCommands;
30
+ #catalogWriter;
31
+ #sdkRouter = new SimGlueSdkCommandRouter(this);
32
+ #cfnFactory;
33
+ constructor(properties = {}) {
34
+ const { accountRegionScope = simAwsAccountRegionScopeFactory.make(), iam = new SimIamAllowAllAuth(), background = new BackgroundTasks(), } = properties;
35
+ const authorizer = new SimGlueAuthorizer({ iam, accountRegionScope });
36
+ this.#databases = new SimGlueDatabaseStore({ accountRegionScope });
37
+ this.#tables = new SimGlueTableStore({ accountRegionScope });
38
+ const collaborators = {
39
+ databases: this.#databases,
40
+ tables: this.#tables,
41
+ authorizer,
42
+ accountRegionScope,
43
+ clock: background,
44
+ };
45
+ this.#databaseCommands = new SimGlueDatabaseCommands(collaborators);
46
+ this.#tableCommands = new SimGlueTableCommands(collaborators);
47
+ this.#catalogWriter = new SimGlueCatalogWriter({
48
+ databases: this.#databases,
49
+ tables: this.#tables,
50
+ clock: background,
51
+ });
52
+ this.#cfnFactory = new SimGlueCfnResourceFactory({
53
+ glue: this,
54
+ catalogId: accountRegionScope.accountId,
55
+ });
56
+ }
57
+ /**
58
+ * How CloudFormation writes to this catalog, skipping the IAM authorization
59
+ * an SDK Command goes through.
60
+ */
61
+ catalogWriter() {
62
+ return this.#catalogWriter;
63
+ }
64
+ /**
65
+ * Find a database by name.
66
+ *
67
+ * This is the simulator's own accessor, for tests seeding or inspecting
68
+ * catalog state without going through a Command and its authorization.
69
+ */
70
+ findDatabase(name) {
71
+ return this.#databases.find(name);
72
+ }
73
+ /**
74
+ * Find a table by database and name, without going through a Command.
75
+ */
76
+ findTable(databaseName, name) {
77
+ return this.#tables.find(databaseName, name);
78
+ }
79
+ /** Every database in this catalog, in creation order. */
80
+ allDatabases() {
81
+ return this.#databases.all;
82
+ }
83
+ /** Every table in one database, in creation order. */
84
+ tablesInDatabase(databaseName) {
85
+ return this.#tables.inDatabase(databaseName);
86
+ }
87
+ /** Make a database. */
88
+ createDatabase(command, options) {
89
+ return this.#databaseCommands.createDatabase(command, options);
90
+ }
91
+ /** Read a database back. */
92
+ getDatabase(command, options) {
93
+ return this.#databaseCommands.getDatabase(command, options);
94
+ }
95
+ /** Read every database in this catalog. */
96
+ getDatabases(command, options) {
97
+ return this.#databaseCommands.getDatabases(command, options);
98
+ }
99
+ /** Remove a database, and the tables it holds with it. */
100
+ deleteDatabase(command, options) {
101
+ return this.#databaseCommands.deleteDatabase(command, options);
102
+ }
103
+ /** Make a table in a database. */
104
+ createTable(command, options) {
105
+ return this.#tableCommands.createTable(command, options);
106
+ }
107
+ /** Read a table back. */
108
+ getTable(command, options) {
109
+ return this.#tableCommands.getTable(command, options);
110
+ }
111
+ /** Read every table in one database. */
112
+ getTables(command, options) {
113
+ return this.#tableCommands.getTables(command, options);
114
+ }
115
+ /** Remove a table. */
116
+ deleteTable(command, options) {
117
+ return this.#tableCommands.deleteTable(command, options);
118
+ }
119
+ /** Route an intercepted SDK Command to this simulated Glue. */
120
+ sdkCommandRouter() {
121
+ return this.#sdkRouter;
122
+ }
123
+ /** Get this service's CloudFormation Resource factory. */
124
+ cfnResourceFactory() {
125
+ return this.#cfnFactory;
126
+ }
127
+ }
128
+ //# sourceMappingURL=sim-glue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue.js","sourceRoot":"","sources":["../../../src/service/glue/sim-glue.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AAEjG,OAAO,EACL,kBAAkB,GAEnB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAG3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAS1E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,OAAO;IACT,UAAU,CAAuB;IACjC,OAAO,CAAoB;IAC3B,iBAAiB,CAA0B;IAC3C,cAAc,CAAuB;IACrC,cAAc,CAAuB;IAErC,UAAU,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/C,WAAW,CAA4B;IAEhD,YAAY,UAAU,GAAsB,EAAE;QAC5C,MAAM,EACJ,kBAAkB,GAAG,+BAA+B,CAAC,IAAI,EAAE,EAC3D,GAAG,GAAG,IAAI,kBAAkB,EAAE,EAC9B,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAG,UAAU,CAAC;QAEf,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAG;YACpB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,UAAU;YACV,kBAAkB;YAClB,KAAK,EAAE,UAAU;SAClB,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAyB,CAAC;YAC/C,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,kBAAkB,CAAC,SAAS;SACxC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,YAAoB,EAAE,IAAY;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,yDAAyD;IACzD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAC7B,CAAC;IAED,sDAAsD;IACtD,gBAAgB,CAAC,YAAoB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,uBAAuB;IACvB,cAAc,CACZ,OAAiD,EACjD,OAA+B;QAE/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,4BAA4B;IAC5B,WAAW,CACT,OAA8C,EAC9C,OAA+B;QAE/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,2CAA2C;IAC3C,YAAY,CACV,OAA+C,EAC/C,OAA+B;QAE/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,0DAA0D;IAC1D,cAAc,CACZ,OAAiD,EACjD,OAA+B;QAE/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,kCAAkC;IAClC,WAAW,CACT,OAAmD,EACnD,OAA+B;QAE/B,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,yBAAyB;IACzB,QAAQ,CACN,OAAgD,EAChD,OAA+B;QAE/B,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,wCAAwC;IACxC,SAAS,CACP,OAAiD,EACjD,OAA+B;QAE/B,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,sBAAsB;IACtB,WAAW,CACT,OAAmD,EACnD,OAA+B;QAE/B,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,+DAA+D;IAC/D,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,0DAA0D;IAC1D,kBAAkB;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,37 @@
1
+ import type { SimGlueColumn, SimGlueSerDeInfo, SimGlueStorageDescriptor } from "./sim-glue-table-schema.js";
2
+ /**
3
+ * A column as a caller declares one.
4
+ *
5
+ * The name is required on real Glue and optional in the SDK's own types, so
6
+ * the shape a Command accepts follows the SDK and the check happens here.
7
+ */
8
+ export interface SimGlueColumnInput {
9
+ readonly Name?: string | undefined;
10
+ readonly Type?: string | undefined;
11
+ readonly Comment?: string | undefined;
12
+ readonly Parameters?: Readonly<Record<string, string>> | undefined;
13
+ }
14
+ /** A storage descriptor as a caller declares one. */
15
+ export interface SimGlueStorageDescriptorInput {
16
+ readonly Columns?: readonly SimGlueColumnInput[] | undefined;
17
+ readonly Location?: string | undefined;
18
+ readonly InputFormat?: string | undefined;
19
+ readonly OutputFormat?: string | undefined;
20
+ readonly Compressed?: boolean | undefined;
21
+ readonly NumberOfBuckets?: number | undefined;
22
+ readonly SerdeInfo?: SimGlueSerDeInfo | undefined;
23
+ readonly BucketColumns?: readonly string[] | undefined;
24
+ readonly Parameters?: Readonly<Record<string, string>> | undefined;
25
+ }
26
+ /**
27
+ * Read a declared column list, refusing a name real Glue would refuse.
28
+ *
29
+ * A column name is held to the same rule as a database or table name, since
30
+ * the Data Catalog caps all three the same way.
31
+ */
32
+ export declare function requiredSimGlueColumns(label: string, columns: readonly SimGlueColumnInput[] | undefined): readonly SimGlueColumn[] | undefined;
33
+ /**
34
+ * Read a declared storage descriptor, refusing a column without a name.
35
+ */
36
+ export declare function requiredSimGlueStorageDescriptor(label: string, descriptor: SimGlueStorageDescriptorInput | undefined): SimGlueStorageDescriptor | undefined;
37
+ //# sourceMappingURL=sim-glue-table-input-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-table-input-shape.d.ts","sourceRoot":"","sources":["../../../../src/service/glue/table/sim-glue-table-input-shape.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE;AAED,qDAAqD;AACrD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,GACjD,SAAS,aAAa,EAAE,GAAG,SAAS,CAKtC;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,6BAA6B,GAAG,SAAS,GACpD,wBAAwB,GAAG,SAAS,CAStC"}
@@ -0,0 +1,26 @@
1
+ import { requiredSimGlueName } from "../database/sim-glue-catalog-name.js";
2
+ /**
3
+ * Read a declared column list, refusing a name real Glue would refuse.
4
+ *
5
+ * A column name is held to the same rule as a database or table name, since
6
+ * the Data Catalog caps all three the same way.
7
+ */
8
+ export function requiredSimGlueColumns(label, columns) {
9
+ return columns?.map((column, index) => ({
10
+ ...column,
11
+ Name: requiredSimGlueName(`${label}.${index}.Name`, column.Name),
12
+ }));
13
+ }
14
+ /**
15
+ * Read a declared storage descriptor, refusing a column without a name.
16
+ */
17
+ export function requiredSimGlueStorageDescriptor(label, descriptor) {
18
+ if (descriptor === undefined) {
19
+ return undefined;
20
+ }
21
+ return {
22
+ ...descriptor,
23
+ Columns: requiredSimGlueColumns(`${label}.Columns`, descriptor.Columns),
24
+ };
25
+ }
26
+ //# sourceMappingURL=sim-glue-table-input-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-table-input-shape.js","sourceRoot":"","sources":["../../../../src/service/glue/table/sim-glue-table-input-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAiC3E;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,OAAkD;IAElD,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,GAAG,MAAM;QACT,IAAI,EAAE,mBAAmB,CAAC,GAAG,KAAK,IAAI,KAAK,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;KACjE,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,KAAa,EACb,UAAqD;IAErD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,GAAG,UAAU;QACb,OAAO,EAAE,sBAAsB,CAAC,GAAG,KAAK,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC;KACxE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * One column of a table, or one partition key.
3
+ *
4
+ * Real Glue uses the same `Column` shape for both, which is why a partition
5
+ * key carries a type and a comment the way an ordinary column does.
6
+ */
7
+ export interface SimGlueColumn {
8
+ readonly Name: string;
9
+ readonly Type?: string | undefined;
10
+ readonly Comment?: string | undefined;
11
+ readonly Parameters?: Readonly<Record<string, string>> | undefined;
12
+ }
13
+ /**
14
+ * How rows are serialized and deserialized.
15
+ *
16
+ * `SerializationLibrary` is the Java class name of the SerDe, which is how a
17
+ * table says whether it holds JSON, Parquet, or something else.
18
+ */
19
+ export interface SimGlueSerDeInfo {
20
+ readonly Name?: string | undefined;
21
+ readonly SerializationLibrary?: string | undefined;
22
+ readonly Parameters?: Readonly<Record<string, string>> | undefined;
23
+ }
24
+ /**
25
+ * Where a table's data lives and how it is read.
26
+ *
27
+ * The columns here are the data columns. Partition keys sit on the table
28
+ * rather than in here, and real Glue keeps them apart the same way.
29
+ */
30
+ export interface SimGlueStorageDescriptor {
31
+ readonly Columns?: readonly SimGlueColumn[] | undefined;
32
+ readonly Location?: string | undefined;
33
+ readonly InputFormat?: string | undefined;
34
+ readonly OutputFormat?: string | undefined;
35
+ readonly Compressed?: boolean | undefined;
36
+ readonly NumberOfBuckets?: number | undefined;
37
+ readonly SerdeInfo?: SimGlueSerDeInfo | undefined;
38
+ readonly BucketColumns?: readonly string[] | undefined;
39
+ readonly Parameters?: Readonly<Record<string, string>> | undefined;
40
+ }
41
+ /** What a table is created with, beyond its name and its database. */
42
+ export interface SimGlueTableInput {
43
+ readonly description?: string | undefined;
44
+ readonly owner?: string | undefined;
45
+ readonly retention?: number | undefined;
46
+ readonly tableType?: string | undefined;
47
+ readonly partitionKeys?: readonly SimGlueColumn[] | undefined;
48
+ readonly storageDescriptor?: SimGlueStorageDescriptor | undefined;
49
+ readonly parameters?: Readonly<Record<string, string>> | undefined;
50
+ }
51
+ //# sourceMappingURL=sim-glue-table-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-table-schema.d.ts","sourceRoot":"","sources":["../../../../src/service/glue/table/sim-glue-table-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE;AAED,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sim-glue-table-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-table-schema.js","sourceRoot":"","sources":["../../../../src/service/glue/table/sim-glue-table-schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ import { SimGlueTable } from "./sim-glue-table.js";
3
+ import type { SimGlueTableInput } from "./sim-glue-table-schema.js";
4
+ interface SimGlueTableStoreProperties {
5
+ readonly accountRegionScope: SimAwsAccountRegionScope;
6
+ }
7
+ /**
8
+ * The tables of one simulated Glue catalog.
9
+ *
10
+ * Keyed by database name and then by table name, so a database's tables go
11
+ * with it when it is deleted, and so two databases may hold a table of the
12
+ * same name.
13
+ */
14
+ export declare class SimGlueTableStore {
15
+ #private;
16
+ constructor(properties: SimGlueTableStoreProperties);
17
+ /**
18
+ * Make a table, refusing a name already taken in the same database.
19
+ */
20
+ create(databaseName: string, name: string, createTime: Date, input?: SimGlueTableInput): SimGlueTable;
21
+ /** Find a table by database and name. */
22
+ find(databaseName: string, name: string): SimGlueTable | undefined;
23
+ /**
24
+ * Get a table by database and name, refusing one that is absent.
25
+ */
26
+ require(databaseName: string, name: string): SimGlueTable;
27
+ /** Every table in one database, in creation order. */
28
+ inDatabase(databaseName: string): readonly SimGlueTable[];
29
+ /** Remove a table. */
30
+ delete(databaseName: string, name: string): void;
31
+ /** Remove every table in a database, as deleting the database does. */
32
+ deleteDatabase(databaseName: string): void;
33
+ }
34
+ export { type SimGlueTableInput } from "./sim-glue-table-schema.js";
35
+ //# sourceMappingURL=sim-glue-table-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-table-store.d.ts","sourceRoot":"","sources":["../../../../src/service/glue/table/sim-glue-table-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAK1F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,UAAU,2BAA2B;IACnC,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;CACvD;AAED;;;;;;GAMG;AACH,qBAAa,iBAAiB;;IAI5B,YAAY,UAAU,EAAE,2BAA2B,EAElD;IAED;;OAEG;IACH,MAAM,CACJ,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,IAAI,EAChB,KAAK,GAAE,iBAAsB,GAC5B,YAAY,CAkBd;IAED,yCAAyC;IACzC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjE;IAED;;OAEG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAUxD;IAED,sDAAsD;IACtD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CAExD;IAED,sBAAsB;IACtB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE/C;IAED,uEAAuE;IACvE,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAEzC;CAcF;AAED,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { SimGlueAlreadyExistsException, SimGlueEntityNotFoundException, } from "../error/sim-glue.error.js";
2
+ import { SimGlueTable } from "./sim-glue-table.js";
3
+ /**
4
+ * The tables of one simulated Glue catalog.
5
+ *
6
+ * Keyed by database name and then by table name, so a database's tables go
7
+ * with it when it is deleted, and so two databases may hold a table of the
8
+ * same name.
9
+ */
10
+ export class SimGlueTableStore {
11
+ #accountRegionScope;
12
+ #tables = new Map();
13
+ constructor(properties) {
14
+ this.#accountRegionScope = properties.accountRegionScope;
15
+ }
16
+ /**
17
+ * Make a table, refusing a name already taken in the same database.
18
+ */
19
+ create(databaseName, name, createTime, input = {}) {
20
+ const inDatabase = this.#inDatabase(databaseName);
21
+ if (inDatabase.has(name)) {
22
+ throw new SimGlueAlreadyExistsException(`Table already exists: ${name}`);
23
+ }
24
+ const table = new SimGlueTable({
25
+ name,
26
+ databaseName,
27
+ accountRegionScope: this.#accountRegionScope,
28
+ createTime,
29
+ ...input,
30
+ });
31
+ inDatabase.set(name, table);
32
+ return table;
33
+ }
34
+ /** Find a table by database and name. */
35
+ find(databaseName, name) {
36
+ return this.#tables.get(databaseName)?.get(name);
37
+ }
38
+ /**
39
+ * Get a table by database and name, refusing one that is absent.
40
+ */
41
+ require(databaseName, name) {
42
+ const table = this.find(databaseName, name);
43
+ if (table === undefined) {
44
+ throw new SimGlueEntityNotFoundException(`Table not found: ${databaseName}.${name}`);
45
+ }
46
+ return table;
47
+ }
48
+ /** Every table in one database, in creation order. */
49
+ inDatabase(databaseName) {
50
+ return this.#tables.get(databaseName)?.values().toArray() ?? [];
51
+ }
52
+ /** Remove a table. */
53
+ delete(databaseName, name) {
54
+ this.#tables.get(databaseName)?.delete(name);
55
+ }
56
+ /** Remove every table in a database, as deleting the database does. */
57
+ deleteDatabase(databaseName) {
58
+ this.#tables.delete(databaseName);
59
+ }
60
+ #inDatabase(databaseName) {
61
+ const existing = this.#tables.get(databaseName);
62
+ if (existing !== undefined) {
63
+ return existing;
64
+ }
65
+ const created = new Map();
66
+ this.#tables.set(databaseName, created);
67
+ return created;
68
+ }
69
+ }
70
+ export {} from "./sim-glue-table-schema.js";
71
+ //# sourceMappingURL=sim-glue-table-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-table-store.js","sourceRoot":"","sources":["../../../../src/service/glue/table/sim-glue-table-store.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOnD;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACnB,mBAAmB,CAA2B;IAC9C,OAAO,GAAG,IAAI,GAAG,EAAqC,CAAC;IAEhE,YAAY,UAAuC;QACjD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,YAAoB,EACpB,IAAY,EACZ,UAAgB,EAChB,KAAK,GAAsB,EAAE;QAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAElD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,6BAA6B,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC;YAC7B,IAAI;YACJ,YAAY;YACZ,kBAAkB,EAAE,IAAI,CAAC,mBAAmB;YAC5C,UAAU;YACV,GAAG,KAAK;SACT,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,YAAoB,EAAE,IAAY;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,YAAoB,EAAE,IAAY;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAE5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,8BAA8B,CACtC,oBAAoB,YAAY,IAAI,IAAI,EAAE,CAC3C,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sDAAsD;IACtD,UAAU,CAAC,YAAoB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC;IAED,sBAAsB;IACtB,MAAM,CAAC,YAAoB,EAAE,IAAY;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,uEAAuE;IACvE,cAAc,CAAC,YAAoB;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,YAAoB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAExC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,OAAO,EAA0B,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
2
+ import type { SimGlueColumn, SimGlueStorageDescriptor } from "./sim-glue-table-schema.js";
3
+ interface SimGlueTableProperties {
4
+ readonly name: string;
5
+ readonly databaseName: string;
6
+ readonly accountRegionScope: SimAwsAccountRegionScope;
7
+ readonly createTime: Date;
8
+ readonly description?: string | undefined;
9
+ readonly owner?: string | undefined;
10
+ readonly retention?: number | undefined;
11
+ readonly tableType?: string | undefined;
12
+ readonly partitionKeys?: readonly SimGlueColumn[] | undefined;
13
+ readonly storageDescriptor?: SimGlueStorageDescriptor | undefined;
14
+ readonly parameters?: Readonly<Record<string, string>> | undefined;
15
+ }
16
+ /**
17
+ * A simulated Glue table, which is a definition of a dataset rather than the
18
+ * dataset itself.
19
+ *
20
+ * The parameters are the part callers most often care about here. Athena
21
+ * partition projection lives entirely in them, so a table whose parameters
22
+ * were dropped on the way in looks created while configuring nothing.
23
+ *
24
+ * Everything a caller declared is copied on the way in. A `TableInput` the
25
+ * caller goes on to reuse or mutate would otherwise keep changing the stored
26
+ * definition, which no Glue command could account for.
27
+ */
28
+ export declare class SimGlueTable {
29
+ #private;
30
+ readonly name: string;
31
+ readonly databaseName: string;
32
+ readonly createTime: Date;
33
+ readonly description: string | undefined;
34
+ readonly owner: string | undefined;
35
+ readonly retention: number | undefined;
36
+ readonly tableType: string | undefined;
37
+ readonly partitionKeys: readonly SimGlueColumn[];
38
+ readonly storageDescriptor: SimGlueStorageDescriptor | undefined;
39
+ readonly parameters: Readonly<Record<string, string>>;
40
+ constructor(properties: SimGlueTableProperties);
41
+ /** The catalog holding this table, which is the account id. */
42
+ get catalogId(): string;
43
+ /** This table's ARN, which names the database holding it. */
44
+ get arn(): string;
45
+ /**
46
+ * The data columns, which exclude the partition keys.
47
+ *
48
+ * Real Glue keeps the two apart, and a partition key repeated in the
49
+ * storage descriptor's columns is how a table ends up with a duplicate
50
+ * column that Athena then refuses to query.
51
+ */
52
+ get columns(): readonly SimGlueColumn[];
53
+ }
54
+ export {};
55
+ //# sourceMappingURL=sim-glue-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-table.d.ts","sourceRoot":"","sources":["../../../../src/service/glue/table/sim-glue-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAE1F,OAAO,KAAK,EACV,aAAa,EACb,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AAEpC,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY;;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,SAAS,aAAa,EAAE,CAAC;IACjD,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAItD,YAAY,UAAU,EAAE,sBAAsB,EAY7C;IAED,+DAA+D;IAC/D,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,6DAA6D;IAC7D,IAAI,GAAG,IAAI,MAAM,CAMhB;IAED;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,SAAS,aAAa,EAAE,CAEtC;CACF"}
@@ -0,0 +1,58 @@
1
+ import { simGlueTableArn } from "../arn/sim-glue-arn.js";
2
+ /**
3
+ * A simulated Glue table, which is a definition of a dataset rather than the
4
+ * dataset itself.
5
+ *
6
+ * The parameters are the part callers most often care about here. Athena
7
+ * partition projection lives entirely in them, so a table whose parameters
8
+ * were dropped on the way in looks created while configuring nothing.
9
+ *
10
+ * Everything a caller declared is copied on the way in. A `TableInput` the
11
+ * caller goes on to reuse or mutate would otherwise keep changing the stored
12
+ * definition, which no Glue command could account for.
13
+ */
14
+ export class SimGlueTable {
15
+ name;
16
+ databaseName;
17
+ createTime;
18
+ description;
19
+ owner;
20
+ retention;
21
+ tableType;
22
+ partitionKeys;
23
+ storageDescriptor;
24
+ parameters;
25
+ #accountRegionScope;
26
+ constructor(properties) {
27
+ this.name = properties.name;
28
+ this.databaseName = properties.databaseName;
29
+ this.createTime = new Date(properties.createTime);
30
+ this.description = properties.description;
31
+ this.owner = properties.owner;
32
+ this.retention = properties.retention;
33
+ this.tableType = properties.tableType;
34
+ this.partitionKeys = structuredClone(properties.partitionKeys ?? []);
35
+ this.storageDescriptor = structuredClone(properties.storageDescriptor);
36
+ this.parameters = structuredClone(properties.parameters) ?? {};
37
+ this.#accountRegionScope = properties.accountRegionScope;
38
+ }
39
+ /** The catalog holding this table, which is the account id. */
40
+ get catalogId() {
41
+ return this.#accountRegionScope.accountId;
42
+ }
43
+ /** This table's ARN, which names the database holding it. */
44
+ get arn() {
45
+ return simGlueTableArn(this.#accountRegionScope, this.databaseName, this.name);
46
+ }
47
+ /**
48
+ * The data columns, which exclude the partition keys.
49
+ *
50
+ * Real Glue keeps the two apart, and a partition key repeated in the
51
+ * storage descriptor's columns is how a table ends up with a duplicate
52
+ * column that Athena then refuses to query.
53
+ */
54
+ get columns() {
55
+ return this.storageDescriptor?.Columns ?? [];
56
+ }
57
+ }
58
+ //# sourceMappingURL=sim-glue-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-table.js","sourceRoot":"","sources":["../../../../src/service/glue/table/sim-glue-table.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoBzD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,CAAS;IACb,YAAY,CAAS;IACrB,UAAU,CAAO;IACjB,WAAW,CAAqB;IAChC,KAAK,CAAqB;IAC1B,SAAS,CAAqB;IAC9B,SAAS,CAAqB;IAC9B,aAAa,CAA2B;IACxC,iBAAiB,CAAuC;IACxD,UAAU,CAAmC;IAE7C,mBAAmB,CAA2B;IAEvD,YAAY,UAAkC;QAC5C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAC3D,CAAC;IAED,+DAA+D;IAC/D,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,6DAA6D;IAC7D,IAAI,GAAG;QACL,OAAO,eAAe,CACpB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,iBAAiB,EAAE,OAAO,IAAI,EAAE,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ import type { SimClock } from "../../../util/clock/sim-clock.js";
2
+ import type { SimGlueDatabaseInput, SimGlueDatabaseStore } from "../database/sim-glue-database-store.js";
3
+ import type { SimGlueDatabase } from "../database/sim-glue-database.js";
4
+ import type { SimGlueTableInput, SimGlueTableStore } from "../table/sim-glue-table-store.js";
5
+ import type { SimGlueTable } from "../table/sim-glue-table.js";
6
+ interface SimGlueCatalogWriterProperties {
7
+ readonly databases: SimGlueDatabaseStore;
8
+ readonly tables: SimGlueTableStore;
9
+ readonly clock: SimClock;
10
+ }
11
+ /**
12
+ * How something other than an SDK caller writes to the catalog.
13
+ *
14
+ * CloudFormation deploys as itself rather than as the caller a later request
15
+ * carries, so a Resource creator writes through here and skips the IAM
16
+ * authorization an SDK Command goes through. The store refusals still apply,
17
+ * so a stack declaring two tables of one name in one database fails the way
18
+ * two `CreateTable` calls would.
19
+ */
20
+ export declare class SimGlueCatalogWriter {
21
+ #private;
22
+ constructor(properties: SimGlueCatalogWriterProperties);
23
+ /** Make a database. */
24
+ createDatabase(name: string, input: SimGlueDatabaseInput): SimGlueDatabase;
25
+ /** Remove a database, and the tables it holds with it. */
26
+ deleteDatabase(name: string): void;
27
+ /**
28
+ * Make a table in a database, refusing one whose database is absent.
29
+ */
30
+ createTable(databaseName: string, name: string, input: SimGlueTableInput): SimGlueTable;
31
+ /** Remove a table. */
32
+ deleteTable(databaseName: string, name: string): void;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=sim-glue-catalog-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-catalog-writer.d.ts","sourceRoot":"","sources":["../../../../src/service/glue/write/sim-glue-catalog-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,UAAU,8BAA8B;IACtC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAoB;;IAK/B,YAAY,UAAU,EAAE,8BAA8B,EAIrD;IAED,uBAAuB;IACvB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,eAAe,CAEzE;IAED,0DAA0D;IAC1D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGjC;IAED;;OAEG;IACH,WAAW,CACT,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,iBAAiB,GACvB,YAAY,CAId;IAED,sBAAsB;IACtB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEpD;CACF"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * How something other than an SDK caller writes to the catalog.
3
+ *
4
+ * CloudFormation deploys as itself rather than as the caller a later request
5
+ * carries, so a Resource creator writes through here and skips the IAM
6
+ * authorization an SDK Command goes through. The store refusals still apply,
7
+ * so a stack declaring two tables of one name in one database fails the way
8
+ * two `CreateTable` calls would.
9
+ */
10
+ export class SimGlueCatalogWriter {
11
+ #databases;
12
+ #tables;
13
+ #clock;
14
+ constructor(properties) {
15
+ this.#databases = properties.databases;
16
+ this.#tables = properties.tables;
17
+ this.#clock = properties.clock;
18
+ }
19
+ /** Make a database. */
20
+ createDatabase(name, input) {
21
+ return this.#databases.create(name, this.#clock.now(), input);
22
+ }
23
+ /** Remove a database, and the tables it holds with it. */
24
+ deleteDatabase(name) {
25
+ this.#databases.delete(name);
26
+ this.#tables.deleteDatabase(name);
27
+ }
28
+ /**
29
+ * Make a table in a database, refusing one whose database is absent.
30
+ */
31
+ createTable(databaseName, name, input) {
32
+ this.#databases.require(databaseName);
33
+ return this.#tables.create(databaseName, name, this.#clock.now(), input);
34
+ }
35
+ /** Remove a table. */
36
+ deleteTable(databaseName, name) {
37
+ this.#tables.delete(databaseName, name);
38
+ }
39
+ }
40
+ //# sourceMappingURL=sim-glue-catalog-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-glue-catalog-writer.js","sourceRoot":"","sources":["../../../../src/service/glue/write/sim-glue-catalog-writer.ts"],"names":[],"mappings":"AAkBA;;;;;;;;GAQG;AACH,MAAM,OAAO,oBAAoB;IACtB,UAAU,CAAuB;IACjC,OAAO,CAAoB;IAC3B,MAAM,CAAW;IAE1B,YAAY,UAA0C;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,uBAAuB;IACvB,cAAc,CAAC,IAAY,EAAE,KAA2B;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,0DAA0D;IAC1D,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,WAAW,CACT,YAAoB,EACpB,IAAY,EACZ,KAAwB;QAExB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,sBAAsB;IACtB,WAAW,CAAC,YAAoB,EAAE,IAAY;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The same object without the keys whose value is undefined.
3
+ *
4
+ * A response built by spreading optional fields carries a key for every one of
5
+ * them, and an assertion comparing it against what a caller declared then
6
+ * trips over keys nobody set. Real AWS responses leave an absent field out
7
+ * altogether, so this puts the response back to that shape.
8
+ */
9
+ export declare function definedEntries<T extends object>(value: T): T;
10
+ //# sourceMappingURL=defined-entries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defined-entries.d.ts","sourceRoot":"","sources":["../../../src/util/record/defined-entries.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAI5D"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The same object without the keys whose value is undefined.
3
+ *
4
+ * A response built by spreading optional fields carries a key for every one of
5
+ * them, and an assertion comparing it against what a caller declared then
6
+ * trips over keys nobody set. Real AWS responses leave an absent field out
7
+ * altogether, so this puts the response back to that shape.
8
+ */
9
+ export function definedEntries(value) {
10
+ return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
11
+ }
12
+ //# sourceMappingURL=defined-entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defined-entries.js","sourceRoot":"","sources":["../../../src/util/record/defined-entries.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAmB,KAAQ;IACvD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAC5D,CAAC;AACT,CAAC"}