@quadnix/octo 0.0.30 → 0.2.0

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 (383) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +117 -8
  3. package/dist/app.type.d.ts +277 -19
  4. package/dist/app.type.js +80 -9
  5. package/dist/app.type.js.map +1 -1
  6. package/dist/decorators/action.decorator.d.ts +10 -6
  7. package/dist/decorators/action.decorator.js +19 -6
  8. package/dist/decorators/action.decorator.js.map +1 -1
  9. package/dist/decorators/anchor.decorator.d.ts +12 -5
  10. package/dist/decorators/anchor.decorator.js +12 -5
  11. package/dist/decorators/anchor.decorator.js.map +1 -1
  12. package/dist/decorators/enable-hook.decorator.d.ts +1 -1
  13. package/dist/decorators/enable-hook.decorator.js +1 -1
  14. package/dist/decorators/factory.decorator.d.ts +18 -34
  15. package/dist/decorators/factory.decorator.js +18 -34
  16. package/dist/decorators/factory.decorator.js.map +1 -1
  17. package/dist/decorators/model.decorator.d.ts +4 -6
  18. package/dist/decorators/model.decorator.js +2 -7
  19. package/dist/decorators/model.decorator.js.map +1 -1
  20. package/dist/decorators/module.decorator.d.ts +16 -10
  21. package/dist/decorators/module.decorator.js +16 -10
  22. package/dist/decorators/module.decorator.js.map +1 -1
  23. package/dist/decorators/on-event.decorator.d.ts +7 -2
  24. package/dist/decorators/on-event.decorator.js +5 -0
  25. package/dist/decorators/on-event.decorator.js.map +1 -1
  26. package/dist/decorators/resource.decorator.d.ts +50 -1
  27. package/dist/decorators/resource.decorator.js +38 -1
  28. package/dist/decorators/resource.decorator.js.map +1 -1
  29. package/dist/decorators/validate.decorator.d.ts +15 -1
  30. package/dist/decorators/validate.decorator.js +15 -1
  31. package/dist/decorators/validate.decorator.js.map +1 -1
  32. package/dist/errors/container.error.d.ts +18 -0
  33. package/dist/errors/container.error.js +18 -0
  34. package/dist/errors/container.error.js.map +1 -1
  35. package/dist/errors/index.d.ts +1 -0
  36. package/dist/errors/index.js +1 -0
  37. package/dist/errors/index.js.map +1 -1
  38. package/dist/errors/module.error.d.ts +6 -0
  39. package/dist/errors/module.error.js +6 -0
  40. package/dist/errors/module.error.js.map +1 -1
  41. package/dist/errors/node.error.d.ts +56 -0
  42. package/dist/errors/node.error.js +56 -0
  43. package/dist/errors/node.error.js.map +1 -1
  44. package/dist/errors/schema.error.d.ts +14 -1
  45. package/dist/errors/schema.error.js +11 -1
  46. package/dist/errors/schema.error.js.map +1 -1
  47. package/dist/errors/terraform.error.d.ts +20 -0
  48. package/dist/errors/terraform.error.js +24 -0
  49. package/dist/errors/terraform.error.js.map +1 -0
  50. package/dist/errors/transaction.error.d.ts +93 -2
  51. package/dist/errors/transaction.error.js +83 -0
  52. package/dist/errors/transaction.error.js.map +1 -1
  53. package/dist/events/action.event.d.ts +8 -4
  54. package/dist/events/action.event.js +2 -4
  55. package/dist/events/action.event.js.map +1 -1
  56. package/dist/events/command.event.d.ts +43 -0
  57. package/dist/events/command.event.js +33 -0
  58. package/dist/events/command.event.js.map +1 -0
  59. package/dist/events/event.model.d.ts +26 -8
  60. package/dist/events/event.model.js +15 -7
  61. package/dist/events/event.model.js.map +1 -1
  62. package/dist/events/hook/commit.hook.event.d.ts +1 -7
  63. package/dist/events/hook/commit.hook.event.js +0 -6
  64. package/dist/events/hook/commit.hook.event.js.map +1 -1
  65. package/dist/events/hook/hook.event.d.ts +1 -3
  66. package/dist/events/hook/hook.event.js +0 -2
  67. package/dist/events/hook/hook.event.js.map +1 -1
  68. package/dist/events/hook/model.hook.event.d.ts +1 -7
  69. package/dist/events/hook/model.hook.event.js +0 -6
  70. package/dist/events/hook/model.hook.event.js.map +1 -1
  71. package/dist/events/hook/resource.hook.event.d.ts +1 -7
  72. package/dist/events/hook/resource.hook.event.js +0 -6
  73. package/dist/events/hook/resource.hook.event.js.map +1 -1
  74. package/dist/events/index.d.ts +5 -0
  75. package/dist/events/index.js +5 -0
  76. package/dist/events/index.js.map +1 -1
  77. package/dist/events/mode-result.event.d.ts +57 -0
  78. package/dist/events/mode-result.event.js +24 -0
  79. package/dist/events/mode-result.event.js.map +1 -0
  80. package/dist/events/mode.event.d.ts +61 -0
  81. package/dist/events/mode.event.js +32 -0
  82. package/dist/events/mode.event.js.map +1 -0
  83. package/dist/events/module.event.d.ts +7 -5
  84. package/dist/events/module.event.js +3 -4
  85. package/dist/events/module.event.js.map +1 -1
  86. package/dist/events/registration.event.d.ts +19 -15
  87. package/dist/events/registration.event.js +18 -14
  88. package/dist/events/registration.event.js.map +1 -1
  89. package/dist/events/serialization.event.d.ts +16 -13
  90. package/dist/events/serialization.event.js +15 -12
  91. package/dist/events/serialization.event.js.map +1 -1
  92. package/dist/events/state.event.d.ts +102 -0
  93. package/dist/events/state.event.js +69 -0
  94. package/dist/events/state.event.js.map +1 -0
  95. package/dist/events/terraform.event.d.ts +78 -0
  96. package/dist/events/terraform.event.js +55 -0
  97. package/dist/events/terraform.event.js.map +1 -0
  98. package/dist/events/transaction.event.d.ts +3 -40
  99. package/dist/events/transaction.event.js +1 -29
  100. package/dist/events/transaction.event.js.map +1 -1
  101. package/dist/functions/container/container.d.ts +54 -13
  102. package/dist/functions/container/container.js +64 -19
  103. package/dist/functions/container/container.js.map +1 -1
  104. package/dist/functions/container/test-container.d.ts +43 -29
  105. package/dist/functions/container/test-container.js +71 -43
  106. package/dist/functions/container/test-container.js.map +1 -1
  107. package/dist/functions/dependency/dependency.d.ts +84 -23
  108. package/dist/functions/dependency/dependency.js +84 -14
  109. package/dist/functions/dependency/dependency.js.map +1 -1
  110. package/dist/functions/diff/aggregate-resource-actions.d.ts +19 -0
  111. package/dist/functions/diff/aggregate-resource-actions.js +41 -0
  112. package/dist/functions/diff/aggregate-resource-actions.js.map +1 -0
  113. package/dist/functions/diff/diff-metadata.d.ts +21 -3
  114. package/dist/functions/diff/diff-metadata.js +18 -0
  115. package/dist/functions/diff/diff-metadata.js.map +1 -1
  116. package/dist/functions/diff/diff.d.ts +68 -7
  117. package/dist/functions/diff/diff.js +44 -3
  118. package/dist/functions/diff/diff.js.map +1 -1
  119. package/dist/functions/hook/commit.hook.d.ts +16 -1
  120. package/dist/functions/hook/commit.hook.js +21 -6
  121. package/dist/functions/hook/commit.hook.js.map +1 -1
  122. package/dist/functions/hook/model-action.hook.d.ts +16 -1
  123. package/dist/functions/hook/model-action.hook.js +21 -6
  124. package/dist/functions/hook/model-action.hook.js.map +1 -1
  125. package/dist/functions/hook/resource-action.hook.d.ts +16 -1
  126. package/dist/functions/hook/resource-action.hook.js +21 -6
  127. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  128. package/dist/functions/node/node-action.abstract.d.ts +23 -2
  129. package/dist/functions/node/node-action.abstract.js +22 -8
  130. package/dist/functions/node/node-action.abstract.js.map +1 -1
  131. package/dist/functions/node/node.abstract.d.ts +56 -5
  132. package/dist/functions/node/node.abstract.js +106 -22
  133. package/dist/functions/node/node.abstract.js.map +1 -1
  134. package/dist/functions/node/node.interface.d.ts +3 -1
  135. package/dist/functions/schema/schema.d.ts +7 -0
  136. package/dist/functions/schema/schema.js +10 -1
  137. package/dist/functions/schema/schema.js.map +1 -1
  138. package/dist/index.d.ts +12 -6
  139. package/dist/index.js +9 -4
  140. package/dist/index.js.map +1 -1
  141. package/dist/index.type.d.ts +5 -0
  142. package/dist/index.type.js +2 -0
  143. package/dist/index.type.js.map +1 -0
  144. package/dist/main.d.ts +245 -14
  145. package/dist/main.js +377 -72
  146. package/dist/main.js.map +1 -1
  147. package/dist/models/account/account.model.d.ts +43 -7
  148. package/dist/models/account/account.model.js +56 -8
  149. package/dist/models/account/account.model.js.map +1 -1
  150. package/dist/models/account/account.schema.d.ts +13 -1
  151. package/dist/models/account/account.schema.js +12 -0
  152. package/dist/models/account/account.schema.js.map +1 -1
  153. package/dist/models/app/app.model.d.ts +13 -8
  154. package/dist/models/app/app.model.js +17 -32
  155. package/dist/models/app/app.model.js.map +1 -1
  156. package/dist/models/app/app.schema.d.ts +6 -0
  157. package/dist/models/app/app.schema.js +6 -0
  158. package/dist/models/app/app.schema.js.map +1 -1
  159. package/dist/models/deployment/deployment.model.d.ts +13 -1
  160. package/dist/models/deployment/deployment.model.js +16 -4
  161. package/dist/models/deployment/deployment.model.js.map +1 -1
  162. package/dist/models/deployment/deployment.schema.d.ts +6 -0
  163. package/dist/models/deployment/deployment.schema.js +6 -0
  164. package/dist/models/deployment/deployment.schema.js.map +1 -1
  165. package/dist/models/environment/environment.model.d.ts +15 -3
  166. package/dist/models/environment/environment.model.js +22 -10
  167. package/dist/models/environment/environment.model.js.map +1 -1
  168. package/dist/models/environment/environment.schema.d.ts +2 -0
  169. package/dist/models/environment/environment.schema.js +2 -0
  170. package/dist/models/environment/environment.schema.js.map +1 -1
  171. package/dist/models/execution/execution.model.d.ts +21 -3
  172. package/dist/models/execution/execution.model.js +47 -29
  173. package/dist/models/execution/execution.model.js.map +1 -1
  174. package/dist/models/execution/execution.schema.d.ts +11 -0
  175. package/dist/models/execution/execution.schema.js +11 -0
  176. package/dist/models/execution/execution.schema.js.map +1 -1
  177. package/dist/models/filesystem/filesystem.model.d.ts +27 -1
  178. package/dist/models/filesystem/filesystem.model.js +30 -4
  179. package/dist/models/filesystem/filesystem.model.js.map +1 -1
  180. package/dist/models/filesystem/filesystem.schema.d.ts +5 -0
  181. package/dist/models/filesystem/filesystem.schema.js +5 -0
  182. package/dist/models/filesystem/filesystem.schema.js.map +1 -1
  183. package/dist/models/image/image.model.d.ts +19 -5
  184. package/dist/models/image/image.model.js +25 -11
  185. package/dist/models/image/image.model.js.map +1 -1
  186. package/dist/models/image/image.schema.d.ts +8 -0
  187. package/dist/models/image/image.schema.js +8 -0
  188. package/dist/models/image/image.schema.js.map +1 -1
  189. package/dist/models/model-action.interface.d.ts +17 -4
  190. package/dist/models/model.abstract.d.ts +96 -1
  191. package/dist/models/model.abstract.js +107 -8
  192. package/dist/models/model.abstract.js.map +1 -1
  193. package/dist/models/model.interface.d.ts +3 -0
  194. package/dist/models/pipeline/pipeline.model.d.ts +14 -2
  195. package/dist/models/pipeline/pipeline.model.js +19 -7
  196. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  197. package/dist/models/pipeline/pipeline.schema.d.ts +8 -0
  198. package/dist/models/pipeline/pipeline.schema.js +8 -0
  199. package/dist/models/pipeline/pipeline.schema.js.map +1 -1
  200. package/dist/models/region/region.model.d.ts +16 -1
  201. package/dist/models/region/region.model.js +19 -4
  202. package/dist/models/region/region.model.js.map +1 -1
  203. package/dist/models/region/region.schema.d.ts +6 -0
  204. package/dist/models/region/region.schema.js +6 -0
  205. package/dist/models/region/region.schema.js.map +1 -1
  206. package/dist/models/server/server.model.d.ts +15 -3
  207. package/dist/models/server/server.model.js +18 -6
  208. package/dist/models/server/server.model.js.map +1 -1
  209. package/dist/models/server/server.schema.d.ts +3 -1
  210. package/dist/models/server/server.schema.js +3 -1
  211. package/dist/models/server/server.schema.js.map +1 -1
  212. package/dist/models/service/service.model.d.ts +37 -6
  213. package/dist/models/service/service.model.js +65 -11
  214. package/dist/models/service/service.model.js.map +1 -1
  215. package/dist/models/service/service.schema.d.ts +48 -1
  216. package/dist/models/service/service.schema.js +56 -1
  217. package/dist/models/service/service.schema.js.map +1 -1
  218. package/dist/models/subnet/subnet.model.d.ts +27 -3
  219. package/dist/models/subnet/subnet.model.js +40 -16
  220. package/dist/models/subnet/subnet.model.js.map +1 -1
  221. package/dist/models/subnet/subnet.schema.d.ts +9 -0
  222. package/dist/models/subnet/subnet.schema.js +9 -0
  223. package/dist/models/subnet/subnet.schema.js.map +1 -1
  224. package/dist/modes/apply-transaction.d.ts +23 -0
  225. package/dist/modes/apply-transaction.js +25 -0
  226. package/dist/modes/apply-transaction.js.map +1 -0
  227. package/dist/modes/commit.mode.d.ts +54 -0
  228. package/dist/modes/commit.mode.js +235 -0
  229. package/dist/modes/commit.mode.js.map +1 -0
  230. package/dist/modes/generate.mode.d.ts +30 -0
  231. package/dist/modes/generate.mode.js +50 -0
  232. package/dist/modes/generate.mode.js.map +1 -0
  233. package/dist/modes/run-action.mode.d.ts +30 -0
  234. package/dist/modes/run-action.mode.js +140 -0
  235. package/dist/modes/run-action.mode.js.map +1 -0
  236. package/dist/modes/validate.mode.d.ts +186 -0
  237. package/dist/modes/validate.mode.js +558 -0
  238. package/dist/modes/validate.mode.js.map +1 -0
  239. package/dist/modules/module.abstract.d.ts +51 -0
  240. package/dist/modules/module.abstract.js +36 -0
  241. package/dist/modules/module.abstract.js.map +1 -1
  242. package/dist/modules/module.container.d.ts +43 -1
  243. package/dist/modules/module.container.js +77 -5
  244. package/dist/modules/module.container.js.map +1 -1
  245. package/dist/modules/test-module.container.d.ts +139 -25
  246. package/dist/modules/test-module.container.js +383 -199
  247. package/dist/modules/test-module.container.js.map +1 -1
  248. package/dist/overlays/anchor.abstract.d.ts +32 -1
  249. package/dist/overlays/anchor.abstract.js +42 -11
  250. package/dist/overlays/anchor.abstract.js.map +1 -1
  251. package/dist/overlays/anchor.schema.d.ts +21 -0
  252. package/dist/overlays/anchor.schema.js +21 -0
  253. package/dist/overlays/anchor.schema.js.map +1 -1
  254. package/dist/overlays/overlay-data.repository.d.ts +18 -0
  255. package/dist/overlays/overlay-data.repository.js +18 -0
  256. package/dist/overlays/overlay-data.repository.js.map +1 -1
  257. package/dist/overlays/overlay.abstract.d.ts +56 -1
  258. package/dist/overlays/overlay.abstract.js +79 -20
  259. package/dist/overlays/overlay.abstract.js.map +1 -1
  260. package/dist/overlays/overlay.schema.d.ts +20 -0
  261. package/dist/overlays/overlay.schema.js +20 -0
  262. package/dist/overlays/overlay.schema.js.map +1 -1
  263. package/dist/resources/resource-action.interface.d.ts +29 -3
  264. package/dist/resources/resource-data.repository.d.ts +63 -1
  265. package/dist/resources/resource-data.repository.js +94 -4
  266. package/dist/resources/resource-data.repository.js.map +1 -1
  267. package/dist/resources/resource.abstract.d.ts +163 -6
  268. package/dist/resources/resource.abstract.js +223 -59
  269. package/dist/resources/resource.abstract.js.map +1 -1
  270. package/dist/resources/resource.interface.d.ts +0 -2
  271. package/dist/resources/resource.schema.d.ts +39 -1
  272. package/dist/resources/resource.schema.js +38 -0
  273. package/dist/resources/resource.schema.js.map +1 -1
  274. package/dist/resources/terraform-resource.abstract.d.ts +44 -0
  275. package/dist/resources/terraform-resource.abstract.js +45 -0
  276. package/dist/resources/terraform-resource.abstract.js.map +1 -0
  277. package/dist/services/event/event.service.d.ts +32 -5
  278. package/dist/services/event/event.service.js +58 -16
  279. package/dist/services/event/event.service.js.map +1 -1
  280. package/dist/services/input/input.service.d.ts +82 -5
  281. package/dist/services/input/input.service.js +143 -12
  282. package/dist/services/input/input.service.js.map +1 -1
  283. package/dist/services/schema-translation/schema-translation.service.d.ts +9 -0
  284. package/dist/services/schema-translation/schema-translation.service.js +9 -0
  285. package/dist/services/schema-translation/schema-translation.service.js.map +1 -1
  286. package/dist/services/serialization/model/model-serialization.service.d.ts +25 -3
  287. package/dist/services/serialization/model/model-serialization.service.js +113 -62
  288. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  289. package/dist/services/serialization/resource/resource-serialization.service.d.ts +36 -6
  290. package/dist/services/serialization/resource/resource-serialization.service.js +77 -28
  291. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  292. package/dist/services/state-management/local.state-provider.d.ts +67 -4
  293. package/dist/services/state-management/local.state-provider.js +168 -41
  294. package/dist/services/state-management/local.state-provider.js.map +1 -1
  295. package/dist/services/state-management/remote.state-provider.d.ts +216 -0
  296. package/dist/services/state-management/remote.state-provider.js +645 -0
  297. package/dist/services/state-management/remote.state-provider.js.map +1 -0
  298. package/dist/services/state-management/state-management.service.d.ts +195 -17
  299. package/dist/services/state-management/state-management.service.js +259 -10
  300. package/dist/services/state-management/state-management.service.js.map +1 -1
  301. package/dist/services/state-management/state-provider.interface.d.ts +98 -3
  302. package/dist/services/state-management/state-provider.interface.js +14 -1
  303. package/dist/services/state-management/state-provider.interface.js.map +1 -1
  304. package/dist/services/state-management/terraform-state.service.d.ts +99 -0
  305. package/dist/services/state-management/terraform-state.service.js +197 -0
  306. package/dist/services/state-management/terraform-state.service.js.map +1 -0
  307. package/dist/services/state-management/test.state-provider.d.ts +42 -4
  308. package/dist/services/state-management/test.state-provider.js +77 -25
  309. package/dist/services/state-management/test.state-provider.js.map +1 -1
  310. package/dist/services/terraform/terraform.service.d.ts +480 -0
  311. package/dist/services/terraform/terraform.service.js +1082 -0
  312. package/dist/services/terraform/terraform.service.js.map +1 -0
  313. package/dist/services/terraform/terraform.type.d.ts +387 -0
  314. package/dist/services/terraform/terraform.type.js +579 -0
  315. package/dist/services/terraform/terraform.type.js.map +1 -0
  316. package/dist/services/transaction/transaction.service.d.ts +110 -10
  317. package/dist/services/transaction/transaction.service.js +570 -251
  318. package/dist/services/transaction/transaction.service.js.map +1 -1
  319. package/dist/services/validation/validation.service.d.ts +15 -3
  320. package/dist/services/validation/validation.service.js +12 -0
  321. package/dist/services/validation/validation.service.js.map +1 -1
  322. package/dist/utilities/array/array.utility.d.ts +3 -0
  323. package/dist/utilities/array/array.utility.js +3 -0
  324. package/dist/utilities/array/array.utility.js.map +1 -1
  325. package/dist/{functions → utilities}/diff/diff.utility.d.ts +19 -3
  326. package/dist/{functions → utilities}/diff/diff.utility.js +57 -41
  327. package/dist/utilities/diff/diff.utility.js.map +1 -0
  328. package/dist/utilities/file/file.utility.d.ts +16 -2
  329. package/dist/utilities/file/file.utility.js +23 -61
  330. package/dist/utilities/file/file.utility.js.map +1 -1
  331. package/dist/utilities/hcl/hcl.utility.d.ts +128 -0
  332. package/dist/utilities/hcl/hcl.utility.js +402 -0
  333. package/dist/utilities/hcl/hcl.utility.js.map +1 -0
  334. package/dist/utilities/http/http.utility.d.ts +57 -0
  335. package/dist/utilities/http/http.utility.js +98 -0
  336. package/dist/utilities/http/http.utility.js.map +1 -0
  337. package/dist/utilities/node/node.utility.d.ts +3 -0
  338. package/dist/utilities/node/node.utility.js +3 -0
  339. package/dist/utilities/node/node.utility.js.map +1 -1
  340. package/dist/utilities/object/object.utility.d.ts +12 -0
  341. package/dist/utilities/object/object.utility.js +12 -0
  342. package/dist/utilities/object/object.utility.js.map +1 -1
  343. package/dist/utilities/project/project.utility.d.ts +28 -0
  344. package/dist/utilities/project/project.utility.js +35 -0
  345. package/dist/utilities/project/project.utility.js.map +1 -0
  346. package/dist/utilities/string/string.utility.d.ts +41 -0
  347. package/dist/utilities/string/string.utility.js +65 -0
  348. package/dist/utilities/string/string.utility.js.map +1 -0
  349. package/dist/utilities/terraform/terraform.utility.d.ts +276 -0
  350. package/dist/utilities/terraform/terraform.utility.js +623 -0
  351. package/dist/utilities/terraform/terraform.utility.js.map +1 -0
  352. package/dist/utilities/test-helpers/test-classes.d.ts +36 -30
  353. package/dist/utilities/test-helpers/test-classes.js +38 -39
  354. package/dist/utilities/test-helpers/test-classes.js.map +1 -1
  355. package/dist/utilities/test-helpers/test-models.d.ts +8 -1
  356. package/dist/utilities/test-helpers/test-models.js +37 -12
  357. package/dist/utilities/test-helpers/test-models.js.map +1 -1
  358. package/dist/utilities/test-helpers/test-modes.d.ts +315 -0
  359. package/dist/utilities/test-helpers/test-modes.js +486 -0
  360. package/dist/utilities/test-helpers/test-modes.js.map +1 -0
  361. package/dist/utilities/test-helpers/test-modules.d.ts +47 -0
  362. package/dist/utilities/test-helpers/test-modules.js +85 -0
  363. package/dist/utilities/test-helpers/test-modules.js.map +1 -0
  364. package/dist/utilities/test-helpers/test-overlays.d.ts +20 -2
  365. package/dist/utilities/test-helpers/test-overlays.js +56 -6
  366. package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
  367. package/dist/utilities/test-helpers/test-resources.d.ts +23 -3
  368. package/dist/utilities/test-helpers/test-resources.js +83 -23
  369. package/dist/utilities/test-helpers/test-resources.js.map +1 -1
  370. package/dist/utilities/validation/validation.utility.d.ts +24 -0
  371. package/dist/utilities/validation/validation.utility.js +24 -0
  372. package/dist/utilities/validation/validation.utility.js.map +1 -1
  373. package/package.json +12 -6
  374. package/dist/functions/diff/diff.utility.js.map +0 -1
  375. package/dist/services/capture/capture.service.d.ts +0 -19
  376. package/dist/services/capture/capture.service.js +0 -43
  377. package/dist/services/capture/capture.service.js.map +0 -1
  378. package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -20
  379. package/dist/services/state-management/local-encryption.state-provider.js +0 -90
  380. package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
  381. package/dist/utilities/cidr/cidr.utility.d.ts +0 -10
  382. package/dist/utilities/cidr/cidr.utility.js +0 -51
  383. package/dist/utilities/cidr/cidr.utility.js.map +0 -1
