alchemy-effect 0.2.0 → 0.4.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 (494) hide show
  1. package/bin/alchemy-effect.js +55354 -8
  2. package/bin/alchemy-effect.js.map +1 -1
  3. package/bin/alchemy-effect.ts +266 -10
  4. package/lib/$.d.ts +5 -0
  5. package/lib/$.d.ts.map +1 -0
  6. package/lib/$.js +9 -0
  7. package/lib/$.js.map +1 -0
  8. package/lib/app.d.ts +4 -17
  9. package/lib/app.d.ts.map +1 -1
  10. package/lib/app.js +0 -20
  11. package/lib/app.js.map +1 -1
  12. package/lib/apply.d.ts +15 -75
  13. package/lib/apply.d.ts.map +1 -1
  14. package/lib/apply.js +439 -154
  15. package/lib/apply.js.map +1 -1
  16. package/lib/assert-never.d.ts +12 -0
  17. package/lib/assert-never.d.ts.map +1 -0
  18. package/lib/assert-never.js +11 -0
  19. package/lib/assert-never.js.map +1 -0
  20. package/lib/aws/account.d.ts +10 -1
  21. package/lib/aws/account.d.ts.map +1 -1
  22. package/lib/aws/account.js +18 -3
  23. package/lib/aws/account.js.map +1 -1
  24. package/lib/aws/client.d.ts.map +1 -1
  25. package/lib/aws/client.js +0 -1
  26. package/lib/aws/client.js.map +1 -1
  27. package/lib/aws/config.d.ts +15 -0
  28. package/lib/aws/config.d.ts.map +1 -0
  29. package/lib/aws/config.js +1 -0
  30. package/lib/aws/config.js.map +1 -0
  31. package/lib/aws/credentials.d.ts +10 -0
  32. package/lib/aws/credentials.d.ts.map +1 -1
  33. package/lib/aws/credentials.js +73 -47
  34. package/lib/aws/credentials.js.map +1 -1
  35. package/lib/aws/dynamodb/client.d.ts +1 -1
  36. package/lib/aws/dynamodb/client.d.ts.map +1 -1
  37. package/lib/aws/dynamodb/index.d.ts +2 -1
  38. package/lib/aws/dynamodb/index.d.ts.map +1 -1
  39. package/lib/aws/dynamodb/index.js +1 -2
  40. package/lib/aws/dynamodb/index.js.map +1 -1
  41. package/lib/aws/dynamodb/secondary-index.d.ts +5 -4
  42. package/lib/aws/dynamodb/secondary-index.d.ts.map +1 -1
  43. package/lib/aws/dynamodb/table.d.ts +23 -20
  44. package/lib/aws/dynamodb/table.d.ts.map +1 -1
  45. package/lib/aws/dynamodb/table.get-item.d.ts +8 -6
  46. package/lib/aws/dynamodb/table.get-item.d.ts.map +1 -1
  47. package/lib/aws/dynamodb/table.get-item.js +4 -2
  48. package/lib/aws/dynamodb/table.get-item.js.map +1 -1
  49. package/lib/aws/dynamodb/table.js.map +1 -1
  50. package/lib/aws/dynamodb/table.provider.d.ts +3 -4
  51. package/lib/aws/dynamodb/table.provider.d.ts.map +1 -1
  52. package/lib/aws/dynamodb/table.provider.js +18 -29
  53. package/lib/aws/dynamodb/table.provider.js.map +1 -1
  54. package/lib/aws/ec2/client.d.ts +1 -1
  55. package/lib/aws/ec2/client.d.ts.map +1 -1
  56. package/lib/aws/ec2/index.d.ts +11 -0
  57. package/lib/aws/ec2/index.d.ts.map +1 -1
  58. package/lib/aws/ec2/index.js +11 -0
  59. package/lib/aws/ec2/index.js.map +1 -1
  60. package/lib/aws/ec2/internet-gateway.d.ts +65 -0
  61. package/lib/aws/ec2/internet-gateway.d.ts.map +1 -0
  62. package/lib/aws/ec2/internet-gateway.js +4 -0
  63. package/lib/aws/ec2/internet-gateway.js.map +1 -0
  64. package/lib/aws/ec2/internet-gateway.provider.d.ts +6 -0
  65. package/lib/aws/ec2/internet-gateway.provider.d.ts.map +1 -0
  66. package/lib/aws/ec2/internet-gateway.provider.js +193 -0
  67. package/lib/aws/ec2/internet-gateway.provider.js.map +1 -0
  68. package/lib/aws/ec2/route-table-association.d.ts +63 -0
  69. package/lib/aws/ec2/route-table-association.d.ts.map +1 -0
  70. package/lib/aws/ec2/route-table-association.js +4 -0
  71. package/lib/aws/ec2/route-table-association.js.map +1 -0
  72. package/lib/aws/ec2/route-table-association.provider.d.ts +4 -0
  73. package/lib/aws/ec2/route-table-association.provider.d.ts.map +1 -0
  74. package/lib/aws/ec2/route-table-association.provider.js +121 -0
  75. package/lib/aws/ec2/route-table-association.provider.js.map +1 -0
  76. package/lib/aws/ec2/route-table.d.ts +159 -0
  77. package/lib/aws/ec2/route-table.d.ts.map +1 -0
  78. package/lib/aws/ec2/route-table.js +4 -0
  79. package/lib/aws/ec2/route-table.js.map +1 -0
  80. package/lib/aws/ec2/route-table.provider.d.ts +6 -0
  81. package/lib/aws/ec2/route-table.provider.d.ts.map +1 -0
  82. package/lib/aws/ec2/route-table.provider.js +213 -0
  83. package/lib/aws/ec2/route-table.provider.js.map +1 -0
  84. package/lib/aws/ec2/route.d.ts +155 -0
  85. package/lib/aws/ec2/route.d.ts.map +1 -0
  86. package/lib/aws/ec2/route.js +3 -0
  87. package/lib/aws/ec2/route.js.map +1 -0
  88. package/lib/aws/ec2/route.provider.d.ts +4 -0
  89. package/lib/aws/ec2/route.provider.d.ts.map +1 -0
  90. package/lib/aws/ec2/route.provider.js +166 -0
  91. package/lib/aws/ec2/route.provider.js.map +1 -0
  92. package/lib/aws/ec2/subnet.d.ts +175 -0
  93. package/lib/aws/ec2/subnet.d.ts.map +1 -0
  94. package/lib/aws/ec2/subnet.js +4 -0
  95. package/lib/aws/ec2/subnet.js.map +1 -0
  96. package/lib/aws/ec2/subnet.provider.d.ts +4 -0
  97. package/lib/aws/ec2/subnet.provider.d.ts.map +1 -0
  98. package/lib/aws/ec2/subnet.provider.js +250 -0
  99. package/lib/aws/ec2/subnet.provider.js.map +1 -0
  100. package/lib/aws/ec2/vpc.d.ts +13 -8
  101. package/lib/aws/ec2/vpc.d.ts.map +1 -1
  102. package/lib/aws/ec2/vpc.js +1 -0
  103. package/lib/aws/ec2/vpc.js.map +1 -1
  104. package/lib/aws/ec2/vpc.provider.d.ts +1 -2
  105. package/lib/aws/ec2/vpc.provider.d.ts.map +1 -1
  106. package/lib/aws/ec2/vpc.provider.js +45 -37
  107. package/lib/aws/ec2/vpc.provider.js.map +1 -1
  108. package/lib/aws/index.d.ts +15 -19
  109. package/lib/aws/index.d.ts.map +1 -1
  110. package/lib/aws/index.js +8 -10
  111. package/lib/aws/index.js.map +1 -1
  112. package/lib/aws/lambda/consume.d.ts +10 -11
  113. package/lib/aws/lambda/consume.d.ts.map +1 -1
  114. package/lib/aws/lambda/consume.js +3 -3
  115. package/lib/aws/lambda/consume.js.map +1 -1
  116. package/lib/aws/lambda/function.d.ts +7 -7
  117. package/lib/aws/lambda/function.d.ts.map +1 -1
  118. package/lib/aws/lambda/function.handler.d.ts +1 -1
  119. package/lib/aws/lambda/function.handler.d.ts.map +1 -1
  120. package/lib/aws/lambda/function.handler.js.map +1 -1
  121. package/lib/aws/lambda/function.invoke.d.ts +6 -4
  122. package/lib/aws/lambda/function.invoke.d.ts.map +1 -1
  123. package/lib/aws/lambda/function.invoke.js +3 -1
  124. package/lib/aws/lambda/function.invoke.js.map +1 -1
  125. package/lib/aws/lambda/function.js +1 -1
  126. package/lib/aws/lambda/function.js.map +1 -1
  127. package/lib/aws/lambda/function.provider.d.ts +3 -2
  128. package/lib/aws/lambda/function.provider.d.ts.map +1 -1
  129. package/lib/aws/lambda/function.provider.js +28 -25
  130. package/lib/aws/lambda/function.provider.js.map +1 -1
  131. package/lib/aws/lambda/index.d.ts +1 -0
  132. package/lib/aws/lambda/index.d.ts.map +1 -1
  133. package/lib/aws/lambda/index.js +1 -0
  134. package/lib/aws/lambda/index.js.map +1 -1
  135. package/lib/aws/lambda/serve.d.ts +2 -4
  136. package/lib/aws/lambda/serve.d.ts.map +1 -1
  137. package/lib/aws/profile.d.ts +2 -2
  138. package/lib/aws/profile.d.ts.map +1 -1
  139. package/lib/aws/profile.js +1 -1
  140. package/lib/aws/profile.js.map +1 -1
  141. package/lib/aws/region.d.ts +14 -2
  142. package/lib/aws/region.d.ts.map +1 -1
  143. package/lib/aws/region.js +26 -1
  144. package/lib/aws/region.js.map +1 -1
  145. package/lib/aws/sqs/client.d.ts +1 -1
  146. package/lib/aws/sqs/client.d.ts.map +1 -1
  147. package/lib/aws/sqs/index.d.ts +1 -0
  148. package/lib/aws/sqs/index.d.ts.map +1 -1
  149. package/lib/aws/sqs/index.js +1 -0
  150. package/lib/aws/sqs/index.js.map +1 -1
  151. package/lib/aws/sqs/queue.consume.d.ts +1 -1
  152. package/lib/aws/sqs/queue.consume.d.ts.map +1 -1
  153. package/lib/aws/sqs/queue.consume.js +0 -1
  154. package/lib/aws/sqs/queue.consume.js.map +1 -1
  155. package/lib/aws/sqs/queue.d.ts +6 -4
  156. package/lib/aws/sqs/queue.d.ts.map +1 -1
  157. package/lib/aws/sqs/queue.event-source.d.ts +8 -6
  158. package/lib/aws/sqs/queue.event-source.d.ts.map +1 -1
  159. package/lib/aws/sqs/queue.event-source.js +26 -44
  160. package/lib/aws/sqs/queue.event-source.js.map +1 -1
  161. package/lib/aws/sqs/queue.js +1 -1
  162. package/lib/aws/sqs/queue.js.map +1 -1
  163. package/lib/aws/sqs/queue.provider.d.ts +2 -2
  164. package/lib/aws/sqs/queue.provider.d.ts.map +1 -1
  165. package/lib/aws/sqs/queue.provider.js +2 -1
  166. package/lib/aws/sqs/queue.provider.js.map +1 -1
  167. package/lib/aws/sqs/queue.send-message.d.ts +7 -5
  168. package/lib/aws/sqs/queue.send-message.d.ts.map +1 -1
  169. package/lib/aws/sqs/queue.send-message.js +4 -2
  170. package/lib/aws/sqs/queue.send-message.js.map +1 -1
  171. package/lib/binding.d.ts +12 -12
  172. package/lib/binding.d.ts.map +1 -1
  173. package/lib/binding.js.map +1 -1
  174. package/lib/cli/components/ApprovePlan.d.ts +2 -2
  175. package/lib/cli/components/ApprovePlan.d.ts.map +1 -1
  176. package/lib/cli/components/ApprovePlan.js.map +1 -1
  177. package/lib/cli/components/Plan.d.ts +2 -2
  178. package/lib/cli/components/Plan.d.ts.map +1 -1
  179. package/lib/cli/components/Plan.js.map +1 -1
  180. package/lib/cli/components/PlanProgress.d.ts +8 -4
  181. package/lib/cli/components/PlanProgress.d.ts.map +1 -1
  182. package/lib/cli/components/PlanProgress.js +11 -1
  183. package/lib/cli/components/PlanProgress.js.map +1 -1
  184. package/lib/cli/index.d.ts +384 -264
  185. package/lib/cli/index.d.ts.map +1 -1
  186. package/lib/cli/index.js +57 -65
  187. package/lib/cli/index.js.map +1 -1
  188. package/lib/cli/ink-service.d.ts +4 -0
  189. package/lib/cli/ink-service.d.ts.map +1 -0
  190. package/lib/cli/ink-service.js +43 -0
  191. package/lib/cli/ink-service.js.map +1 -0
  192. package/lib/cli/service.d.ts +21 -0
  193. package/lib/cli/service.d.ts.map +1 -0
  194. package/lib/cli/service.js +5 -0
  195. package/lib/cli/service.js.map +1 -0
  196. package/lib/cloudflare/account.d.ts +10 -0
  197. package/lib/cloudflare/account.d.ts.map +1 -0
  198. package/lib/cloudflare/account.js +24 -0
  199. package/lib/cloudflare/account.js.map +1 -0
  200. package/lib/cloudflare/api.d.ts +7 -7
  201. package/lib/cloudflare/api.d.ts.map +1 -1
  202. package/lib/cloudflare/api.js +18 -17
  203. package/lib/cloudflare/api.js.map +1 -1
  204. package/lib/cloudflare/config.d.ts +9 -0
  205. package/lib/cloudflare/config.d.ts.map +1 -0
  206. package/lib/cloudflare/config.js +1 -0
  207. package/lib/cloudflare/config.js.map +1 -0
  208. package/lib/cloudflare/index.d.ts +3 -1
  209. package/lib/cloudflare/index.d.ts.map +1 -1
  210. package/lib/cloudflare/index.js +3 -0
  211. package/lib/cloudflare/index.js.map +1 -1
  212. package/lib/cloudflare/kv/namespace.binding.d.ts +5 -3
  213. package/lib/cloudflare/kv/namespace.binding.d.ts.map +1 -1
  214. package/lib/cloudflare/kv/namespace.binding.js +1 -1
  215. package/lib/cloudflare/kv/namespace.binding.js.map +1 -1
  216. package/lib/cloudflare/kv/namespace.client.d.ts +1 -1
  217. package/lib/cloudflare/kv/namespace.d.ts +3 -2
  218. package/lib/cloudflare/kv/namespace.d.ts.map +1 -1
  219. package/lib/cloudflare/kv/namespace.js.map +1 -1
  220. package/lib/cloudflare/kv/namespace.provider.d.ts +3 -2
  221. package/lib/cloudflare/kv/namespace.provider.d.ts.map +1 -1
  222. package/lib/cloudflare/kv/namespace.provider.js +9 -7
  223. package/lib/cloudflare/kv/namespace.provider.js.map +1 -1
  224. package/lib/cloudflare/live.d.ts +5 -5
  225. package/lib/cloudflare/live.d.ts.map +1 -1
  226. package/lib/cloudflare/live.js +5 -8
  227. package/lib/cloudflare/live.js.map +1 -1
  228. package/lib/cloudflare/r2/bucket.binding.d.ts +5 -3
  229. package/lib/cloudflare/r2/bucket.binding.d.ts.map +1 -1
  230. package/lib/cloudflare/r2/bucket.binding.js +1 -1
  231. package/lib/cloudflare/r2/bucket.binding.js.map +1 -1
  232. package/lib/cloudflare/r2/bucket.d.ts +3 -2
  233. package/lib/cloudflare/r2/bucket.d.ts.map +1 -1
  234. package/lib/cloudflare/r2/bucket.js.map +1 -1
  235. package/lib/cloudflare/r2/bucket.provider.d.ts +3 -2
  236. package/lib/cloudflare/r2/bucket.provider.d.ts.map +1 -1
  237. package/lib/cloudflare/r2/bucket.provider.js +14 -8
  238. package/lib/cloudflare/r2/bucket.provider.js.map +1 -1
  239. package/lib/cloudflare/worker/assets.fetch.d.ts +3 -2
  240. package/lib/cloudflare/worker/assets.fetch.d.ts.map +1 -1
  241. package/lib/cloudflare/worker/assets.fetch.js +2 -1
  242. package/lib/cloudflare/worker/assets.fetch.js.map +1 -1
  243. package/lib/cloudflare/worker/assets.provider.d.ts +1 -1
  244. package/lib/cloudflare/worker/assets.provider.d.ts.map +1 -1
  245. package/lib/cloudflare/worker/index.d.ts +0 -1
  246. package/lib/cloudflare/worker/index.d.ts.map +1 -1
  247. package/lib/cloudflare/worker/worker.d.ts +5 -6
  248. package/lib/cloudflare/worker/worker.d.ts.map +1 -1
  249. package/lib/cloudflare/worker/worker.handler.d.ts +1 -1
  250. package/lib/cloudflare/worker/worker.handler.d.ts.map +1 -1
  251. package/lib/cloudflare/worker/worker.handler.js.map +1 -1
  252. package/lib/cloudflare/worker/worker.js.map +1 -1
  253. package/lib/cloudflare/worker/worker.provider.d.ts +3 -2
  254. package/lib/cloudflare/worker/worker.provider.d.ts.map +1 -1
  255. package/lib/cloudflare/worker/worker.provider.js +12 -7
  256. package/lib/cloudflare/worker/worker.provider.js.map +1 -1
  257. package/lib/cloudflare/worker/worker.serve.d.ts +7 -7
  258. package/lib/cloudflare/worker/worker.serve.d.ts.map +1 -1
  259. package/lib/cloudflare/worker/worker.serve.js.map +1 -1
  260. package/lib/data.d.ts +3 -0
  261. package/lib/data.d.ts.map +1 -0
  262. package/lib/data.js +8 -0
  263. package/lib/data.js.map +1 -0
  264. package/lib/destroy.d.ts +1 -1
  265. package/lib/destroy.d.ts.map +1 -1
  266. package/lib/destroy.js +1 -4
  267. package/lib/destroy.js.map +1 -1
  268. package/lib/diff.d.ts +18 -0
  269. package/lib/diff.d.ts.map +1 -0
  270. package/lib/diff.js +22 -0
  271. package/lib/diff.js.map +1 -0
  272. package/lib/env.d.ts +5 -0
  273. package/lib/env.d.ts.map +1 -1
  274. package/lib/env.js +15 -29
  275. package/lib/env.js.map +1 -1
  276. package/lib/event.d.ts +1 -1
  277. package/lib/event.d.ts.map +1 -1
  278. package/lib/exports.d.ts +9 -0
  279. package/lib/exports.d.ts.map +1 -0
  280. package/lib/exports.js +13 -0
  281. package/lib/exports.js.map +1 -0
  282. package/lib/index.d.ts +10 -2
  283. package/lib/index.d.ts.map +1 -1
  284. package/lib/index.js +10 -5
  285. package/lib/index.js.map +1 -1
  286. package/lib/input.d.ts +32 -0
  287. package/lib/input.d.ts.map +1 -0
  288. package/lib/input.js +1 -0
  289. package/lib/input.js.map +1 -0
  290. package/lib/instance-id.d.ts +8 -0
  291. package/lib/instance-id.d.ts.map +1 -0
  292. package/lib/instance-id.js +12 -0
  293. package/lib/instance-id.js.map +1 -0
  294. package/lib/output.d.ts +145 -0
  295. package/lib/output.d.ts.map +1 -0
  296. package/lib/output.js +283 -0
  297. package/lib/output.js.map +1 -0
  298. package/lib/physical-name.d.ts +14 -1
  299. package/lib/physical-name.d.ts.map +1 -1
  300. package/lib/physical-name.js +41 -2
  301. package/lib/physical-name.js.map +1 -1
  302. package/lib/plan.d.ts +84 -58
  303. package/lib/plan.d.ts.map +1 -1
  304. package/lib/plan.js +504 -166
  305. package/lib/plan.js.map +1 -1
  306. package/lib/policy.d.ts +3 -4
  307. package/lib/policy.d.ts.map +1 -1
  308. package/lib/policy.js +0 -1
  309. package/lib/policy.js.map +1 -1
  310. package/lib/provider.d.ts +39 -24
  311. package/lib/provider.d.ts.map +1 -1
  312. package/lib/provider.js +9 -0
  313. package/lib/provider.js.map +1 -1
  314. package/lib/ref.d.ts +14 -0
  315. package/lib/ref.d.ts.map +1 -0
  316. package/lib/ref.js +21 -0
  317. package/lib/ref.js.map +1 -0
  318. package/lib/resource.d.ts +13 -8
  319. package/lib/resource.d.ts.map +1 -1
  320. package/lib/resource.js.map +1 -1
  321. package/lib/runtime.d.ts +7 -6
  322. package/lib/runtime.d.ts.map +1 -1
  323. package/lib/runtime.js.map +1 -1
  324. package/lib/service.d.ts +9 -6
  325. package/lib/service.d.ts.map +1 -1
  326. package/lib/service.js.map +1 -1
  327. package/lib/stack.d.ts +60 -0
  328. package/lib/stack.d.ts.map +1 -0
  329. package/lib/stack.js +11 -0
  330. package/lib/stack.js.map +1 -0
  331. package/lib/stage.d.ts +39 -0
  332. package/lib/stage.d.ts.map +1 -0
  333. package/lib/stage.js +32 -0
  334. package/lib/stage.js.map +1 -0
  335. package/lib/state.d.ts +135 -17
  336. package/lib/state.d.ts.map +1 -1
  337. package/lib/state.js +34 -30
  338. package/lib/state.js.map +1 -1
  339. package/lib/tags.d.ts +15 -0
  340. package/lib/tags.d.ts.map +1 -1
  341. package/lib/tags.js +27 -0
  342. package/lib/tags.js.map +1 -1
  343. package/lib/test.d.ts +25 -4
  344. package/lib/test.d.ts.map +1 -1
  345. package/lib/test.js +54 -14
  346. package/lib/test.js.map +1 -1
  347. package/lib/todo.d.ts +3 -0
  348. package/lib/todo.d.ts.map +1 -0
  349. package/lib/todo.js +3 -0
  350. package/lib/todo.js.map +1 -0
  351. package/lib/tsconfig.test.tsbuildinfo +1 -1
  352. package/lib/type.d.ts +3 -0
  353. package/lib/type.d.ts.map +1 -1
  354. package/lib/unknown.d.ts +4 -0
  355. package/lib/unknown.d.ts.map +1 -0
  356. package/lib/unknown.js +4 -0
  357. package/lib/unknown.js.map +1 -0
  358. package/lib/user.d.ts +3 -0
  359. package/lib/user.d.ts.map +1 -0
  360. package/lib/user.js +3 -0
  361. package/lib/user.js.map +1 -0
  362. package/lib/util.d.ts +6 -0
  363. package/lib/util.d.ts.map +1 -0
  364. package/lib/util.js +9 -0
  365. package/lib/util.js.map +1 -0
  366. package/package.json +18 -12
  367. package/src/$.ts +17 -0
  368. package/src/app.ts +3 -32
  369. package/src/apply.ts +824 -452
  370. package/src/assert-never.ts +18 -0
  371. package/src/aws/account.ts +23 -3
  372. package/src/aws/client.ts +0 -1
  373. package/src/aws/config.ts +16 -0
  374. package/src/aws/credentials.ts +212 -177
  375. package/src/aws/dynamodb/index.ts +3 -3
  376. package/src/aws/dynamodb/table.get-item.ts +5 -9
  377. package/src/aws/dynamodb/table.provider.ts +36 -39
  378. package/src/aws/dynamodb/table.ts +29 -84
  379. package/src/aws/ec2/index.ts +12 -0
  380. package/src/aws/ec2/internet-gateway.provider.ts +316 -0
  381. package/src/aws/ec2/internet-gateway.ts +79 -0
  382. package/src/aws/ec2/route-table-association.provider.ts +214 -0
  383. package/src/aws/ec2/route-table-association.ts +82 -0
  384. package/src/aws/ec2/route-table.provider.ts +306 -0
  385. package/src/aws/ec2/route-table.ts +175 -0
  386. package/src/aws/ec2/route.provider.ts +213 -0
  387. package/src/aws/ec2/route.ts +192 -0
  388. package/src/aws/ec2/subnet.provider.ts +358 -0
  389. package/src/aws/ec2/subnet.ts +213 -0
  390. package/src/aws/ec2/vpc.provider.ts +58 -50
  391. package/src/aws/ec2/vpc.ts +21 -8
  392. package/src/aws/index.ts +49 -40
  393. package/src/aws/lambda/consume.ts +8 -7
  394. package/src/aws/lambda/function.handler.ts +1 -1
  395. package/src/aws/lambda/function.invoke.ts +6 -2
  396. package/src/aws/lambda/function.provider.ts +41 -32
  397. package/src/aws/lambda/function.ts +7 -4
  398. package/src/aws/lambda/index.ts +2 -0
  399. package/src/aws/profile.ts +1 -4
  400. package/src/aws/region.ts +42 -3
  401. package/src/aws/sqs/index.ts +2 -0
  402. package/src/aws/sqs/queue.consume.ts +1 -1
  403. package/src/aws/sqs/queue.event-source.ts +29 -55
  404. package/src/aws/sqs/queue.provider.ts +10 -2
  405. package/src/aws/sqs/queue.send-message.ts +5 -8
  406. package/src/aws/sqs/queue.ts +9 -4
  407. package/src/binding.ts +19 -19
  408. package/src/cli/components/ApprovePlan.tsx +2 -2
  409. package/src/cli/components/Plan.tsx +3 -2
  410. package/src/cli/components/PlanProgress.tsx +32 -14
  411. package/src/cli/index.ts +2 -6
  412. package/src/cli/ink-service.tsx +61 -0
  413. package/src/cli/service.ts +23 -0
  414. package/src/cloudflare/account.ts +37 -0
  415. package/src/cloudflare/api.ts +33 -29
  416. package/src/cloudflare/config.ts +7 -0
  417. package/src/cloudflare/index.ts +3 -1
  418. package/src/cloudflare/kv/namespace.binding.ts +3 -1
  419. package/src/cloudflare/kv/namespace.provider.ts +10 -8
  420. package/src/cloudflare/kv/namespace.ts +3 -2
  421. package/src/cloudflare/live.ts +11 -17
  422. package/src/cloudflare/r2/bucket.binding.ts +3 -1
  423. package/src/cloudflare/r2/bucket.provider.ts +16 -9
  424. package/src/cloudflare/r2/bucket.ts +8 -2
  425. package/src/cloudflare/worker/assets.fetch.ts +3 -1
  426. package/src/cloudflare/worker/assets.provider.ts +1 -1
  427. package/src/cloudflare/worker/index.ts +0 -2
  428. package/src/cloudflare/worker/worker.handler.ts +1 -1
  429. package/src/cloudflare/worker/worker.provider.ts +21 -14
  430. package/src/cloudflare/worker/worker.serve.ts +5 -2
  431. package/src/cloudflare/worker/worker.ts +4 -3
  432. package/src/data.ts +18 -0
  433. package/src/destroy.ts +1 -5
  434. package/src/diff.ts +48 -0
  435. package/src/env.ts +20 -32
  436. package/src/event.ts +6 -0
  437. package/src/exports.ts +21 -0
  438. package/src/index.ts +10 -5
  439. package/src/input.ts +81 -0
  440. package/src/instance-id.ts +16 -0
  441. package/src/output.ts +542 -0
  442. package/src/physical-name.ts +57 -2
  443. package/src/plan.ts +757 -278
  444. package/src/policy.ts +3 -5
  445. package/src/provider.ts +70 -31
  446. package/src/ref.ts +48 -0
  447. package/src/resource.ts +70 -10
  448. package/src/runtime.ts +15 -8
  449. package/src/service.ts +11 -7
  450. package/src/stack.ts +116 -0
  451. package/src/stage.ts +85 -0
  452. package/src/state.ts +269 -76
  453. package/src/tags.ts +31 -0
  454. package/src/test.ts +118 -17
  455. package/src/todo.ts +4 -0
  456. package/src/type.ts +4 -0
  457. package/src/unknown.ts +6 -0
  458. package/src/user.ts +4 -0
  459. package/src/util.ts +21 -0
  460. package/lib/approve.d.ts +0 -15
  461. package/lib/approve.d.ts.map +0 -1
  462. package/lib/approve.js +0 -7
  463. package/lib/approve.js.map +0 -1
  464. package/lib/cli/approve.d.ts +0 -4
  465. package/lib/cli/approve.d.ts.map +0 -1
  466. package/lib/cli/approve.js +0 -18
  467. package/lib/cli/approve.js.map +0 -1
  468. package/lib/cli/clack.d.ts +0 -14
  469. package/lib/cli/clack.d.ts.map +0 -1
  470. package/lib/cli/clack.js +0 -12
  471. package/lib/cli/clack.js.map +0 -1
  472. package/lib/cli/main.d.ts +0 -2
  473. package/lib/cli/main.d.ts.map +0 -1
  474. package/lib/cli/main.js +0 -1
  475. package/lib/cli/main.js.map +0 -1
  476. package/lib/cli/plan.d.ts +0 -13
  477. package/lib/cli/plan.d.ts.map +0 -1
  478. package/lib/cli/plan.js +0 -1
  479. package/lib/cli/plan.js.map +0 -1
  480. package/lib/cli/progress.d.ts +0 -7
  481. package/lib/cli/progress.d.ts.map +0 -1
  482. package/lib/cli/progress.js +0 -30
  483. package/lib/cli/progress.js.map +0 -1
  484. package/lib/cli/spinner.d.ts +0 -2
  485. package/lib/cli/spinner.d.ts.map +0 -1
  486. package/lib/cli/spinner.js +0 -13
  487. package/lib/cli/spinner.js.map +0 -1
  488. package/src/approve.ts +0 -13
  489. package/src/cli/approve.tsx +0 -30
  490. package/src/cli/clack.ts +0 -22
  491. package/src/cli/main.ts +0 -0
  492. package/src/cli/plan.ts +0 -16
  493. package/src/cli/progress.tsx +0 -46
  494. package/src/cli/spinner.ts +0 -14
