@kensio/yulin 1.20.4 → 1.20.6

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 (308) hide show
  1. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.d.ts.map +1 -1
  2. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js +22 -3
  3. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-cfn-value-adapter.js.map +1 -1
  4. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-cfn.d.ts +31 -0
  5. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-cfn.d.ts.map +1 -0
  6. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-cfn.js +43 -0
  7. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-cfn.js.map +1 -0
  8. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-destination-cfn.d.ts +32 -0
  9. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-destination-cfn.d.ts.map +1 -0
  10. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-destination-cfn.js +34 -0
  11. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-destination-cfn.js.map +1 -0
  12. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-source-cfn.d.ts +27 -0
  13. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-source-cfn.d.ts.map +1 -0
  14. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-source-cfn.js +39 -0
  15. package/dist/service/cloudformation/resource/cfn/logs/sim-logs-delivery-source-cfn.js.map +1 -0
  16. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts +6 -5
  17. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.d.ts.map +1 -1
  18. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js +10 -8
  19. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-creator.js.map +1 -1
  20. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-response-headers-policy.d.ts +24 -0
  21. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-response-headers-policy.d.ts.map +1 -0
  22. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-response-headers-policy.js +94 -0
  23. package/dist/service/cloudfront/cfn/distro/sim-cfn-cf-distro-response-headers-policy.js.map +1 -0
  24. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.d.ts.map +1 -1
  25. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js +4 -4
  26. package/dist/service/cloudfront/controller/response-headers/sim-cf-response-headers-applicator.js.map +1 -1
  27. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.d.ts.map +1 -1
  28. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js +3 -4
  29. package/dist/service/cloudfront/distribution/configurator/sim-cf-behavior-response-headers-policy.js.map +1 -1
  30. package/dist/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.d.ts +27 -0
  31. package/dist/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.d.ts.map +1 -0
  32. package/dist/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.js +119 -0
  33. package/dist/service/cloudfront/response-headers-policy/sim-cf-managed-response-headers-policies.js.map +1 -0
  34. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts +18 -3
  35. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.d.ts.map +1 -1
  36. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js +28 -5
  37. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-cors.js.map +1 -1
  38. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.d.ts +14 -4
  39. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.d.ts.map +1 -1
  40. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.js +17 -5
  41. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy-registry.js.map +1 -1
  42. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts +6 -2
  43. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.d.ts.map +1 -1
  44. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js +7 -3
  45. package/dist/service/cloudfront/response-headers-policy/sim-cf-response-headers-policy.js.map +1 -1
  46. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts +28 -0
  47. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.d.ts.map +1 -0
  48. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js +52 -0
  49. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-creator.js.map +1 -0
  50. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts +30 -0
  51. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.d.ts.map +1 -0
  52. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js +59 -0
  53. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-destination-creator.js.map +1 -0
  54. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-input.d.ts +12 -0
  55. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-input.d.ts.map +1 -0
  56. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-input.js +23 -0
  57. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-input.js.map +1 -0
  58. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-properties.d.ts +50 -0
  59. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-properties.d.ts.map +1 -0
  60. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-properties.js +107 -0
  61. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-properties.js.map +1 -0
  62. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts +29 -0
  63. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.d.ts.map +1 -0
  64. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js +50 -0
  65. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-source-creator.js.map +1 -0
  66. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-unsimulated-properties.d.ts +16 -0
  67. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-unsimulated-properties.d.ts.map +1 -0
  68. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-unsimulated-properties.js +39 -0
  69. package/dist/service/logs/cfn/delivery/sim-cfn-delivery-unsimulated-properties.js.map +1 -0
  70. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts +27 -0
  71. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.d.ts.map +1 -0
  72. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js +49 -0
  73. package/dist/service/logs/cfn/sim-logs-cfn-resource-deleter.js.map +1 -0
  74. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts +8 -3
  75. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.d.ts.map +1 -1
  76. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js +48 -23
  77. package/dist/service/logs/cfn/sim-logs-cfn-resource-factory.js.map +1 -1
  78. package/dist/service/logs/cfn/sim-logs-cfn-unsupported-resource.d.ts +10 -0
  79. package/dist/service/logs/cfn/sim-logs-cfn-unsupported-resource.d.ts.map +1 -0
  80. package/dist/service/logs/cfn/sim-logs-cfn-unsupported-resource.js +13 -0
  81. package/dist/service/logs/cfn/sim-logs-cfn-unsupported-resource.js.map +1 -0
  82. package/dist/service/logs/command/authorize/sim-logs-authorizer.d.ts +9 -1
  83. package/dist/service/logs/command/authorize/sim-logs-authorizer.d.ts.map +1 -1
  84. package/dist/service/logs/command/authorize/sim-logs-authorizer.js +8 -0
  85. package/dist/service/logs/command/authorize/sim-logs-authorizer.js.map +1 -1
  86. package/dist/service/logs/command/delivery/delivery-destination.command.d.ts +67 -0
  87. package/dist/service/logs/command/delivery/delivery-destination.command.d.ts.map +1 -0
  88. package/dist/service/logs/command/delivery/delivery-destination.command.js +2 -0
  89. package/dist/service/logs/command/delivery/delivery-destination.command.js.map +1 -0
  90. package/dist/service/logs/command/delivery/delivery-source.command.d.ts +61 -0
  91. package/dist/service/logs/command/delivery/delivery-source.command.d.ts.map +1 -0
  92. package/dist/service/logs/command/delivery/delivery-source.command.js +2 -0
  93. package/dist/service/logs/command/delivery/delivery-source.command.js.map +1 -0
  94. package/dist/service/logs/command/delivery/delivery.command.d.ts +73 -0
  95. package/dist/service/logs/command/delivery/delivery.command.d.ts.map +1 -0
  96. package/dist/service/logs/command/delivery/delivery.command.js +2 -0
  97. package/dist/service/logs/command/delivery/delivery.command.js.map +1 -0
  98. package/dist/service/logs/command/delivery/sim-logs-created-delivery.d.ts +21 -0
  99. package/dist/service/logs/command/delivery/sim-logs-created-delivery.d.ts.map +1 -0
  100. package/dist/service/logs/command/delivery/sim-logs-created-delivery.js +41 -0
  101. package/dist/service/logs/command/delivery/sim-logs-created-delivery.js.map +1 -0
  102. package/dist/service/logs/command/delivery/sim-logs-delivery-commands.d.ts +38 -0
  103. package/dist/service/logs/command/delivery/sim-logs-delivery-commands.d.ts.map +1 -0
  104. package/dist/service/logs/command/delivery/sim-logs-delivery-commands.js +77 -0
  105. package/dist/service/logs/command/delivery/sim-logs-delivery-commands.js.map +1 -0
  106. package/dist/service/logs/command/delivery/sim-logs-delivery-destination-commands.d.ts +38 -0
  107. package/dist/service/logs/command/delivery/sim-logs-delivery-destination-commands.d.ts.map +1 -0
  108. package/dist/service/logs/command/delivery/sim-logs-delivery-destination-commands.js +82 -0
  109. package/dist/service/logs/command/delivery/sim-logs-delivery-destination-commands.js.map +1 -0
  110. package/dist/service/logs/command/delivery/sim-logs-delivery-detail.d.ts +19 -0
  111. package/dist/service/logs/command/delivery/sim-logs-delivery-detail.d.ts.map +1 -0
  112. package/dist/service/logs/command/delivery/sim-logs-delivery-detail.js +57 -0
  113. package/dist/service/logs/command/delivery/sim-logs-delivery-detail.js.map +1 -0
  114. package/dist/service/logs/command/delivery/sim-logs-delivery-in-use.d.ts +15 -0
  115. package/dist/service/logs/command/delivery/sim-logs-delivery-in-use.d.ts.map +1 -0
  116. package/dist/service/logs/command/delivery/sim-logs-delivery-in-use.js +26 -0
  117. package/dist/service/logs/command/delivery/sim-logs-delivery-in-use.js.map +1 -0
  118. package/dist/service/logs/command/delivery/sim-logs-delivery-input.d.ts +16 -0
  119. package/dist/service/logs/command/delivery/sim-logs-delivery-input.d.ts.map +1 -0
  120. package/dist/service/logs/command/delivery/sim-logs-delivery-input.js +28 -0
  121. package/dist/service/logs/command/delivery/sim-logs-delivery-input.js.map +1 -0
  122. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts +37 -0
  123. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.d.ts.map +1 -0
  124. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js +86 -0
  125. package/dist/service/logs/command/delivery/sim-logs-delivery-source-commands.js.map +1 -0
  126. package/dist/service/logs/command/sim-logs-command.types.d.ts +3 -0
  127. package/dist/service/logs/command/sim-logs-command.types.d.ts.map +1 -1
  128. package/dist/service/logs/delivery/sim-logs-delivery-arn.d.ts +30 -0
  129. package/dist/service/logs/delivery/sim-logs-delivery-arn.d.ts.map +1 -0
  130. package/dist/service/logs/delivery/sim-logs-delivery-arn.js +42 -0
  131. package/dist/service/logs/delivery/sim-logs-delivery-arn.js.map +1 -0
  132. package/dist/service/logs/delivery/sim-logs-delivery-destination-store.d.ts +41 -0
  133. package/dist/service/logs/delivery/sim-logs-delivery-destination-store.d.ts.map +1 -0
  134. package/dist/service/logs/delivery/sim-logs-delivery-destination-store.js +69 -0
  135. package/dist/service/logs/delivery/sim-logs-delivery-destination-store.js.map +1 -0
  136. package/dist/service/logs/delivery/sim-logs-delivery-destination-type.d.ts +16 -0
  137. package/dist/service/logs/delivery/sim-logs-delivery-destination-type.d.ts.map +1 -0
  138. package/dist/service/logs/delivery/sim-logs-delivery-destination-type.js +48 -0
  139. package/dist/service/logs/delivery/sim-logs-delivery-destination-type.js.map +1 -0
  140. package/dist/service/logs/delivery/sim-logs-delivery-destination.d.ts +27 -0
  141. package/dist/service/logs/delivery/sim-logs-delivery-destination.d.ts.map +1 -0
  142. package/dist/service/logs/delivery/sim-logs-delivery-destination.js +23 -0
  143. package/dist/service/logs/delivery/sim-logs-delivery-destination.js.map +1 -0
  144. package/dist/service/logs/delivery/sim-logs-delivery-ids.d.ts +16 -0
  145. package/dist/service/logs/delivery/sim-logs-delivery-ids.d.ts.map +1 -0
  146. package/dist/service/logs/delivery/sim-logs-delivery-ids.js +20 -0
  147. package/dist/service/logs/delivery/sim-logs-delivery-ids.js.map +1 -0
  148. package/dist/service/logs/delivery/sim-logs-delivery-output-format.d.ts +24 -0
  149. package/dist/service/logs/delivery/sim-logs-delivery-output-format.d.ts.map +1 -0
  150. package/dist/service/logs/delivery/sim-logs-delivery-output-format.js +36 -0
  151. package/dist/service/logs/delivery/sim-logs-delivery-output-format.js.map +1 -0
  152. package/dist/service/logs/delivery/sim-logs-delivery-s3-configuration.d.ts +35 -0
  153. package/dist/service/logs/delivery/sim-logs-delivery-s3-configuration.d.ts.map +1 -0
  154. package/dist/service/logs/delivery/sim-logs-delivery-s3-configuration.js +66 -0
  155. package/dist/service/logs/delivery/sim-logs-delivery-s3-configuration.js.map +1 -0
  156. package/dist/service/logs/delivery/sim-logs-delivery-source-service.d.ts +48 -0
  157. package/dist/service/logs/delivery/sim-logs-delivery-source-service.d.ts.map +1 -0
  158. package/dist/service/logs/delivery/sim-logs-delivery-source-service.js +71 -0
  159. package/dist/service/logs/delivery/sim-logs-delivery-source-service.js.map +1 -0
  160. package/dist/service/logs/delivery/sim-logs-delivery-source-store.d.ts +42 -0
  161. package/dist/service/logs/delivery/sim-logs-delivery-source-store.d.ts.map +1 -0
  162. package/dist/service/logs/delivery/sim-logs-delivery-source-store.js +64 -0
  163. package/dist/service/logs/delivery/sim-logs-delivery-source-store.js.map +1 -0
  164. package/dist/service/logs/delivery/sim-logs-delivery-source.d.ts +29 -0
  165. package/dist/service/logs/delivery/sim-logs-delivery-source.d.ts.map +1 -0
  166. package/dist/service/logs/delivery/sim-logs-delivery-source.js +29 -0
  167. package/dist/service/logs/delivery/sim-logs-delivery-source.js.map +1 -0
  168. package/dist/service/logs/delivery/sim-logs-delivery-store.d.ts +32 -0
  169. package/dist/service/logs/delivery/sim-logs-delivery-store.d.ts.map +1 -0
  170. package/dist/service/logs/delivery/sim-logs-delivery-store.js +53 -0
  171. package/dist/service/logs/delivery/sim-logs-delivery-store.js.map +1 -0
  172. package/dist/service/logs/delivery/sim-logs-delivery.d.ts +33 -0
  173. package/dist/service/logs/delivery/sim-logs-delivery.d.ts.map +1 -0
  174. package/dist/service/logs/delivery/sim-logs-delivery.js +34 -0
  175. package/dist/service/logs/delivery/sim-logs-delivery.js.map +1 -0
  176. package/dist/service/logs/error/sim-logs.error.d.ts +23 -0
  177. package/dist/service/logs/error/sim-logs.error.d.ts.map +1 -1
  178. package/dist/service/logs/error/sim-logs.error.js +27 -0
  179. package/dist/service/logs/error/sim-logs.error.js.map +1 -1
  180. package/dist/service/logs/index.d.ts +10 -1
  181. package/dist/service/logs/index.d.ts.map +1 -1
  182. package/dist/service/logs/index.js +9 -1
  183. package/dist/service/logs/index.js.map +1 -1
  184. package/dist/service/logs/sdk/sim-logs-sdk-command-router.d.ts.map +1 -1
  185. package/dist/service/logs/sdk/sim-logs-sdk-command-router.js +36 -0
  186. package/dist/service/logs/sdk/sim-logs-sdk-command-router.js.map +1 -1
  187. package/dist/service/logs/sim-logs-commands.d.ts +12 -0
  188. package/dist/service/logs/sim-logs-commands.d.ts.map +1 -1
  189. package/dist/service/logs/sim-logs-commands.js +37 -0
  190. package/dist/service/logs/sim-logs-commands.js.map +1 -1
  191. package/dist/service/logs/sim-logs-delivery-inspection.d.ts +28 -0
  192. package/dist/service/logs/sim-logs-delivery-inspection.d.ts.map +1 -0
  193. package/dist/service/logs/sim-logs-delivery-inspection.js +35 -0
  194. package/dist/service/logs/sim-logs-delivery-inspection.js.map +1 -0
  195. package/dist/service/logs/sim-logs-delivery-operations.d.ts +35 -0
  196. package/dist/service/logs/sim-logs-delivery-operations.d.ts.map +1 -0
  197. package/dist/service/logs/sim-logs-delivery-operations.js +58 -0
  198. package/dist/service/logs/sim-logs-delivery-operations.js.map +1 -0
  199. package/dist/service/logs/sim-logs.d.ts +8 -2
  200. package/dist/service/logs/sim-logs.d.ts.map +1 -1
  201. package/dist/service/logs/sim-logs.js +39 -33
  202. package/dist/service/logs/sim-logs.js.map +1 -1
  203. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts +83 -0
  204. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.d.ts.map +1 -0
  205. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js +87 -0
  206. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-configuration.js.map +1 -0
  207. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts +24 -0
  208. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.d.ts.map +1 -0
  209. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js +42 -0
  210. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-expiry.js.map +1 -0
  211. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts +24 -0
  212. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.d.ts.map +1 -0
  213. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js +51 -0
  214. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.js.map +1 -0
  215. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts +38 -0
  216. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.d.ts.map +1 -0
  217. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js +66 -0
  218. package/dist/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.js.map +1 -0
  219. package/dist/service/s3/bucket/sim-s3-bucket.d.ts +34 -0
  220. package/dist/service/s3/bucket/sim-s3-bucket.d.ts.map +1 -1
  221. package/dist/service/s3/bucket/sim-s3-bucket.js +43 -4
  222. package/dist/service/s3/bucket/sim-s3-bucket.js.map +1 -1
  223. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.d.ts +31 -0
  224. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.d.ts.map +1 -0
  225. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js +69 -0
  226. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.js.map +1 -0
  227. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts +31 -0
  228. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.d.ts.map +1 -0
  229. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js +50 -0
  230. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.js.map +1 -0
  231. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-transitions.d.ts +19 -0
  232. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-transitions.d.ts.map +1 -0
  233. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-transitions.js +28 -0
  234. package/dist/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-transitions.js.map +1 -0
  235. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts +1 -0
  236. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.d.ts.map +1 -1
  237. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js +11 -0
  238. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.js.map +1 -1
  239. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.d.ts.map +1 -1
  240. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js +1 -4
  241. package/dist/service/s3/cfn/bucket/sim-cfn-s3-bucket-property-names.js.map +1 -1
  242. package/dist/service/s3/command/create-bucket/create-bucket.handler.js +1 -1
  243. package/dist/service/s3/command/create-bucket/create-bucket.handler.js.map +1 -1
  244. package/dist/service/s3/command/delete-bucket-lifecycle/delete-bucket-lifecycle.command.d.ts +20 -0
  245. package/dist/service/s3/command/delete-bucket-lifecycle/delete-bucket-lifecycle.command.d.ts.map +1 -0
  246. package/dist/service/s3/command/delete-bucket-lifecycle/delete-bucket-lifecycle.command.js +2 -0
  247. package/dist/service/s3/command/delete-bucket-lifecycle/delete-bucket-lifecycle.command.js.map +1 -0
  248. package/dist/service/s3/command/delete-bucket-lifecycle/delete-bucket-lifecycle.handler.d.ts +29 -0
  249. package/dist/service/s3/command/delete-bucket-lifecycle/delete-bucket-lifecycle.handler.d.ts.map +1 -0
  250. package/dist/service/s3/command/delete-bucket-lifecycle/delete-bucket-lifecycle.handler.js +37 -0
  251. package/dist/service/s3/command/delete-bucket-lifecycle/delete-bucket-lifecycle.handler.js.map +1 -0
  252. package/dist/service/s3/command/get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.command.d.ts +26 -0
  253. package/dist/service/s3/command/get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.command.d.ts.map +1 -0
  254. package/dist/service/s3/command/get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.command.js +2 -0
  255. package/dist/service/s3/command/get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.command.js.map +1 -0
  256. package/dist/service/s3/command/get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.handler.d.ts +30 -0
  257. package/dist/service/s3/command/get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.handler.d.ts.map +1 -0
  258. package/dist/service/s3/command/get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.handler.js +43 -0
  259. package/dist/service/s3/command/get-bucket-lifecycle-configuration/get-bucket-lifecycle-configuration.handler.js.map +1 -0
  260. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-authorizer.d.ts +32 -0
  261. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-authorizer.d.ts.map +1 -0
  262. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-authorizer.js +51 -0
  263. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-authorizer.js.map +1 -0
  264. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-commands.d.ts +23 -0
  265. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-commands.d.ts.map +1 -0
  266. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-commands.js +31 -0
  267. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-commands.js.map +1 -0
  268. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.d.ts +12 -0
  269. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.d.ts.map +1 -0
  270. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js +53 -0
  271. package/dist/service/s3/command/lifecycle/sim-s3-lifecycle-rules-validation.js.map +1 -0
  272. package/dist/service/s3/command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.d.ts +111 -0
  273. package/dist/service/s3/command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.d.ts.map +1 -0
  274. package/dist/service/s3/command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.js +2 -0
  275. package/dist/service/s3/command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.js.map +1 -0
  276. package/dist/service/s3/command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.handler.d.ts +30 -0
  277. package/dist/service/s3/command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.handler.d.ts.map +1 -0
  278. package/dist/service/s3/command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.handler.js +43 -0
  279. package/dist/service/s3/command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.handler.js.map +1 -0
  280. package/dist/service/s3/command/sim-s3-command.types.d.ts +3 -0
  281. package/dist/service/s3/command/sim-s3-command.types.d.ts.map +1 -1
  282. package/dist/service/s3/error/sim-s3.error.d.ts +11 -0
  283. package/dist/service/s3/error/sim-s3.error.d.ts.map +1 -1
  284. package/dist/service/s3/error/sim-s3.error.js +13 -0
  285. package/dist/service/s3/error/sim-s3.error.js.map +1 -1
  286. package/dist/service/s3/sdk/sim-s3-sdk-command-router.d.ts.map +1 -1
  287. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js +12 -0
  288. package/dist/service/s3/sdk/sim-s3-sdk-command-router.js.map +1 -1
  289. package/dist/service/s3/sim-s3-commands.d.ts +2 -0
  290. package/dist/service/s3/sim-s3-commands.d.ts.map +1 -1
  291. package/dist/service/s3/sim-s3-commands.js +3 -0
  292. package/dist/service/s3/sim-s3-commands.js.map +1 -1
  293. package/dist/service/s3/sim-s3-operations.d.ts +6 -0
  294. package/dist/service/s3/sim-s3-operations.d.ts.map +1 -1
  295. package/dist/service/s3/sim-s3-operations.js +12 -0
  296. package/dist/service/s3/sim-s3-operations.js.map +1 -1
  297. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts +9 -0
  298. package/dist/service/s3/upload/sim-s3-multipart-uploads.d.ts.map +1 -1
  299. package/dist/service/s3/upload/sim-s3-multipart-uploads.js +15 -0
  300. package/dist/service/s3/upload/sim-s3-multipart-uploads.js.map +1 -1
  301. package/dist/terraform/map/sim-tf-map-s3-lifecycle.d.ts.map +1 -1
  302. package/dist/terraform/map/sim-tf-map-s3-lifecycle.js +4 -5
  303. package/dist/terraform/map/sim-tf-map-s3-lifecycle.js.map +1 -1
  304. package/dist/util/clock/sim-clock-control.d.ts +8 -0
  305. package/dist/util/clock/sim-clock-control.d.ts.map +1 -1
  306. package/dist/util/clock/sim-clock-control.js +10 -0
  307. package/dist/util/clock/sim-clock-control.js.map +1 -1
  308. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-lifecycle-selection.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/lifecycle/sim-s3-lifecycle-selection.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAwB,EACxB,OAA8B;IAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CACpB,MAAgC,EAChC,OAA8B;IAE9B,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAuC,EACvC,OAA8B;IAE9B,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;QAC7C,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CACjB,MAAgC,EAChC,OAA8B;IAE9B,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GACxE,MAAM,CAAC;IAET,IAAI,WAAW,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;QACzD,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { SimS3Object } from "../../object/s3-object.js";