@@ -1,10 +1,30 @@
1
1
  import type { BaseAnchorSchema } from './anchor.schema.js';
2
2
  /**
3
+ * The schema every overlay schema extends.
4
+ *
5
+ * An overlay schema narrows `properties` to the fields the overlay carries.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * export class MyOverlaySchema extends BaseOverlaySchema {
10
+ * override properties = Schema<{ subnetName: string }>();
11
+ * }
12
+ * ```
13
+ *
3
14
  * @group Overlays
4
15
  */
5
16
  export declare class BaseOverlaySchema {
17
+ /**
18
+ * The anchors this overlay was built from, i.e. the models it joins.
19
+ */
6
20
  anchors: BaseAnchorSchema[];
21
+ /**
22
+ * The ID of the overlay, unique across the infrastructure.
23
+ */
7
24
  overlayId: string;
25
+ /**
26
+ * The properties of the overlay.
27
+ */
8
28
  properties: {
9
29
  [key: string]: unknown;
10
30
  };
@@ -1,11 +1,31 @@
1
1
  import { Schema } from '../functions/schema/schema.js';
2
2
  /**
3
+ * The schema every overlay schema extends.
4
+ *
5
+ * An overlay schema narrows `properties` to the fields the overlay carries.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * export class MyOverlaySchema extends BaseOverlaySchema {
10
+ * override properties = Schema<{ subnetName: string }>();
11
+ * }
12
+ * ```
13
+ *
3
14
  * @group Overlays
4
15
  */
5
16
  export class BaseOverlaySchema {
6
17
  constructor() {
18
+ /**
19
+ * The anchors this overlay was built from, i.e. the models it joins.
20
+ */
7
21
  this.anchors = Schema();
22
+ /**
23
+ * The ID of the overlay, unique across the infrastructure.
24
+ */
8
25
  this.overlayId = Schema();
26
+ /**
27
+ * The properties of the overlay.
28
+ */
9
29
  this.properties = Schema();
10
30
  }
11
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.schema.js","sourceRoot":"","sources":["../../src/overlays/overlay.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGvD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QACE,YAAO,GAAG,MAAM,EAAsB,CAAC;QAEvC,cAAS,GAAG,MAAM,EAAU,CAAC;QAE7B,eAAU,GAAG,MAAM,EAA8B,CAAC;IACpD,CAAC;CAAA"}
1
+ {"version":3,"file":"overlay.schema.js","sourceRoot":"","sources":["../../src/overlays/overlay.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGvD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QACE;;WAEG;QACH,YAAO,GAAG,MAAM,EAAsB,CAAC;QAEvC;;WAEG;QACH,cAAS,GAAG,MAAM,EAAU,CAAC;QAE7B;;WAEG;QACH,eAAU,GAAG,MAAM,EAA8B,CAAC;IACpD,CAAC;CAAA"}
@@ -1,11 +1,37 @@
1
- import type { ResourceSchema, UnknownResource } from '../app.type.js';
1
+ import type { UnknownResource } from '../app.type.js';
2
2
  import type { Diff } from '../functions/diff/diff.js';
3
+ import type { ANodeAction } from '../functions/node/node-action.abstract.js';
3
4
  /**
5
+ * A resource action creates, updates, or destroys one piece of real infrastructure.
6
+ *
7
+ * Actions belong to *external* resources - the ones Octo drives itself through a cloud provider's
8
+ * SDK. A resource whose lifecycle terraform manages ({@link ATerraformResource}) must not have one;
9
+ * registering an action for it throws.
10
+ *
11
+ * The class extends {@link ANodeAction}, which gives it the container and `log()`. Register it with
12
+ * {@link Action}, and a {@link Factory} to construct it.
13
+ *
4
14
  * @group Resources
15
+ *
16
+ * @see Definition of [Actions](/docs/fundamentals/actions).
5
17
  */
6
- export interface IResourceAction<T extends UnknownResource> {
18
+ export interface IResourceAction<T extends UnknownResource> extends ANodeAction {
19
+ /**
20
+ * How long the action may run before Octo aborts it.
21
+ *
22
+ * @defaultValue `90000`
23
+ */
7
24
  actionTimeoutInMs?: number;
25
+ /**
26
+ * Whether this action handles the given diff.
27
+ * Typically a check on the diff's resource, field, and action.
28
+ */
8
29
  filter(diff: Diff): boolean;
30
+ /**
31
+ * Performs the change against the cloud provider.
32
+ *
33
+ * @returns What the provider reported back, which Octo records as the resource's `response`.
34
+ * Return nothing when the action has no output, e.g. a delete.
35
+ */
9
36
  handle(diff: Diff): Promise<T['response']> | Promise<void>;
10
- mock?(diff: Diff, capture: Partial<ResourceSchema<T>['response']>): Promise<T['response']> | Promise<void>;
11
37
  }
@@ -8,29 +8,91 @@ export declare class ResourceDataRepository {
8
8
  private oldResources;
9
9
  private newResources;
10
10
  private dirtyResources;
11
+ /**
12
+ * @internal
13
+ */
11
14
  constructor(actualResources: UnknownResource[], oldResources: UnknownResource[], newResources: UnknownResource[]);
15
+ /**
16
+ * @internal
17
+ */
12
18
  addActualResource(resource: UnknownResource): void;
19
+ /**
20
+ * @internal
21
+ */
13
22
  addNewResource(resource: UnknownResource): void;
23
+ /**
24
+ * @internal
25
+ */
14
26
  diff(): Promise<Diff[]>;
27
+ /**
28
+ * @internal
29
+ */
15
30
  diffDirty(): Promise<Diff[]>;
31
+ /**
32
+ * @internal
33
+ */
16
34
  diffValidate(): Diff[];
35
+ /**
36
+ * @internal
37
+ */
17
38
  ensureDiffsNotOperatingOnDirtyResources(diffs: Diff[]): void;
39
+ /**
40
+ * @internal
41
+ */
18
42
  getActualResourceByContext(context: string): UnknownResource | undefined;
19
- getNewResourceByContext(context: string): UnknownResource | undefined;
43
+ /**
44
+ * @internal
45
+ */
20
46
  getActualResourcesByProperties(filters?: {
21
47
  key: string;
22
48
  value: any;
23
49
  }[]): UnknownResource[];
50
+ /**
51
+ * @internal
52
+ */
53
+ getNewResourceByContext(context: string): UnknownResource | undefined;
54
+ /**
55
+ * @internal
56
+ */
24
57
  getNewResourcesByProperties(filters?: {
25
58
  key: string;
26
59
  value: any;
27
60
  }[]): UnknownResource[];
61
+ /**
62
+ * @internal
63
+ */
28
64
  removeNewResource(resource: UnknownResource): void;
65
+ /**
66
+ * Marks the new (desired) resource graph as applied: the actual graph becomes the new graph and
67
+ * nothing is dirty. Used by terraform commit, where terraform has already applied the desired
68
+ * state.
69
+ *
70
+ * `excludeResourceContexts` names resources a partial commit could not confirm. They are left out
71
+ * of the actual graph, so the next run plans to create them again - which terraform reconciles
72
+ * against its own state as a no-op if they do exist. Recording less than reality is recoverable;
73
+ * recording more is not.
74
+ *
75
+ * `retainResourceContexts` names resources whose deletion did not run. Each is carried over from
76
+ * the graph being replaced, along with the parents it needs to deserialize with, and joins both
77
+ * graphs: the actual graph records it as still present, and the new graph is what the next run
78
+ * diffs against, which is what plans its deletion again.
79
+ */
80
+ syncActualToNew(excludeResourceContexts?: Set<string>, retainResourceContexts?: Set<string>): void;
81
+ /**
82
+ * Collects the named resources out of the actual graph, closed over their parents.
83
+ *
84
+ * A resource deserializes by de-referencing every parent it names, so a resource is only worth
85
+ * keeping when the graph keeps the parents above it too.
86
+ */
87
+ private collectWithParents;
29
88
  }
30
89
  /**
31
90
  * @internal
32
91
  */
33
92
  export declare class ResourceDataRepositoryFactory {
34
93
  private static instance;
94
+ /**
95
+ * @internal
96
+ */
35
97
  static create(forceNew?: boolean, actualResources?: UnknownResource[], oldResources?: UnknownResource[], newResources?: UnknownResource[]): Promise<ResourceDataRepository>;
36
98
  }
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { NodeType } from '../app.type.js';
7
+ import { MatchingResource, NodeType } from '../app.type.js';
8
8
  import { Factory } from '../decorators/factory.decorator.js';
9
9
  import { DiffsOnDirtyResourcesTransactionError, ResourceError } from '../errors/index.js';
10
10
  import { Diff, DiffAction } from '../functions/diff/diff.js';
@@ -12,6 +12,9 @@ import { Diff, DiffAction } from '../functions/diff/diff.js';
12
12
  * @internal
13
13
  */
14
14
  export class ResourceDataRepository {
15
+ /**
16
+ * @internal
17
+ */
15
18
  constructor(actualResources, oldResources, newResources) {
16
19
  this.actualResources = actualResources;
17
20
  this.oldResources = oldResources;
@@ -29,6 +32,9 @@ export class ResourceDataRepository {
29
32
  }
30
33
  }
31
34
  }
35
+ /**
36
+ * @internal
37
+ */
32
38
  addActualResource(resource) {
33
39
  if (resource.constructor.NODE_TYPE !== NodeType.RESOURCE) {
34
40
  throw new ResourceError('Adding non-resource node!', resource);
@@ -42,6 +48,9 @@ export class ResourceDataRepository {
42
48
  throw new ResourceError('Resource in actual already exists!', resource);
43
49
  }
44
50
  }
51
+ /**
52
+ * @internal
53
+ */
45
54
  addNewResource(resource) {
46
55
  if (resource.constructor.NODE_TYPE !== NodeType.RESOURCE) {
47
56
  throw new ResourceError('Adding non-resource node!', resource);
@@ -60,6 +69,9 @@ export class ResourceDataRepository {
60
69
  resource.cloneResponseInPlace(this.oldResources[oIndex]);
61
70
  }
62
71
  }
72
+ /**
73
+ * @internal
74
+ */
63
75
  async diff() {
64
76
  const oldResources = this.oldResources.reduce((accumulator, current) => ({ ...accumulator, [current.getContext()]: current }), {});
65
77
  const newResources = this.newResources.reduce((accumulator, current) => ({ ...accumulator, [current.getContext()]: current }), {});
@@ -94,6 +106,9 @@ export class ResourceDataRepository {
94
106
  }
95
107
  return diffs;
96
108
  }
109
+ /**
110
+ * @internal
111
+ */
97
112
  async diffDirty() {
98
113
  const actualResources = this.actualResources.reduce((accumulator, current) => ({ ...accumulator, [current.getContext()]: current }), {});
99
114
  const newResources = this.newResources.reduce((accumulator, current) => ({ ...accumulator, [current.getContext()]: current }), {});
@@ -128,6 +143,9 @@ export class ResourceDataRepository {
128
143
  }
129
144
  return diffs;
130
145
  }
146
+ /**
147
+ * @internal
148
+ */
131
149
  diffValidate() {
132
150
  const diffs = [];
133
151
  for (const resource of this.actualResources) {
@@ -135,23 +153,41 @@ export class ResourceDataRepository {
135
153
  }
136
154
  return diffs;
137
155
  }
156
+ /**
157
+ * @internal
158
+ */
138
159
  ensureDiffsNotOperatingOnDirtyResources(diffs) {
139
160
  if (diffs.some((d) => this.dirtyResources.some((dr) => d.node.hasAncestor(dr)))) {
140
161
  throw new DiffsOnDirtyResourcesTransactionError('Cannot operate diff on dirty resources!', diffs, this.dirtyResources);
141
162
  }
142
163
  }
164
+ /**
165
+ * @internal
166
+ */
143
167
  getActualResourceByContext(context) {
144
168
  return this.actualResources.find((r) => r.getContext() === context);
145
169
  }
146
- getNewResourceByContext(context) {
147
- return this.newResources.find((r) => r.getContext() === context);
148
- }
170
+ /**
171
+ * @internal
172
+ */
149
173
  getActualResourcesByProperties(filters = []) {
150
174
  return this.actualResources.filter((r) => filters.every((c) => r.properties[c.key] === c.value));
151
175
  }
176
+ /**
177
+ * @internal
178
+ */
179
+ getNewResourceByContext(context) {
180
+ return this.newResources.find((r) => r.getContext() === context);
181
+ }
182
+ /**
183
+ * @internal
184
+ */
152
185
  getNewResourcesByProperties(filters = []) {
153
186
  return this.newResources.filter((r) => filters.every((c) => r.properties[c.key] === c.value));
154
187
  }
188
+ /**
189
+ * @internal
190
+ */
155
191
  removeNewResource(resource) {
156
192
  if (resource.constructor.NODE_TYPE !== NodeType.RESOURCE) {
157
193
  throw new ResourceError('Removing non-resource node!', resource);
@@ -164,11 +200,65 @@ export class ResourceDataRepository {
164
200
  this.newResources.splice(rIndex, 1);
165
201
  }
166
202
  }
203
+ /**
204
+ * Marks the new (desired) resource graph as applied: the actual graph becomes the new graph and
205
+ * nothing is dirty. Used by terraform commit, where terraform has already applied the desired
206
+ * state.
207
+ *
208
+ * `excludeResourceContexts` names resources a partial commit could not confirm. They are left out
209
+ * of the actual graph, so the next run plans to create them again - which terraform reconciles
210
+ * against its own state as a no-op if they do exist. Recording less than reality is recoverable;
211
+ * recording more is not.
212
+ *
213
+ * `retainResourceContexts` names resources whose deletion did not run. Each is carried over from
214
+ * the graph being replaced, along with the parents it needs to deserialize with, and joins both
215
+ * graphs: the actual graph records it as still present, and the new graph is what the next run
216
+ * diffs against, which is what plans its deletion again.
217
+ */
218
+ syncActualToNew(excludeResourceContexts = new Set(), retainResourceContexts = new Set()) {
219
+ for (const resource of this.collectWithParents(retainResourceContexts)) {
220
+ const rIndex = this.newResources.findIndex((r) => r.getContext() === resource.getContext());
221
+ if (rIndex === -1) {
222
+ this.newResources.push(resource);
223
+ }
224
+ else if (this.newResources[rIndex].isMarkedDeleted()) {
225
+ this.newResources[rIndex] = resource;
226
+ }
227
+ }
228
+ this.actualResources = this.newResources.filter((r) => !excludeResourceContexts.has(r.getContext()));
229
+ this.dirtyResources = [];
230
+ }
231
+ /**
232
+ * Collects the named resources out of the actual graph, closed over their parents.
233
+ *
234
+ * A resource deserializes by de-referencing every parent it names, so a resource is only worth
235
+ * keeping when the graph keeps the parents above it too.
236
+ */
237
+ collectWithParents(resourceContexts) {
238
+ const collected = new Map();
239
+ const contextsToProcess = [...resourceContexts];
240
+ while (contextsToProcess.length > 0) {
241
+ const context = contextsToProcess.shift();
242
+ if (collected.has(context)) {
243
+ continue;
244
+ }
245
+ const resource = this.actualResources.find((r) => r.getContext() === context);
246
+ if (!resource) {
247
+ continue;
248
+ }
249
+ collected.set(context, resource);
250
+ contextsToProcess.push(...resource.parents.map((p) => (p instanceof MatchingResource ? p.getActual() : p).getContext()));
251
+ }
252
+ return [...collected.values()];
253
+ }
167
254
  }
168
255
  /**
169
256
  * @internal
170
257
  */
171
258
  let ResourceDataRepositoryFactory = class ResourceDataRepositoryFactory {
259
+ /**
260
+ * @internal
261
+ */
172
262
  static async create(forceNew = false, actualResources = [], oldResources = [], newResources = []) {
173
263
  if (!this.instance) {
174
264
  this.instance = new ResourceDataRepository(actualResources, oldResources, newResources);
@@ -1 +1 @@
1
- {"version":3,"file":"resource-data.repository.js","sourceRoot":"","sources":["../../src/resources/resource-data.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-data.repository.js","sourceRoot":"","sources":["../../src/resources/resource-data.repository.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,104 @@ import { ANode } from '../functions/node/node.abstract.js';
5
5
  import type { IResource } from './resource.interface.js';
6
6
  import type { BaseResourceSchema } from './resource.schema.js';
7
7
  /**
8
+ * The base class of every resource - the nodes that describe actual cloud infrastructure.
9
+ *
10
+ * Where a model says *what you want*, a resource says *what exists*. Resources are never constructed
11
+ * by you directly; a model action declares them, and Octo diffs the declared graph against the last
12
+ * committed one to decide what to create, update, or destroy.
13
+ *
14
+ * A resource is identified by its `resourceId`, configured by its `properties`, and reports back
15
+ * through its `response` once the infrastructure exists. The ID it is created with is its
16
+ * `localResourceId`, which only has to be unique within its `scope`: where the node creating the
17
+ * resource sits in the model graph. Octo makes the `resourceId` from the two.
18
+ *
19
+ * Most resources extend {@link ATerraformResource} rather than this class.
20
+ *
8
21
  * @group Resources
22
+ *
23
+ * @see Definition of [Resources](/docs/fundamentals/resources).
9
24
  */
10
25
  export declare abstract class AResource<S extends BaseResourceSchema, T extends UnknownResource> extends ANode<S, T> implements IResource<S, T> {
11
- readonly resourceId: S['resourceId'];
26
+ readonly localResourceId: S['localResourceId'];
12
27
  readonly properties: S['properties'];
13
- private _deleteMarker;
28
+ /**
29
+ * Whether destroying a resource of this class loses data octo cannot put back. Set by {@link Resource}.
30
+ *
31
+ * @internal
32
+ */
33
+ static readonly DESTROY_LOSES_DATA: boolean;
34
+ /**
35
+ * The names this class declares unique, each by the properties whose values form its domain. Set by
36
+ * {@link Resource}.
37
+ *
38
+ * @internal
39
+ */
40
+ static readonly UNIQUE_PROPERTIES: {
41
+ path: string;
42
+ within: string[];
43
+ }[];
44
+ /**
45
+ * The scope every resource constructed now is created in. The transaction sets it around each model
46
+ * action.
47
+ */
48
+ private static constructionScope;
49
+ /**
50
+ * The resources this one is built on top of. A parent is always created before its children,
51
+ * and destroyed after them.
52
+ */
14
53
  readonly parents: (MatchingResource<BaseResourceSchema> | UnknownResource)[];
54
+ /**
55
+ * What the cloud provider reported back about this resource, e.g. an ARN or a generated ID.
56
+ * It is empty until the resource has actually been created, and is what other resources read
57
+ * when they need to reference this one.
58
+ */
15
59
  readonly response: S['response'];
60
+ /**
61
+ * The contexts of the models this resource is placed under, sorted. Octo derives it from the node
62
+ * whose action created the resource; a resource created outside a model action has an empty scope.
63
+ */
64
+ readonly scope: string[];
65
+ /**
66
+ * The tags applied to this resource. See {@link Octo.registerTags} to set them in bulk.
67
+ */
16
68
  readonly tags: S['tags'];
17
- protected constructor(resourceId: S['resourceId'], properties: S['properties'], parents?: (MatchingResource<BaseResourceSchema> | UnknownResource)[]);
69
+ /**
70
+ * The ID of the resource, unique across the infrastructure: its `localResourceId`, followed by a
71
+ * hash of its scope when it has one.
72
+ */
73
+ get resourceId(): S['resourceId'];
74
+ private _deleteMarker;
75
+ /**
76
+ * @param localResourceId The ID of the resource, unique within its scope.
77
+ * @param properties The desired configuration of the resource.
78
+ * @param parents The resources this one is built on top of.
79
+ * @throws {@link ResourceError} If the resource ID is not alphanumeric with `-`, `_`, or `/`.
80
+ */
81
+ protected constructor(localResourceId: S['localResourceId'], properties: S['properties'], parents?: (MatchingResource<BaseResourceSchema> | UnknownResource)[]);
82
+ /**
83
+ * @internal
84
+ */
85
+ static cloneResource<T extends UnknownResource>(sourceResource: T, deReferenceResource: (context: string) => Promise<UnknownResource>): Promise<T>;
86
+ /**
87
+ * Constructs resources in the given scope.
88
+ *
89
+ * @internal
90
+ */
91
+ static constructInScope<R>(scope: string[], construct: () => R): R;
92
+ /**
93
+ * Runs a model action, so every resource it constructs is created in the given scope.
94
+ * Model actions run one at a time, which is what makes the scope safe to hold statically.
95
+ *
96
+ * @internal
97
+ */
98
+ static runInScope<R>(scope: string[], run: () => Promise<R>): Promise<R>;
99
+ /**
100
+ * @internal
101
+ */
102
+ static unSynth<S extends BaseResourceSchema, T>(deserializationClass: any, resource: S, deReferenceResource: (context: string) => Promise<UnknownResource>): Promise<T>;
103
+ /**
104
+ * @internal
105
+ */
18
106
  addChild(onField: keyof T | string, child: UnknownResource, toField: string): {
19
107
  childToParentDependency: Dependency;
20
108
  parentToChildDependency: Dependency;
@@ -30,20 +118,59 @@ export declare abstract class AResource<S extends BaseResourceSchema, T extends
30
118
  thatToThisDependency: Dependency;
31
119
  thisToThatDependency: Dependency;
32
120
  };
121
+ /**
122
+ * @internal
123
+ */
33
124
  clonePropertiesInPlace(sourceResource: T): void;
34
- static cloneResource<T extends UnknownResource>(sourceResource: T, deReferenceResource: (context: string) => Promise<UnknownResource>): Promise<T>;
125
+ /**
126
+ * @internal
127
+ */
35
128
  cloneResourceInPlace(sourceResource: T, deReferenceResource: (context: string) => Promise<UnknownResource>): Promise<void>;
129
+ /**
130
+ * @internal
131
+ */
36
132
  cloneResponseInPlace(sourceResource: UnknownResource): void;
133
+ /**
134
+ * @internal
135
+ */
37
136
  cloneTagsInPlace(sourceResource: UnknownResource): void;
137
+ /**
138
+ * @internal
139
+ */
38
140
  diff(previous: T): Promise<Diff[]>;
141
+ /**
142
+ * @internal
143
+ */
39
144
  diffInverse(diff: Diff, deReferenceResource: (context: string) => Promise<UnknownResource>): Promise<void>;
145
+ /**
146
+ * @internal
147
+ */
40
148
  diffProperties(previous: T): Promise<Diff[]>;
149
+ /**
150
+ * @internal
151
+ */
41
152
  diffTags(previous: T): Promise<Diff<UnknownResource, DiffValueTypeTagUpdate>[]>;
153
+ /**
154
+ * Splits one diff into the diffs a resource action will actually receive.
155
+ *
156
+ * Override it when a single change on this resource has to be applied as several ordered steps.
157
+ * The default returns the diff unchanged.
158
+ */
42
159
  diffUnpack(diff: Diff): Diff[];
160
+ /**
161
+ * To find this resource's parents whose properties match every given filter.
162
+ *
163
+ * @param filters Each filter is a property `key` the parent must carry with the given `value`.
164
+ */
43
165
  findParentsByProperty(filters: {
44
166
  key: string;
45
167
  value: unknown;
46
168
  }[]): UnknownResource[];
169
+ /**
170
+ * To find this resource's parents whose tags match every given filter.
171
+ *
172
+ * @param filters Each filter is a tag `key` the parent must carry with the given `value`.
173
+ */
47
174
  findParentsByTag(filters: {
48
175
  key: string;
49
176
  value: string;
@@ -52,18 +179,48 @@ export declare abstract class AResource<S extends BaseResourceSchema, T extends
52
179
  * @deprecated Boundary is not supported in resources!
53
180
  */
54
181
  getBoundaryMembers(): UnknownResource[];
182
+ /**
183
+ * The properties whose change means an external resource has to be run again. Terraform hashes
184
+ * them into the trigger of the `null_resource` that stands in for the resource, which is how it
185
+ * decides to call back.
186
+ *
187
+ * A resource that overrides {@link diffProperties} to ignore a property must exclude that property
188
+ * here too. The two answer the same question, and terraform plans a replacement for any property
189
+ * only this one covers, which octo then reports no change for.
190
+ */
191
+ getExternalTriggerProperties(): Partial<S['properties']>;
55
192
  /**
56
193
  * @deprecated Siblings are not supported in resources!
57
194
  */
58
195
  getSiblings(): {
59
196
  [p: string]: Dependency[];
60
197
  };
198
+ /**
199
+ * @internal
200
+ */
61
201
  isDeepEquals(other?: UnknownResource): boolean;
202
+ /**
203
+ * Whether this resource is marked for deletion, and will leave the graph at the end of the transaction.
204
+ */
62
205
  isMarkedDeleted(): boolean;
63
- merge(previous: AResource<S, T>): AResource<S, T>;
206
+ /**
207
+ * To mark this resource for deletion. It leaves the graph at the end of the transaction.
208
+ *
209
+ * @param force Removes the resource even if other resources still depend on it.
210
+ * @throws {@link RemoveResourceError} If the resource still has children, and `force` is not set.
211
+ */
64
212
  remove(force?: boolean): void;
213
+ /**
214
+ * @internal
215
+ */
65
216
  setContext(): string;
217
+ /**
218
+ * To record what the cloud provider reported back about this resource.
219
+ * Keys absent from `response` are left as they were.
220
+ */
66
221
  setResponse(response: S['response']): void;
222
+ /**
223
+ * @internal
224
+ */
67
225
  synth(): S;
68
- static unSynth<S extends BaseResourceSchema, T>(deserializationClass: any, resource: S, deReferenceResource: (context: string) => Promise<UnknownResource>): Promise<T>;
69
226
  }