@@ -0,0 +1,175 @@
1
+ import type * as EC2 from "itty-aws/ec2";
2
+ import type { Input } from "../../input.ts";
3
+ import { Resource } from "../../resource.ts";
4
+ import type { AccountID } from "../account.ts";
5
+ import type { RegionID } from "../region.ts";
6
+ import type { VpcId } from "./vpc.ts";
7
+
8
+ export const RouteTable = Resource<{
9
+ <const ID extends string, const Props extends RouteTableProps>(
10
+ id: ID,
11
+ props: Props,
12
+ ): RouteTable<ID, Props>;
13
+ }>("AWS.EC2.RouteTable");
14
+
15
+ export interface RouteTable<
16
+ ID extends string = string,
17
+ Props extends RouteTableProps = RouteTableProps,
18
+ > extends Resource<
19
+ "AWS.EC2.RouteTable",
20
+ ID,
21
+ Props,
22
+ RouteTableAttrs<Input.Resolve<Props>>,
23
+ RouteTable
24
+ > {}
25
+
26
+ export type RouteTableId<ID extends string = string> = `rtb-${ID}`;
27
+ export const RouteTableId = <ID extends string>(
28
+ id: ID,
29
+ ): ID & RouteTableId<ID> => `rtb-${id}` as ID & RouteTableId<ID>;
30
+
31
+ export interface RouteTableProps {
32
+ /**
33
+ * The VPC to create the route table in.
34
+ * Required.
35
+ */
36
+ vpcId: Input<VpcId>;
37
+
38
+ /**
39
+ * Tags to assign to the route table.
40
+ * These will be merged with alchemy auto-tags (alchemy::app, alchemy::stage, alchemy::id).
41
+ */
42
+ tags?: Record<string, Input<string>>;
43
+ }
44
+
45
+ export interface RouteTableAttrs<Props extends RouteTableProps> {
46
+ /**
47
+ * The ID of the VPC the route table is in.
48
+ */
49
+ vpcId: Props["vpcId"];
50
+
51
+ /**
52
+ * The ID of the route table.
53
+ */
54
+ routeTableId: RouteTableId;
55
+
56
+ /**
57
+ * The Amazon Resource Name (ARN) of the route table.
58
+ */
59
+ routeTableArn: `arn:aws:ec2:${RegionID}:${AccountID}:route-table/${this["routeTableId"]}`;
60
+
61
+ /**
62
+ * The ID of the AWS account that owns the route table.
63
+ */
64
+ ownerId?: string;
65
+
66
+ /**
67
+ * The associations between the route table and subnets or gateways.
68
+ */
69
+ associations?: Array<{
70
+ /**
71
+ * Whether this is the main route table for the VPC.
72
+ */
73
+ main: boolean;
74
+ /**
75
+ * The ID of the association.
76
+ */
77
+ routeTableAssociationId?: string;
78
+ /**
79
+ * The ID of the route table.
80
+ */
81
+ routeTableId?: string;
82
+ /**
83
+ * The ID of the subnet (if the association is with a subnet).
84
+ */
85
+ subnetId?: string;
86
+ /**
87
+ * The ID of the gateway (if the association is with a gateway).
88
+ */
89
+ gatewayId?: string;
90
+ /**
91
+ * The state of the association.
92
+ */
93
+ associationState?: {
94
+ state: EC2.RouteTableAssociationStateCode;
95
+ statusMessage?: string;
96
+ };
97
+ }>;
98
+
99
+ /**
100
+ * The routes in the route table.
101
+ */
102
+ routes?: Array<{
103
+ /**
104
+ * The IPv4 CIDR block used for the destination match.
105
+ */
106
+ destinationCidrBlock?: string;
107
+ /**
108
+ * The IPv6 CIDR block used for the destination match.
109
+ */
110
+ destinationIpv6CidrBlock?: string;
111
+ /**
112
+ * The prefix of the AWS service.
113
+ */
114
+ destinationPrefixListId?: string;
115
+ /**
116
+ * The ID of the egress-only internet gateway.
117
+ */
118
+ egressOnlyInternetGatewayId?: string;
119
+ /**
120
+ * The ID of the gateway (internet gateway or virtual private gateway).
121
+ */
122
+ gatewayId?: string;
123
+ /**
124
+ * The ID of the NAT instance.
125
+ */
126
+ instanceId?: string;
127
+ /**
128
+ * The ID of AWS account that owns the NAT instance.
129
+ */
130
+ instanceOwnerId?: string;
131
+ /**
132
+ * The ID of the NAT gateway.
133
+ */
134
+ natGatewayId?: string;
135
+ /**
136
+ * The ID of the transit gateway.
137
+ */
138
+ transitGatewayId?: string;
139
+ /**
140
+ * The ID of the local gateway.
141
+ */
142
+ localGatewayId?: string;
143
+ /**
144
+ * The ID of the carrier gateway.
145
+ */
146
+ carrierGatewayId?: string;
147
+ /**
148
+ * The ID of the network interface.
149
+ */
150
+ networkInterfaceId?: string;
151
+ /**
152
+ * Describes how the route was created.
153
+ */
154
+ origin: EC2.RouteOrigin;
155
+ /**
156
+ * The state of the route.
157
+ */
158
+ state: EC2.RouteState;
159
+ /**
160
+ * The ID of the VPC peering connection.
161
+ */
162
+ vpcPeeringConnectionId?: string;
163
+ /**
164
+ * The Amazon Resource Name (ARN) of the core network.
165
+ */
166
+ coreNetworkArn?: string;
167
+ }>;
168
+
169
+ /**
170
+ * Any virtual private gateway (VGW) propagating routes.
171
+ */
172
+ propagatingVgws?: Array<{
173
+ gatewayId: string;
174
+ }>;
175
+ }
@@ -0,0 +1,213 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Schedule from "effect/Schedule";
3
+
4
+ import type { EC2 } from "itty-aws/ec2";
5
+
6
+ import { somePropsAreDifferent } from "../../diff.ts";
7
+ import type { ProviderService } from "../../provider.ts";
8
+ import { EC2Client } from "./client.ts";
9
+ import { Route, type RouteAttrs, type RouteProps } from "./route.ts";
10
+
11
+ export const routeProvider = () =>
12
+ Route.provider.effect(
13
+ Effect.gen(function* () {
14
+ const ec2 = yield* EC2Client;
15
+
16
+ return {
17
+ diff: Effect.fn(function* ({ news, olds }) {
18
+ // Route table change requires replacement
19
+ if (olds.routeTableId !== news.routeTableId) {
20
+ return { action: "replace" };
21
+ }
22
+
23
+ // Destination change requires replacement
24
+ if (
25
+ somePropsAreDifferent(olds, news, [
26
+ "destinationCidrBlock",
27
+ "destinationIpv6CidrBlock",
28
+ "destinationPrefixListId",
29
+ ])
30
+ ) {
31
+ return { action: "replace" };
32
+ }
33
+
34
+ // Target change can be done via ReplaceRoute (update)
35
+ }),
36
+
37
+ create: Effect.fn(function* ({ news, session }) {
38
+ // Call CreateRoute
39
+ yield* ec2
40
+ .createRoute({
41
+ RouteTableId: news.routeTableId,
42
+ DestinationCidrBlock: news.destinationCidrBlock,
43
+ DestinationIpv6CidrBlock: news.destinationIpv6CidrBlock,
44
+ DestinationPrefixListId: news.destinationPrefixListId,
45
+ GatewayId: news.gatewayId,
46
+ NatGatewayId: news.natGatewayId,
47
+ InstanceId: news.instanceId,
48
+ NetworkInterfaceId: news.networkInterfaceId,
49
+ VpcPeeringConnectionId: news.vpcPeeringConnectionId,
50
+ TransitGatewayId: news.transitGatewayId,
51
+ LocalGatewayId: news.localGatewayId,
52
+ CarrierGatewayId: news.carrierGatewayId,
53
+ EgressOnlyInternetGatewayId: news.egressOnlyInternetGatewayId,
54
+ CoreNetworkArn: news.coreNetworkArn,
55
+ VpcEndpointId: news.vpcEndpointId,
56
+ DryRun: false,
57
+ })
58
+ .pipe(
59
+ Effect.retry({
60
+ // Retry if route table is not yet available
61
+ while: (e) => e._tag === "InvalidRouteTableID.NotFound",
62
+ schedule: Schedule.exponential(100),
63
+ }),
64
+ );
65
+
66
+ const dest =
67
+ news.destinationCidrBlock ||
68
+ news.destinationIpv6CidrBlock ||
69
+ news.destinationPrefixListId ||
70
+ "unknown";
71
+ yield* session.note(`Route created: ${dest}`);
72
+
73
+ // Describe to get route details
74
+ const route = yield* describeRoute(ec2, news.routeTableId, news);
75
+
76
+ // Return attributes
77
+ return {
78
+ routeTableId: news.routeTableId,
79
+ destinationCidrBlock: news.destinationCidrBlock,
80
+ destinationIpv6CidrBlock: news.destinationIpv6CidrBlock,
81
+ destinationPrefixListId: news.destinationPrefixListId,
82
+ origin: route?.Origin ?? "CreateRoute",
83
+ state: route?.State ?? "active",
84
+ gatewayId: route?.GatewayId,
85
+ natGatewayId: route?.NatGatewayId,
86
+ instanceId: route?.InstanceId,
87
+ networkInterfaceId: route?.NetworkInterfaceId,
88
+ vpcPeeringConnectionId: route?.VpcPeeringConnectionId,
89
+ transitGatewayId: route?.TransitGatewayId,
90
+ localGatewayId: route?.LocalGatewayId,
91
+ carrierGatewayId: route?.CarrierGatewayId,
92
+ egressOnlyInternetGatewayId: route?.EgressOnlyInternetGatewayId,
93
+ coreNetworkArn: route?.CoreNetworkArn,
94
+ } satisfies RouteAttrs<RouteProps>;
95
+ }),
96
+
97
+ update: Effect.fn(function* ({ news, output, session }) {
98
+ // Use ReplaceRoute to update the target
99
+ yield* ec2
100
+ .replaceRoute({
101
+ RouteTableId: news.routeTableId,
102
+ DestinationCidrBlock: news.destinationCidrBlock,
103
+ DestinationIpv6CidrBlock: news.destinationIpv6CidrBlock,
104
+ DestinationPrefixListId: news.destinationPrefixListId,
105
+ GatewayId: news.gatewayId,
106
+ NatGatewayId: news.natGatewayId,
107
+ InstanceId: news.instanceId,
108
+ NetworkInterfaceId: news.networkInterfaceId,
109
+ VpcPeeringConnectionId: news.vpcPeeringConnectionId,
110
+ TransitGatewayId: news.transitGatewayId,
111
+ LocalGatewayId: news.localGatewayId,
112
+ CarrierGatewayId: news.carrierGatewayId,
113
+ EgressOnlyInternetGatewayId: news.egressOnlyInternetGatewayId,
114
+ CoreNetworkArn: news.coreNetworkArn,
115
+ DryRun: false,
116
+ })
117
+ .pipe(
118
+ Effect.tapError(Effect.log),
119
+ Effect.retry({
120
+ while: (e) => e._tag === "InvalidRouteTableID.NotFound",
121
+ schedule: Schedule.exponential(100),
122
+ }),
123
+ );
124
+
125
+ yield* session.note("Route target updated");
126
+
127
+ // Describe to get updated route details
128
+ const route = yield* describeRoute(ec2, news.routeTableId, news);
129
+
130
+ return {
131
+ ...output,
132
+ origin: route?.Origin ?? output.origin,
133
+ state: route?.State ?? output.state,
134
+ gatewayId: route?.GatewayId,
135
+ natGatewayId: route?.NatGatewayId,
136
+ instanceId: route?.InstanceId,
137
+ networkInterfaceId: route?.NetworkInterfaceId,
138
+ vpcPeeringConnectionId: route?.VpcPeeringConnectionId,
139
+ transitGatewayId: route?.TransitGatewayId,
140
+ localGatewayId: route?.LocalGatewayId,
141
+ carrierGatewayId: route?.CarrierGatewayId,
142
+ egressOnlyInternetGatewayId: route?.EgressOnlyInternetGatewayId,
143
+ coreNetworkArn: route?.CoreNetworkArn,
144
+ };
145
+ }),
146
+
147
+ delete: Effect.fn(function* ({ output, session }) {
148
+ const dest =
149
+ output.destinationCidrBlock ||
150
+ output.destinationIpv6CidrBlock ||
151
+ output.destinationPrefixListId ||
152
+ "unknown";
153
+
154
+ yield* session.note(`Deleting route: ${dest}`);
155
+
156
+ // Delete the route
157
+ yield* ec2
158
+ .deleteRoute({
159
+ RouteTableId: output.routeTableId,
160
+ DestinationCidrBlock: output.destinationCidrBlock,
161
+ DestinationIpv6CidrBlock: output.destinationIpv6CidrBlock,
162
+ DestinationPrefixListId: output.destinationPrefixListId,
163
+ DryRun: false,
164
+ })
165
+ .pipe(
166
+ Effect.tapError(Effect.logDebug),
167
+ Effect.catchTag("InvalidRoute.NotFound", () => Effect.void),
168
+ Effect.catchTag(
169
+ "InvalidRouteTableID.NotFound",
170
+ () => Effect.void,
171
+ ),
172
+ );
173
+
174
+ yield* session.note(`Route ${dest} deleted successfully`);
175
+ }),
176
+ } satisfies ProviderService<Route>;
177
+ }),
178
+ );
179
+
180
+ /**
181
+ * Find a specific route in a route table
182
+ */
183
+ const describeRoute = (ec2: EC2, routeTableId: string, props: RouteProps) =>
184
+ Effect.gen(function* () {
185
+ const result = yield* ec2
186
+ .describeRouteTables({ RouteTableIds: [routeTableId] })
187
+ .pipe(
188
+ Effect.catchTag("InvalidRouteTableID.NotFound", () =>
189
+ Effect.succeed({ RouteTables: [] }),
190
+ ),
191
+ );
192
+
193
+ const routeTable = result.RouteTables?.[0];
194
+ if (!routeTable) {
195
+ return undefined;
196
+ }
197
+
198
+ // Find the matching route
199
+ const route = routeTable.Routes?.find((r) => {
200
+ if (props.destinationCidrBlock) {
201
+ return r.DestinationCidrBlock === props.destinationCidrBlock;
202
+ }
203
+ if (props.destinationIpv6CidrBlock) {
204
+ return r.DestinationIpv6CidrBlock === props.destinationIpv6CidrBlock;
205
+ }
206
+ if (props.destinationPrefixListId) {
207
+ return r.DestinationPrefixListId === props.destinationPrefixListId;
208
+ }
209
+ return false;
210
+ });
211
+
212
+ return route;
213
+ });
@@ -0,0 +1,192 @@
1
+ import type * as EC2 from "itty-aws/ec2";
2
+ import type { Input } from "../../input.ts";
3
+ import { Resource } from "../../resource.ts";
4
+ import type { RouteTableId } from "./route-table.ts";
5
+
6
+ export const Route = Resource<{
7
+ <const ID extends string, const Props extends RouteProps>(
8
+ id: ID,
9
+ props: Props,
10
+ ): Route<ID, Props>;
11
+ }>("AWS.EC2.Route");
12
+
13
+ export interface Route<
14
+ ID extends string = string,
15
+ Props extends RouteProps = RouteProps,
16
+ > extends Resource<
17
+ "AWS.EC2.Route",
18
+ ID,
19
+ Props,
20
+ RouteAttrs<Input.Resolve<Props>>,
21
+ Route
22
+ > {}
23
+
24
+ export interface RouteProps {
25
+ /**
26
+ * The ID of the route table where the route will be added.
27
+ * Required.
28
+ */
29
+ routeTableId: Input<RouteTableId>;
30
+
31
+ /**
32
+ * The IPv4 CIDR block used for the destination match.
33
+ * Either destinationCidrBlock, destinationIpv6CidrBlock, or destinationPrefixListId is required.
34
+ * @example "0.0.0.0/0"
35
+ */
36
+ destinationCidrBlock?: string;
37
+
38
+ /**
39
+ * The IPv6 CIDR block used for the destination match.
40
+ * Either destinationCidrBlock, destinationIpv6CidrBlock, or destinationPrefixListId is required.
41
+ * @example "::/0"
42
+ */
43
+ destinationIpv6CidrBlock?: string;
44
+
45
+ /**
46
+ * The ID of a prefix list used for the destination match.
47
+ * Either destinationCidrBlock, destinationIpv6CidrBlock, or destinationPrefixListId is required.
48
+ */
49
+ destinationPrefixListId?: string;
50
+
51
+ // ---- Target properties (exactly one required) ----
52
+
53
+ /**
54
+ * The ID of an internet gateway or virtual private gateway.
55
+ */
56
+ gatewayId?: Input<string>;
57
+
58
+ /**
59
+ * The ID of a NAT gateway.
60
+ */
61
+ natGatewayId?: Input<string>;
62
+
63
+ /**
64
+ * The ID of a NAT instance in your VPC.
65
+ * This operation fails unless exactly one network interface is attached.
66
+ */
67
+ instanceId?: Input<string>;
68
+
69
+ /**
70
+ * The ID of a network interface.
71
+ */
72
+ networkInterfaceId?: Input<string>;
73
+
74
+ /**
75
+ * The ID of a VPC peering connection.
76
+ */
77
+ vpcPeeringConnectionId?: Input<string>;
78
+
79
+ /**
80
+ * The ID of a transit gateway.
81
+ */
82
+ transitGatewayId?: Input<string>;
83
+
84
+ /**
85
+ * The ID of a local gateway.
86
+ */
87
+ localGatewayId?: Input<string>;
88
+
89
+ /**
90
+ * The ID of a carrier gateway.
91
+ * Use for Wavelength Zones only.
92
+ */
93
+ carrierGatewayId?: Input<string>;
94
+
95
+ /**
96
+ * The ID of an egress-only internet gateway.
97
+ * IPv6 traffic only.
98
+ */
99
+ egressOnlyInternetGatewayId?: Input<string>;
100
+
101
+ /**
102
+ * The Amazon Resource Name (ARN) of the core network.
103
+ */
104
+ coreNetworkArn?: Input<string>;
105
+
106
+ /**
107
+ * The ID of a VPC endpoint for Gateway Load Balancer.
108
+ */
109
+ vpcEndpointId?: Input<string>;
110
+ }
111
+
112
+ export interface RouteAttrs<Props extends RouteProps> {
113
+ /**
114
+ * The ID of the route table.
115
+ */
116
+ routeTableId: Props["routeTableId"];
117
+
118
+ /**
119
+ * The IPv4 CIDR block used for the destination match.
120
+ */
121
+ destinationCidrBlock?: Props["destinationCidrBlock"];
122
+
123
+ /**
124
+ * The IPv6 CIDR block used for the destination match.
125
+ */
126
+ destinationIpv6CidrBlock?: Props["destinationIpv6CidrBlock"];
127
+
128
+ /**
129
+ * The ID of a prefix list used for the destination match.
130
+ */
131
+ destinationPrefixListId?: Props["destinationPrefixListId"];
132
+
133
+ /**
134
+ * Describes how the route was created.
135
+ */
136
+ origin: EC2.RouteOrigin;
137
+
138
+ /**
139
+ * The state of the route.
140
+ */
141
+ state: EC2.RouteState;
142
+
143
+ /**
144
+ * The ID of the gateway (if applicable).
145
+ */
146
+ gatewayId?: string;
147
+
148
+ /**
149
+ * The ID of the NAT gateway (if applicable).
150
+ */
151
+ natGatewayId?: string;
152
+
153
+ /**
154
+ * The ID of the NAT instance (if applicable).
155
+ */
156
+ instanceId?: string;
157
+
158
+ /**
159
+ * The ID of the network interface (if applicable).
160
+ */
161
+ networkInterfaceId?: string;
162
+
163
+ /**
164
+ * The ID of the VPC peering connection (if applicable).
165
+ */
166
+ vpcPeeringConnectionId?: string;
167
+
168
+ /**
169
+ * The ID of the transit gateway (if applicable).
170
+ */
171
+ transitGatewayId?: string;
172
+
173
+ /**
174
+ * The ID of the local gateway (if applicable).
175
+ */
176
+ localGatewayId?: string;
177
+
178
+ /**
179
+ * The ID of the carrier gateway (if applicable).
180
+ */
181
+ carrierGatewayId?: string;
182
+
183
+ /**
184
+ * The ID of the egress-only internet gateway (if applicable).
185
+ */
186
+ egressOnlyInternetGatewayId?: string;
187
+
188
+ /**
189
+ * The Amazon Resource Name (ARN) of the core network (if applicable).
190
+ */
191
+ coreNetworkArn?: string;
192
+ }