2
+ import type { SimS3BucketStorage } from "../../storage/s3-bucket-storage.js";
3
+ import type { SimS3LifecycleConfiguration } from "./sim-s3-lifecycle-configuration.js";
4
+ /**
5
+ * One pass over what a Bucket's lifecycle rules have expired.
6
+ *
7
+ * A Bucket makes one of these per read and throws it away, because both halves
8
+ * of it can be replaced while the Bucket is running. `configureSimStorage`
9
+ * swaps the storage, and PutBucketLifecycleConfiguration replaces the rules.
10
+ *
11
+ * Expiry happens here rather than on a schedule, which leaves a Bucket
12
+ * carrying no rules paying one comparison for the check. See
13
+ * `simS3ObjectExpiryInstant` for why the boundary is a pure function of the
14
+ * current time.
15
+ *
16
+ * Nothing is announced. Real S3 raises `s3:LifecycleExpiration:Delete` for an
17
+ * expiry, and that event family is among the ones simulated S3 leaves out.
18
+ */
19
+ export declare class SimS3LifecycleSweep {
20
+ private readonly storage;
21
+ private readonly lifecycle;
22
+ private readonly now;
23
+ constructor(storage: SimS3BucketStorage, lifecycle: SimS3LifecycleConfiguration, now: Date);
24
+ /**
25
+ * Remove one Object if the rules have expired it.
26
+ *
27
+ * The Object is answered when it survives and nothing is when it does not,
28
+ * so a read hands on whatever it gets. A key holding nothing stays nothing.
29
+ */
30
+ object(object: SimS3Object | undefined): Promise<SimS3Object | undefined>;
31
+ /**
32
+ * Remove the Objects among these the rules have expired, and answer with the
33
+ * ones still there.
34
+ */
35
+ objects(objects: readonly SimS3Object[]): Promise<SimS3Object[]>;
36
+ private expires;
37
+ }
38
+ //# sourceMappingURL=sim-s3-lifecycle-sweep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-lifecycle-sweep.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHtB,YACmB,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,2BAA2B,EACtC,GAAG,EAAE,IAAI,EACxB;IAEJ;;;;;OAKG;IACG,MAAM,CACV,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAQlC;IAED;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAcrE;IAED,OAAO,CAAC,OAAO;CAMhB"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * One pass over what a Bucket's lifecycle rules have expired.
3
+ *
4
+ * A Bucket makes one of these per read and throws it away, because both halves
5
+ * of it can be replaced while the Bucket is running. `configureSimStorage`
6
+ * swaps the storage, and PutBucketLifecycleConfiguration replaces the rules.
7
+ *
8
+ * Expiry happens here rather than on a schedule, which leaves a Bucket
9
+ * carrying no rules paying one comparison for the check. See
10
+ * `simS3ObjectExpiryInstant` for why the boundary is a pure function of the
11
+ * current time.
12
+ *
13
+ * Nothing is announced. Real S3 raises `s3:LifecycleExpiration:Delete` for an
14
+ * expiry, and that event family is among the ones simulated S3 leaves out.
15
+ */
16
+ export class SimS3LifecycleSweep {
17
+ storage;
18
+ lifecycle;
19
+ now;
20
+ constructor(storage, lifecycle, now) {
21
+ this.storage = storage;
22
+ this.lifecycle = lifecycle;
23
+ this.now = now;
24
+ }
25
+ /**
26
+ * Remove one Object if the rules have expired it.
27
+ *
28
+ * The Object is answered when it survives and nothing is when it does not,
29
+ * so a read hands on whatever it gets. A key holding nothing stays nothing.
30
+ */
31
+ async object(object) {
32
+ if (object === undefined || !this.expires(object)) {
33
+ return object;
34
+ }
35
+ await this.storage.deleteObject(object.key);
36
+ return undefined;
37
+ }
38
+ /**
39
+ * Remove the Objects among these the rules have expired, and answer with the
40
+ * ones still there.
41
+ */
42
+ async objects(objects) {
43
+ if (this.lifecycle.isEmpty) {
44
+ return [...objects];
45
+ }
46
+ const expiredKeys = new Set(objects.filter((object) => this.expires(object)).map(({ key }) => key));
47
+ await Promise.all(expiredKeys.values().map(async (key) => this.storage.deleteObject(key)));
48
+ return objects.filter((object) => !expiredKeys.has(object.key));
49
+ }
50
+ expires(object) {
51
+ return (!this.lifecycle.isEmpty &&
52
+ this.lifecycle.expires(lifecycleObject(object), this.now));
53
+ }
54
+ }
55
+ /**
56
+ * An Object as a rule reads it. The size is the length of the bytes the
57
+ * Bucket holds, which is what `ContentLength` reports for the same Object.
58
+ */
59
+ function lifecycleObject(object) {
60
+ return {
61
+ key: object.key,
62
+ size: object.body.length,
63
+ lastModified: object.lastModified,
64
+ };
65
+ }
66
+ //# sourceMappingURL=sim-s3-lifecycle-sweep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-s3-lifecycle-sweep.js","sourceRoot":"","sources":["../../../../../src/service/s3/bucket/lifecycle/sim-s3-lifecycle-sweep.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,mBAAmB;IAEX,OAAO;IACP,SAAS;IACT,GAAG;IAHtB,YACmB,OAA2B,EAC3B,SAAsC,EACtC,GAAS;uBAFT,OAAO;yBACP,SAAS;mBACT,GAAG;IACnB,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,MAA+B;QAE/B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,OAA+B;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CACvE,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACf,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CACxE,CAAC;QAEF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC;IAEO,OAAO,CAAC,MAAmB;QACjC,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAC1D,CAAC;IACJ,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,MAAmB;IAC1C,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QACxB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import type { Brand } from "../../../util/brand.type.js";
2
+ import { type SimClock } from "../../../util/clock/sim-clock.js";
2
3
  import type { SimS3BucketStorage } from "../storage/s3-bucket-storage.js";
3
4
  import type { SimS3Object } from "../object/s3-object.js";
4
5
  import { SimS3BucketWebsite } from "./website/sim-s3-bucket-website.js";
5
6
  import { SimS3PublicAccessBlock } from "./public-access/sim-s3-public-access-block.js";
6
7
  import { SimS3NotificationConfiguration } from "./notification/sim-s3-notification-configuration.js";
8
+ import { SimS3LifecycleConfiguration } from "./lifecycle/sim-s3-lifecycle-configuration.js";
7
9
  import type { SimAwsAccountRegionScope } from "../../aws/sim-aws-account-region-scope.js";
8
10
  import type { SimIamPolicyDocument } from "../../iam/policy/sim-iam-policy.js";
9
11
  import { SimS3BucketSystemMetadata } from "./sim-s3-bucket-system-metadata.js";
@@ -17,6 +19,13 @@ interface SimS3BucketProperties {
17
19
  readonly policy?: SimIamPolicyDocument | undefined;
18
20
  readonly publicAccessBlock?: SimS3PublicAccessBlock;
19
21
  readonly notifications?: SimS3NotificationConfiguration;
22
+ readonly lifecycle?: SimS3LifecycleConfiguration;
23
+ /**
24
+ * The simulation's sense of time, which is what a lifecycle rule is measured
25
+ * against. A Bucket made outside a simulated environment has none to be
26
+ * given, and runs on the host clock.
27
+ */
28
+ readonly clock?: SimClock;
20
29
  /**
21
30
  * When the Bucket came into being, in simulated time.
22
31
  *
@@ -32,6 +41,7 @@ export declare class SimS3Bucket {
32
41
  readonly bucketName: SimS3BucketName;
33
42
  readonly creationDate: Date;
34
43
  private readonly accountRegionScope;
44
+ private readonly clock;
35
45
  private readonly systemMetadata;
36
46
  private readonly multipartUploads;
37
47
  private storage;
@@ -39,6 +49,7 @@ export declare class SimS3Bucket {
39
49
  private policy;
40
50
  private publicAccessBlock;
41
51
  private notifications;
52
+ private lifecycle;
42
53
  constructor(properties: SimS3BucketProperties);
43
54
  /**
44
55
  * Put a simulated S3 Object into storage.
@@ -46,6 +57,9 @@ export declare class SimS3Bucket {
46
57
  putObject(object: SimS3Object): Promise<void>;
47
58
  /**
48
59
  * Get a simulated S3 Object from storage.
60
+ *
61
+ * An Object a lifecycle rule has expired goes on the way past. Every read of
62
+ * it then finds the key empty.
49
63
  */
50
64
  getObject(key: string): Promise<SimS3Object | undefined>;
51
65
  /**
@@ -132,6 +146,24 @@ export declare class SimS3Bucket {
132
146
  * Get this Bucket's event notification configuration.
133
147
  */
134
148
  getNotifications(): SimS3NotificationConfiguration;
149
+ /**
150
+ * Replace this Bucket's lifecycle configuration.
151
+ *
152
+ * Real S3 holds one configuration per Bucket rather than a list of them, so
153
+ * this replaces what was there instead of adding to it.
154
+ */
155
+ configureLifecycle(lifecycle: SimS3LifecycleConfiguration): void;
156
+ /**
157
+ * Get this Bucket's lifecycle configuration.
158
+ */
159
+ getLifecycle(): SimS3LifecycleConfiguration;
160
+ /**
161
+ * Remove this Bucket's lifecycle configuration.
162
+ *
163
+ * Real S3 DeleteBucketLifecycle is idempotent, so this reports nothing about
164
+ * whether there were rules to remove.
165
+ */
166
+ deleteLifecycle(): void;
135
167
  /**
136
168
  * Get the simulated AWS account Region scope for this Bucket.
137
169
  */
@@ -140,6 +172,8 @@ export declare class SimS3Bucket {
140
172
  * Get the simulated S3 static website URL for this Bucket.
141
173
  */
142
174
  getWebsiteUrl(): URL;
175
+ /** What this Bucket's rules have expired, as they stand at this moment. */
176
+ private sweep;
143
177
  }
144
178
  export {};
145
179
  //# sourceMappingURL=sim-s3-bucket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-bucket.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-s3-bucket.d.ts","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { BackgroundTasks } from "../../../util/background/background.js";
1
+ import { SimRealClock } from "../../../util/clock/sim-clock.js";
2
2
  import { MemoryS3BucketStorage } from "../storage/s3-memory-storage.js";
3
3
  import { SimS3BucketWebsite } from "./website/sim-s3-bucket-website.js";
4
4
  import { SimS3PublicAccessBlock } from "./public-access/sim-s3-public-access-block.js";
5
5
  import { SimS3NotificationConfiguration } from "./notification/sim-s3-notification-configuration.js";
6
+ import { SimS3LifecycleConfiguration } from "./lifecycle/sim-s3-lifecycle-configuration.js";
7
+ import { SimS3LifecycleSweep } from "./lifecycle/sim-s3-lifecycle-sweep.js";
6
8
  import { simS3BucketWebsiteUrl } from "./website/sim-s3-bucket-website-url.js";
7
9
  import { validateS3BucketName } from "./validate/validate-s3-bucket-name.js";
8
10
  import { simAwsAccountRegionScopeFactory } from "../../aws/sim-aws-account-region-scope.factory.js";
@@ -15,6 +17,7 @@ export class SimS3Bucket {
15
17
  bucketName;
16
18
  creationDate;
17
19
  accountRegionScope;
20
+ clock;
18
21
  systemMetadata = new SimS3BucketSystemMetadata();
19
22
  multipartUploads = new SimS3MultipartUploads();
20
23
  storage;
@@ -22,16 +25,19 @@ export class SimS3Bucket {
22
25
  policy;
23
26
  publicAccessBlock;
24
27
  notifications;
28
+ lifecycle;
25
29
  constructor(properties) {
26
- const { bucketName, accountRegionScope = simAwsAccountRegionScopeFactory.make(), storage = new MemoryS3BucketStorage(), website = new SimS3BucketWebsite(), policy, publicAccessBlock = SimS3PublicAccessBlock.blockingAll(), notifications = SimS3NotificationConfiguration.empty(), creationDate = new BackgroundTasks().now(), } = properties;
30
+ const { bucketName, accountRegionScope = simAwsAccountRegionScopeFactory.make(), storage = new MemoryS3BucketStorage(), website = new SimS3BucketWebsite(), policy, publicAccessBlock = SimS3PublicAccessBlock.blockingAll(), notifications = SimS3NotificationConfiguration.empty(), lifecycle = SimS3LifecycleConfiguration.empty(), clock = new SimRealClock(), creationDate = clock.now(), } = properties;
27
31
  validateS3BucketName(bucketName);
28
32
  this.bucketName = bucketName;
29
33
  this.accountRegionScope = accountRegionScope;
34
+ this.clock = clock;
30
35
  this.storage = storage;
31
36
  this.website = website;
32
37
  this.policy = policy;
33
38
  this.publicAccessBlock = publicAccessBlock;
34
39
  this.notifications = notifications;
40
+ this.lifecycle = lifecycle;
35
41
  this.creationDate = creationDate;
36
42
  }
37
43
  /**
@@ -42,15 +48,18 @@ export class SimS3Bucket {
42
48
  }
43
49
  /**
44
50
  * Get a simulated S3 Object from storage.
51
+ *
52
+ * An Object a lifecycle rule has expired goes on the way past. Every read of
53
+ * it then finds the key empty.
45
54
  */
46
55
  async getObject(key) {
47
- return await this.storage.getObject(key);
56
+ return await this.sweep().object(await this.storage.getObject(key));
48
57
  }
49
58
  /**
50
59
  * List simulated S3 Objects from storage.
51
60
  */
52
61
  async listObjects(prefix) {
53
- return await this.storage.listObjects(prefix);
62
+ return await this.sweep().objects(await this.storage.listObjects(prefix));
54
63
  }
55
64
  /**
56
65
  * Remove a simulated S3 Object from storage.
@@ -72,6 +81,8 @@ export class SimS3Bucket {
72
81
  * completing the upload puts anything under a key.
73
82
  */
74
83
  getMultipartUploads() {
84
+ const now = this.clock.now();
85
+ this.multipartUploads.discardAbandoned((upload) => this.lifecycle.abandons(upload, now));
75
86
  return this.multipartUploads;
76
87
  }
77
88
  /**
@@ -160,6 +171,30 @@ export class SimS3Bucket {
160
171
  getNotifications() {
161
172
  return this.notifications;
162
173
  }
174
+ /**
175
+ * Replace this Bucket's lifecycle configuration.
176
+ *
177
+ * Real S3 holds one configuration per Bucket rather than a list of them, so
178
+ * this replaces what was there instead of adding to it.
179
+ */
180
+ configureLifecycle(lifecycle) {
181
+ this.lifecycle = lifecycle;
182
+ }
183
+ /**
184
+ * Get this Bucket's lifecycle configuration.
185
+ */
186
+ getLifecycle() {
187
+ return this.lifecycle;
188
+ }
189
+ /**
190
+ * Remove this Bucket's lifecycle configuration.
191
+ *
192
+ * Real S3 DeleteBucketLifecycle is idempotent, so this reports nothing about
193
+ * whether there were rules to remove.
194
+ */
195
+ deleteLifecycle() {
196
+ this.lifecycle = SimS3LifecycleConfiguration.empty();
197
+ }
163
198
  /**
164
199
  * Get the simulated AWS account Region scope for this Bucket.
165
200
  */
@@ -172,5 +207,9 @@ export class SimS3Bucket {
172
207
  getWebsiteUrl() {
173
208
  return simS3BucketWebsiteUrl(this.bucketName, this.accountRegionScope, this.website);
174
209
  }
210
+ /** What this Bucket's rules have expired, as they stand at this moment. */
211
+ sweep() {
212
+ return new SimS3LifecycleSweep(this.storage, this.lifecycle, this.clock.now());
213
+ }
175
214
  }
176
215
  //# sourceMappingURL=sim-s3-bucket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-s3-bucket.js","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-s3-bucket.js","sourceRoot":"","sources":["../../../../src/service/s3/bucket/sim-s3-bucket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { SimCfnTemplateValueRecord } from "../../../../cloudformation/template/value/sim-cfn-template-value.js";
2
+ import type { SimS3LifecycleConfiguration } from "../../../command/put-bucket-lifecycle-configuration/put-bucket-lifecycle-configuration.command.js";
3
+ /**
4
+ * Reads the `LifecycleConfiguration` property of an AWS::S3::Bucket Resource
5
+ * into a PutBucketLifecycleConfiguration request.
6
+ *
7
+ * A rule field this reader has no translation for is carried across unchanged
8
+ * rather than dropped or refused. Dropping it would deploy a Bucket whose
9
+ * rules read back shorter than the template asked for, and refusing it would
10
+ * fail a Stack over a field nothing in the simulation acts on anyway.
11
+ */
12
+ export declare class SimCfnS3BucketLifecycleConfiguration {
13
+ private readonly properties;
14
+ private readonly shape;
15
+ constructor(logicalId: string, properties: SimCfnTemplateValueRecord);
16
+ /**
17
+ * The configuration to apply, or nothing when the Resource declares none.
18
+ *
19
+ * A configuration that is there but is not the shape it should be fails the
20
+ * Resource. Read as nothing, it would deploy a Bucket whose rules a test
21
+ * then finds missing without being told why.
22
+ */
23
+ read(): SimS3LifecycleConfiguration | undefined;
24
+ private readRule;
25
+ /**
26
+ * The three flattened expiry fields, gathered under the one the request
27
+ * carries. A rule stating none of them keeps no `Expiration` at all.
28
+ */
29
+ private expiration;
30
+ }
31
+ //# sourceMappingURL=sim-cfn-s3-bucket-lifecycle-configuration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-lifecycle-configuration.d.ts","sourceRoot":"","sources":["../../../../../../src/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,qEAAqE,CAAC;AAE7E,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,mGAAmG,CAAC;AAS3G;;;;;;;;GAQG;AACH,qBAAa,oCAAoC;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEzC,YAAY,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,yBAAyB,EAKnE;IAED;;;;;;OAMG;IACH,IAAI,IAAI,2BAA2B,GAAG,SAAS,CAgB9C;IAED,OAAO,CAAC,QAAQ;IAsBhB;;;OAGG;IACH,OAAO,CAAC,UAAU;CAWnB"}
@@ -0,0 +1,69 @@
1
+ import { SimCfnValueShape } from "../../../../cloudformation/template/value/sim-cfn-value-shape.js";
2
+ import { s3BucketResourceError } from "../error/sim-cfn-s3-bucket-error.js";
3
+ import { simCfnS3CarriedRuleFields, simCfnS3LifecycleDate, simCfnS3StatedFields, } from "./sim-cfn-s3-bucket-lifecycle-fields.js";
4
+ import { readSimCfnS3LifecycleTransitions } from "./sim-cfn-s3-bucket-lifecycle-transitions.js";
5
+ /**
6
+ * Reads the `LifecycleConfiguration` property of an AWS::S3::Bucket Resource
7
+ * into a PutBucketLifecycleConfiguration request.
8
+ *
9
+ * A rule field this reader has no translation for is carried across unchanged
10
+ * rather than dropped or refused. Dropping it would deploy a Bucket whose
11
+ * rules read back shorter than the template asked for, and refusing it would
12
+ * fail a Stack over a field nothing in the simulation acts on anyway.
13
+ */
14
+ export class SimCfnS3BucketLifecycleConfiguration {
15
+ properties;
16
+ shape;
17
+ constructor(logicalId, properties) {
18
+ this.properties = properties;
19
+ this.shape = new SimCfnValueShape((reason) => s3BucketResourceError(logicalId, reason));
20
+ }
21
+ /**
22
+ * The configuration to apply, or nothing when the Resource declares none.
23
+ *
24
+ * A configuration that is there but is not the shape it should be fails the
25
+ * Resource. Read as nothing, it would deploy a Bucket whose rules a test
26
+ * then finds missing without being told why.
27
+ */
28
+ read() {
29
+ const declared = this.properties["LifecycleConfiguration"];
30
+ if (declared === undefined) {
31
+ return undefined;
32
+ }
33
+ const configuration = this.shape.record(declared, "LifecycleConfiguration");
34
+ const rules = this.shape.list(configuration["Rules"] ?? [], "LifecycleConfiguration Rules");
35
+ return {
36
+ Rules: rules.map((rule, index) => this.readRule(rule, index)),
37
+ };
38
+ }
39
+ readRule(declared, index) {
40
+ const path = `LifecycleConfiguration Rules[${index}]`;
41
+ const rule = this.shape.record(declared, path);
42
+ return {
43
+ ...simCfnS3CarriedRuleFields(rule),
44
+ ...simCfnS3StatedFields({
45
+ ID: rule["Id"],
46
+ Expiration: this.expiration(rule),
47
+ Transitions: readSimCfnS3LifecycleTransitions({
48
+ shape: this.shape,
49
+ listed: rule["Transitions"],
50
+ singular: rule["Transition"],
51
+ path,
52
+ }),
53
+ }),
54
+ };
55
+ }
56
+ /**
57
+ * The three flattened expiry fields, gathered under the one the request
58
+ * carries. A rule stating none of them keeps no `Expiration` at all.
59
+ */
60
+ expiration(rule) {
61
+ const expiration = {
62
+ Date: simCfnS3LifecycleDate(rule["ExpirationDate"]),
63
+ Days: rule["ExpirationInDays"],
64
+ ExpiredObjectDeleteMarker: rule["ExpiredObjectDeleteMarker"],
65
+ };
66
+ return simCfnS3StatedFields(expiration);
67
+ }
68
+ }
69
+ //# sourceMappingURL=sim-cfn-s3-bucket-lifecycle-configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-lifecycle-configuration.js","sourceRoot":"","sources":["../../../../../../src/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-configuration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kEAAkE,CAAC;AAKpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAEhG;;;;;;;;GAQG;AACH,MAAM,OAAO,oCAAoC;IAC9B,UAAU,CAA4B;IACtC,KAAK,CAAmB;IAEzC,YAAY,SAAiB,EAAE,UAAqC;QAClE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CACzC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;QAE3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAC3B,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAC5B,8BAA8B,CAC/B,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC9D,CAAC;IACJ,CAAC;IAEO,QAAQ,CACd,QAA6B,EAC7B,KAAa;QAEb,MAAM,IAAI,GAAG,gCAAgC,KAAK,GAAG,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE/C,OAAO;YACL,GAAG,yBAAyB,CAAC,IAAI,CAAC;YAClC,GAAG,oBAAoB,CAAC;gBACtB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;gBACd,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACjC,WAAW,EAAE,gCAAgC,CAAC;oBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC;oBAC3B,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;oBAC5B,IAAI;iBACL,CAAC;aACH,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,UAAU,CAChB,IAA+B;QAE/B,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC;YAC9B,yBAAyB,EAAE,IAAI,CAAC,2BAA2B,CAAC;SAC7D,CAAC;QAEF,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ import type { SimCfnTemplateValue, SimCfnTemplateValueRecord } from "../../../../cloudformation/template/value/sim-cfn-template-value.js";
2
+ /**
3
+ * The rule fields CloudFormation and the SDK spell differently.
4
+ *
5
+ * CloudFormation flattens an expiry onto the rule and names a transition's
6
+ * timing after it, where the request nests both. Everything absent from here,
7
+ * `Status`, `Prefix`, `AbortIncompleteMultipartUpload`, `TagFilters` and the
8
+ * object size bounds among them, is spelled the same way in both and goes
9
+ * through untouched.
10
+ */
11
+ export declare const simCfnS3TranslatedLifecycleFields: ReadonlySet<string>;
12
+ /**
13
+ * A timestamp as the request wants it. CloudFormation states one as a string,
14
+ * and anything else is left as it came so the shape check that follows sees
15
+ * what the template actually said.
16
+ */
17
+ export declare function simCfnS3LifecycleDate(value: SimCfnTemplateValue | undefined): SimCfnTemplateValue | undefined;
18
+ /**
19
+ * The fields that were stated, or nothing at all when none of them were.
20
+ */
21
+ export declare function simCfnS3StatedFields(fields: Record<string, SimCfnTemplateValue | undefined>): SimCfnTemplateValueRecord | undefined;
22
+ /**
23
+ * The fields of a rule this reader has no translation for.
24
+ *
25
+ * Carried across unchanged rather than dropped or refused. Dropping one would
26
+ * deploy a Bucket whose rules read back shorter than the template asked for,
27
+ * and refusing one would fail a Stack over a field nothing in the simulation
28
+ * acts on anyway.
29
+ */
30
+ export declare function simCfnS3CarriedRuleFields(rule: SimCfnTemplateValueRecord): SimCfnTemplateValueRecord;
31
+ //# sourceMappingURL=sim-cfn-s3-bucket-lifecycle-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-lifecycle-fields.d.ts","sourceRoot":"","sources":["../../../../../../src/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qEAAqE,CAAC;AAE7E;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,EAAE,WAAW,CAAC,MAAM,CAOhE,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,GAAG,SAAS,GACrC,mBAAmB,GAAG,SAAS,CAMjC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,GACtD,yBAAyB,GAAG,SAAS,CAUvC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,yBAAyB,GAC9B,yBAAyB,CAM3B"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The rule fields CloudFormation and the SDK spell differently.
3
+ *
4
+ * CloudFormation flattens an expiry onto the rule and names a transition's
5
+ * timing after it, where the request nests both. Everything absent from here,
6
+ * `Status`, `Prefix`, `AbortIncompleteMultipartUpload`, `TagFilters` and the
7
+ * object size bounds among them, is spelled the same way in both and goes
8
+ * through untouched.
9
+ */
10
+ export const simCfnS3TranslatedLifecycleFields = new Set([
11
+ "Id",
12
+ "ExpirationDate",
13
+ "ExpirationInDays",
14
+ "ExpiredObjectDeleteMarker",
15
+ "Transition",
16
+ "Transitions",
17
+ ]);
18
+ /**
19
+ * A timestamp as the request wants it. CloudFormation states one as a string,
20
+ * and anything else is left as it came so the shape check that follows sees
21
+ * what the template actually said.
22
+ */
23
+ export function simCfnS3LifecycleDate(value) {
24
+ if (typeof value !== "string") {
25
+ return value;
26
+ }
27
+ return new Date(value);
28
+ }
29
+ /**
30
+ * The fields that were stated, or nothing at all when none of them were.
31
+ */
32
+ export function simCfnS3StatedFields(fields) {
33
+ const stated = Object.entries(fields).filter(([, value]) => value !== undefined);
34
+ if (stated.length === 0) {
35
+ return undefined;
36
+ }
37
+ return Object.fromEntries(stated);
38
+ }
39
+ /**
40
+ * The fields of a rule this reader has no translation for.
41
+ *
42
+ * Carried across unchanged rather than dropped or refused. Dropping one would
43
+ * deploy a Bucket whose rules read back shorter than the template asked for,
44
+ * and refusing one would fail a Stack over a field nothing in the simulation
45
+ * acts on anyway.
46
+ */
47
+ export function simCfnS3CarriedRuleFields(rule) {
48
+ return Object.fromEntries(Object.entries(rule).filter(([name]) => !simCfnS3TranslatedLifecycleFields.has(name)));
49
+ }
50
+ //# sourceMappingURL=sim-cfn-s3-bucket-lifecycle-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-lifecycle-fields.js","sourceRoot":"","sources":["../../../../../../src/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-fields.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAwB,IAAI,GAAG,CAAC;IAC5E,IAAI;IACJ,gBAAgB;IAChB,kBAAkB;IAClB,2BAA2B;IAC3B,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAsC;IAEtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,KAAK,CAAmC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAuD;IAEvD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CACnC,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAA8B,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAA+B;IAE/B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CACzB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,iCAAiC,CAAC,GAAG,CAAC,IAAI,CAAC,CACzD,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { SimCfnTemplateValue } from "../../../../cloudformation/template/value/sim-cfn-template-value.js";
2
+ import type { SimCfnValueShape } from "../../../../cloudformation/template/value/sim-cfn-value-shape.js";
3
+ interface SimCfnS3LifecycleTransitionsProperties {
4
+ readonly shape: SimCfnValueShape;
5
+ readonly listed: SimCfnTemplateValue | undefined;
6
+ readonly singular: SimCfnTemplateValue | undefined;
7
+ readonly path: string;
8
+ }
9
+ /**
10
+ * Reads the storage class transitions of one AWS::S3::Bucket lifecycle rule.
11
+ *
12
+ * A template may state them as a `Transitions` list, as a singular
13
+ * `Transition`, or as both, and CloudFormation accepts all three. They arrive
14
+ * as the one list the request carries. Each one is timed by `Days` or `Date`
15
+ * where the template says `TransitionInDays` or `TransitionDate`.
16
+ */
17
+ export declare function readSimCfnS3LifecycleTransitions(properties: SimCfnS3LifecycleTransitionsProperties): SimCfnTemplateValue[] | undefined;
18
+ export {};
19
+ //# sourceMappingURL=sim-cfn-s3-bucket-lifecycle-transitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-lifecycle-transitions.d.ts","sourceRoot":"","sources":["../../../../../../src/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kEAAkE,CAAC;AAMzG,UAAU,sCAAsC;IAC9C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,sCAAsC,GACjD,mBAAmB,EAAE,GAAG,SAAS,CAwBnC"}
@@ -0,0 +1,28 @@
1
+ import { simCfnS3LifecycleDate, simCfnS3StatedFields, } from "./sim-cfn-s3-bucket-lifecycle-fields.js";
2
+ /**
3
+ * Reads the storage class transitions of one AWS::S3::Bucket lifecycle rule.
4
+ *
5
+ * A template may state them as a `Transitions` list, as a singular
6
+ * `Transition`, or as both, and CloudFormation accepts all three. They arrive
7
+ * as the one list the request carries. Each one is timed by `Days` or `Date`
8
+ * where the template says `TransitionInDays` or `TransitionDate`.
9
+ */
10
+ export function readSimCfnS3LifecycleTransitions(properties) {
11
+ const { shape, listed, singular, path } = properties;
12
+ const declared = listed === undefined ? [] : shape.list(listed, `${path} Transitions`);
13
+ const all = singular === undefined ? declared : [...declared, singular];
14
+ if (all.length === 0) {
15
+ return undefined;
16
+ }
17
+ return all.map((transition, position) => {
18
+ const { TransitionDate, TransitionInDays, ...carried } = shape.record(transition, `${path} Transitions[${position}]`);
19
+ return {
20
+ ...carried,
21
+ ...simCfnS3StatedFields({
22
+ Date: simCfnS3LifecycleDate(TransitionDate),
23
+ Days: TransitionInDays,
24
+ }),
25
+ };
26
+ });
27
+ }
28
+ //# sourceMappingURL=sim-cfn-s3-bucket-lifecycle-transitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-cfn-s3-bucket-lifecycle-transitions.js","sourceRoot":"","sources":["../../../../../../src/service/s3/cfn/bucket/lifecycle/sim-cfn-s3-bucket-lifecycle-transitions.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;AASjD;;;;;;;GAOG;AACH,MAAM,UAAU,gCAAgC,CAC9C,UAAkD;IAElD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;IACrD,MAAM,QAAQ,GACZ,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;QACtC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CACnE,UAAU,EACV,GAAG,IAAI,gBAAgB,QAAQ,GAAG,CACnC,CAAC;QAEF,OAAO;YACL,GAAG,OAAO;YACV,GAAG,oBAAoB,CAAC;gBACtB,IAAI,EAAE,qBAAqB,CAAC,cAAc,CAAC;gBAC3C,IAAI,EAAE,gBAAgB;aACvB,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -30,6 +30,7 @@ export declare class SimCfnS3BucketConfigurator {
30
30
  configure(): Promise<void>;
31
31
  private configureWebsite;
32
32
  private configurePublicAccess;
33
+ private configureLifecycle;
33
34
  private configureNotifications;
34
35
  }
35
36
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"sim-cfn-s3-bucket-configurator.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.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,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,UAAU,oCAAoC;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,YAAY,UAAU,EAAE,oCAAoC,EAK3D;IAED;;;;;;OAMG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAI/B;YAEa,gBAAgB;YAehB,qBAAqB;YAkBrB,sBAAsB;CAkBrC"}
1
+ {"version":3,"file":"sim-cfn-s3-bucket-configurator.d.ts","sourceRoot":"","sources":["../../../../../src/service/s3/cfn/bucket/sim-cfn-s3-bucket-configurator.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,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAM7C,UAAU,oCAAoC;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,YAAY,UAAU,EAAE,oCAAoC,EAK3D;IAED;;;;;;OAMG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAK/B;YAEa,gBAAgB;YAehB,qBAAqB;YAkBrB,kBAAkB;YAelB,sBAAsB;CAkBrC"}