@intentius/chant-lexicon-terraform 0.57.0 → 0.59.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.
- package/README.md +9 -0
- package/dist/composites/terraform-adopt-op.d.ts +131 -0
- package/dist/composites/terraform-adopt-op.d.ts.map +1 -0
- package/dist/composites/terraform-apply-op.d.ts +70 -17
- package/dist/composites/terraform-apply-op.d.ts.map +1 -1
- package/dist/composites/terraform-watch-op.d.ts +104 -37
- package/dist/composites/terraform-watch-op.d.ts.map +1 -1
- package/dist/config.d.ts +49 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/describe-resources.d.ts +256 -16
- package/dist/describe-resources.d.ts.map +1 -1
- package/dist/hcl/descend.d.ts +98 -0
- package/dist/hcl/descend.d.ts.map +1 -0
- package/dist/hcl/marker.d.ts +130 -0
- package/dist/hcl/marker.d.ts.map +1 -0
- package/dist/hcl/parse.d.ts +156 -9
- package/dist/hcl/parse.d.ts.map +1 -1
- package/dist/hcl/references.d.ts +76 -0
- package/dist/hcl/references.d.ts.map +1 -0
- package/dist/hcl/roots.d.ts +22 -3
- package/dist/hcl/roots.d.ts.map +1 -1
- package/dist/hcl/suppressions.d.ts +54 -0
- package/dist/hcl/suppressions.d.ts.map +1 -0
- package/dist/hcl/value.d.ts +77 -0
- package/dist/hcl/value.d.ts.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +34 -5
- package/dist/lint/audit-catalog.d.ts +3 -2
- package/dist/lint/audit-catalog.d.ts.map +1 -1
- package/dist/lint/audit-lineage.d.ts +95 -0
- package/dist/lint/audit-lineage.d.ts.map +1 -1
- package/dist/lint/post-synth/blocks.d.ts +53 -0
- package/dist/lint/post-synth/blocks.d.ts.map +1 -0
- package/dist/lint/post-synth/fixtures/load.d.ts +37 -0
- package/dist/lint/post-synth/fixtures/load.d.ts.map +1 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/post-synth/module-source.d.ts +38 -0
- package/dist/lint/post-synth/module-source.d.ts.map +1 -0
- package/dist/lint/post-synth/scope.d.ts +65 -0
- package/dist/lint/post-synth/scope.d.ts.map +1 -0
- package/dist/lint/post-synth/tf001.d.ts +58 -6
- package/dist/lint/post-synth/tf001.d.ts.map +1 -1
- package/dist/lint/post-synth/tf002.d.ts +32 -0
- package/dist/lint/post-synth/tf002.d.ts.map +1 -0
- package/dist/lint/post-synth/tf003.d.ts +22 -0
- package/dist/lint/post-synth/tf003.d.ts.map +1 -0
- package/dist/lint/post-synth/tf004.d.ts +22 -0
- package/dist/lint/post-synth/tf004.d.ts.map +1 -0
- package/dist/lint/post-synth/tf005.d.ts +28 -0
- package/dist/lint/post-synth/tf005.d.ts.map +1 -0
- package/dist/lint/post-synth/tf006.d.ts +21 -0
- package/dist/lint/post-synth/tf006.d.ts.map +1 -0
- package/dist/lint/post-synth/tf007.d.ts +21 -0
- package/dist/lint/post-synth/tf007.d.ts.map +1 -0
- package/dist/lint/post-synth/tf008.d.ts +22 -0
- package/dist/lint/post-synth/tf008.d.ts.map +1 -0
- package/dist/lint/post-synth/tf009.d.ts +24 -0
- package/dist/lint/post-synth/tf009.d.ts.map +1 -0
- package/dist/lint/post-synth/tf010.d.ts +19 -0
- package/dist/lint/post-synth/tf010.d.ts.map +1 -0
- package/dist/lint/post-synth/tf011.d.ts +18 -0
- package/dist/lint/post-synth/tf011.d.ts.map +1 -0
- package/dist/lint/post-synth/tf012.d.ts +17 -0
- package/dist/lint/post-synth/tf012.d.ts.map +1 -0
- package/dist/lint/post-synth/tf013.d.ts +21 -0
- package/dist/lint/post-synth/tf013.d.ts.map +1 -0
- package/dist/lint/post-synth/tf014.d.ts +25 -0
- package/dist/lint/post-synth/tf014.d.ts.map +1 -0
- package/dist/lint/post-synth/tf015.d.ts +30 -0
- package/dist/lint/post-synth/tf015.d.ts.map +1 -0
- package/dist/lint/post-synth/tf016.d.ts +30 -0
- package/dist/lint/post-synth/tf016.d.ts.map +1 -0
- package/dist/lint/post-synth/tf017.d.ts +19 -0
- package/dist/lint/post-synth/tf017.d.ts.map +1 -0
- package/dist/lint/post-synth/tf018.d.ts +20 -0
- package/dist/lint/post-synth/tf018.d.ts.map +1 -0
- package/dist/lint/post-synth/tf019.d.ts +25 -0
- package/dist/lint/post-synth/tf019.d.ts.map +1 -0
- package/dist/lint/post-synth/tf020.d.ts +38 -0
- package/dist/lint/post-synth/tf020.d.ts.map +1 -0
- package/dist/lint/post-synth/tf021.d.ts +41 -0
- package/dist/lint/post-synth/tf021.d.ts.map +1 -0
- package/dist/lint/post-synth/tf022.d.ts +24 -0
- package/dist/lint/post-synth/tf022.d.ts.map +1 -0
- package/dist/lint/post-synth/tf024.d.ts +24 -0
- package/dist/lint/post-synth/tf024.d.ts.map +1 -0
- package/dist/lint/post-synth/tf025.d.ts +29 -0
- package/dist/lint/post-synth/tf025.d.ts.map +1 -0
- package/dist/lint/post-synth/tf026.d.ts +28 -0
- package/dist/lint/post-synth/tf026.d.ts.map +1 -0
- package/dist/lint/post-synth/tf027.d.ts +30 -0
- package/dist/lint/post-synth/tf027.d.ts.map +1 -0
- package/dist/lint/post-synth/tf028.d.ts +33 -0
- package/dist/lint/post-synth/tf028.d.ts.map +1 -0
- package/dist/lint/rules/fixtures/load.d.ts +13 -0
- package/dist/lint/rules/fixtures/load.d.ts.map +1 -0
- package/dist/lint/rules/plan-before-apply.d.ts +11 -0
- package/dist/lint/rules/plan-before-apply.d.ts.map +1 -1
- package/dist/lint/secret-shape.d.ts +68 -0
- package/dist/lint/secret-shape.d.ts.map +1 -0
- package/dist/live-ownership.d.ts +55 -0
- package/dist/live-ownership.d.ts.map +1 -0
- package/dist/lsp/option-keys.d.ts.map +1 -1
- package/dist/manifest.json +1 -1
- package/dist/okf/index.md +26 -0
- package/dist/okf/rules/TF002.md +11 -0
- package/dist/okf/rules/TF003.md +11 -0
- package/dist/okf/rules/TF004.md +11 -0
- package/dist/okf/rules/TF005.md +11 -0
- package/dist/okf/rules/TF006.md +11 -0
- package/dist/okf/rules/TF007.md +11 -0
- package/dist/okf/rules/TF008.md +11 -0
- package/dist/okf/rules/TF009.md +11 -0
- package/dist/okf/rules/TF010.md +11 -0
- package/dist/okf/rules/TF011.md +11 -0
- package/dist/okf/rules/TF012.md +11 -0
- package/dist/okf/rules/TF013.md +11 -0
- package/dist/okf/rules/TF014.md +11 -0
- package/dist/okf/rules/TF015.md +11 -0
- package/dist/okf/rules/TF016.md +11 -0
- package/dist/okf/rules/TF017.md +11 -0
- package/dist/okf/rules/TF018.md +11 -0
- package/dist/okf/rules/TF019.md +11 -0
- package/dist/okf/rules/TF020.md +11 -0
- package/dist/okf/rules/TF021.md +11 -0
- package/dist/okf/rules/TF022.md +11 -0
- package/dist/okf/rules/TF024.md +11 -0
- package/dist/okf/rules/TF025.md +11 -0
- package/dist/okf/rules/TF026.md +11 -0
- package/dist/okf/rules/TF027.md +11 -0
- package/dist/okf/rules/TF028.md +11 -0
- package/dist/op/activities/index.d.ts +13 -6
- package/dist/op/activities/index.d.ts.map +1 -1
- package/dist/op/activities/live-detect.d.ts +51 -0
- package/dist/op/activities/live-detect.d.ts.map +1 -0
- package/dist/op/activities/terraform.d.ts +466 -17
- package/dist/op/activities/terraform.d.ts.map +1 -1
- package/dist/op/activity-contracts.d.ts +148 -0
- package/dist/op/activity-contracts.d.ts.map +1 -0
- package/dist/op/adoption.d.ts +118 -0
- package/dist/op/adoption.d.ts.map +1 -0
- package/dist/op/builders.d.ts +48 -6
- package/dist/op/builders.d.ts.map +1 -1
- package/dist/op/resolve-root-mode.d.ts +59 -0
- package/dist/op/resolve-root-mode.d.ts.map +1 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/rules/blocks.ts +109 -0
- package/dist/rules/module-source.ts +121 -0
- package/dist/rules/plan-before-apply.ts +11 -0
- package/dist/rules/scope.ts +107 -0
- package/dist/rules/tf001.ts +98 -18
- package/dist/rules/tf002.ts +151 -0
- package/dist/rules/tf003.ts +71 -0
- package/dist/rules/tf004.ts +63 -0
- package/dist/rules/tf005.ts +76 -0
- package/dist/rules/tf006.ts +53 -0
- package/dist/rules/tf007.ts +78 -0
- package/dist/rules/tf008.ts +75 -0
- package/dist/rules/tf009.ts +59 -0
- package/dist/rules/tf010.ts +51 -0
- package/dist/rules/tf011.ts +49 -0
- package/dist/rules/tf012.ts +47 -0
- package/dist/rules/tf013.ts +63 -0
- package/dist/rules/tf014.ts +72 -0
- package/dist/rules/tf015.ts +72 -0
- package/dist/rules/tf016.ts +75 -0
- package/dist/rules/tf017.ts +50 -0
- package/dist/rules/tf018.ts +72 -0
- package/dist/rules/tf019.ts +72 -0
- package/dist/rules/tf020.ts +123 -0
- package/dist/rules/tf021.ts +126 -0
- package/dist/rules/tf022.ts +61 -0
- package/dist/rules/tf024.ts +70 -0
- package/dist/rules/tf025.ts +101 -0
- package/dist/rules/tf026.ts +84 -0
- package/dist/rules/tf027.ts +74 -0
- package/dist/rules/tf028.ts +96 -0
- package/dist/skills/chant-terraform.md +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/package.json +7 -2
- package/src/__fixtures__/ACCEPTANCE.md +181 -0
- package/src/__fixtures__/live/main.tf +28 -0
- package/src/__fixtures__/live-adopt/estate.chdf.hcl +6 -0
- package/src/__fixtures__/live-adopt/main.tf +21 -0
- package/src/__fixtures__/live-estate/README.md +58 -0
- package/src/__fixtures__/live-estate/compute.tf +10 -0
- package/src/__fixtures__/live-estate/estate.chdf.hcl +1 -0
- package/src/__fixtures__/live-estate/logs.tf +8 -0
- package/src/__fixtures__/live-estate/network.tf +24 -0
- package/src/__fixtures__/live-estate/rule.tf +11 -0
- package/src/__fixtures__/live-estate/unowned.tf +21 -0
- package/src/__fixtures__/live-estate/versions.tf +31 -0
- package/src/__fixtures__/live-ls.json +98 -0
- package/src/__fixtures__/live-plan.json +285 -0
- package/src/__fixtures__/live-sidecar/estate.chdf.hcl +3 -0
- package/src/__fixtures__/live-sidecar/main.tf +24 -0
- package/src/__fixtures__/module-tree/README.md +16 -0
- package/src/__fixtures__/module-tree/cycle/main.tf +3 -0
- package/src/__fixtures__/module-tree/cycle/modules/a/main.tf +9 -0
- package/src/__fixtures__/module-tree/cycle/modules/b/main.tf +9 -0
- package/src/__fixtures__/module-tree/missing/main.tf +9 -0
- package/src/__fixtures__/module-tree/outside/root/main.tf +9 -0
- package/src/__fixtures__/module-tree/root/main.tf +28 -0
- package/src/__fixtures__/module-tree/root/modules/cdn/main.tf +15 -0
- package/src/__fixtures__/module-tree/root/modules/cdn/modules/bucket/main.tf +11 -0
- package/src/__fixtures__/module-tree/shared/main.tf +5 -0
- package/src/__fixtures__/references/main.tf +56 -0
- package/src/__fixtures__/remote-backend/main.tf +34 -0
- package/src/__fixtures__/with-backend/main.tf +7 -0
- package/src/codegen/lint-rules-page.test.ts +45 -0
- package/src/composites/terraform-adopt-op.acceptance.test.ts +193 -0
- package/src/composites/terraform-adopt-op.test.ts +175 -0
- package/src/composites/terraform-adopt-op.ts +202 -0
- package/src/composites/terraform-apply-op.acceptance.test.ts +188 -5
- package/src/composites/terraform-apply-op.test.ts +179 -19
- package/src/composites/terraform-apply-op.ts +123 -30
- package/src/composites/terraform-watch-op.test.ts +169 -29
- package/src/composites/terraform-watch-op.ts +183 -75
- package/src/config.ts +32 -3
- package/src/describe-resources.live.test.ts +598 -0
- package/src/describe-resources.test.ts +53 -0
- package/src/describe-resources.ts +811 -28
- package/src/hcl/descend.test.ts +162 -0
- package/src/hcl/descend.ts +273 -0
- package/src/hcl/marker.test.ts +147 -0
- package/src/hcl/marker.ts +235 -0
- package/src/hcl/parse.test.ts +69 -0
- package/src/hcl/parse.ts +269 -27
- package/src/hcl/references.test.ts +116 -0
- package/src/hcl/references.ts +172 -0
- package/src/hcl/roots.ts +59 -5
- package/src/hcl/suppressions.test.ts +147 -0
- package/src/hcl/suppressions.ts +204 -0
- package/src/hcl/value.test.ts +73 -0
- package/src/hcl/value.ts +106 -0
- package/src/index.ts +31 -1
- package/src/lint/audit-catalog.ts +288 -3
- package/src/lint/audit-lineage.ts +384 -1
- package/src/lint/audit.test.ts +210 -3
- package/src/lint/post-synth/blocks.ts +109 -0
- package/src/lint/post-synth/fixtures/TF001/negative-cloud.tf +28 -0
- package/src/lint/post-synth/fixtures/TF001/negative.tf +30 -0
- package/src/lint/post-synth/fixtures/TF001/positive-local.tf +31 -0
- package/src/lint/post-synth/fixtures/TF001/positive.tf +24 -0
- package/src/lint/post-synth/fixtures/TF002/negative.tf +17 -0
- package/src/lint/post-synth/fixtures/TF002/positive-legacy.tf +10 -0
- package/src/lint/post-synth/fixtures/TF002/positive-no-version.tf +12 -0
- package/src/lint/post-synth/fixtures/TF002/positive.tf +7 -0
- package/src/lint/post-synth/fixtures/TF003/negative.tf +10 -0
- package/src/lint/post-synth/fixtures/TF003/positive.tf +8 -0
- package/src/lint/post-synth/fixtures/TF004/negative-git.tf +3 -0
- package/src/lint/post-synth/fixtures/TF004/negative-local.tf +3 -0
- package/src/lint/post-synth/fixtures/TF004/negative.tf +4 -0
- package/src/lint/post-synth/fixtures/TF004/positive.tf +3 -0
- package/src/lint/post-synth/fixtures/TF005/negative-local.tf +3 -0
- package/src/lint/post-synth/fixtures/TF005/negative-registry.tf +3 -0
- package/src/lint/post-synth/fixtures/TF005/negative-sha.tf +3 -0
- package/src/lint/post-synth/fixtures/TF005/negative.tf +3 -0
- package/src/lint/post-synth/fixtures/TF005/positive-branch.tf +3 -0
- package/src/lint/post-synth/fixtures/TF005/positive-non-semver.tf +3 -0
- package/src/lint/post-synth/fixtures/TF005/positive.tf +3 -0
- package/src/lint/post-synth/fixtures/TF006/negative.tf +5 -0
- package/src/lint/post-synth/fixtures/TF006/positive-empty-default.tf +11 -0
- package/src/lint/post-synth/fixtures/TF006/positive.tf +6 -0
- package/src/lint/post-synth/fixtures/TF007/negative.tf +10 -0
- package/src/lint/post-synth/fixtures/TF007/positive.tf +9 -0
- package/src/lint/post-synth/fixtures/TF008/negative-variable.tf +10 -0
- package/src/lint/post-synth/fixtures/TF008/negative.tf +8 -0
- package/src/lint/post-synth/fixtures/TF008/positive-other-provider.tf +10 -0
- package/src/lint/post-synth/fixtures/TF008/positive.tf +5 -0
- package/src/lint/post-synth/fixtures/TF009/negative.tf +10 -0
- package/src/lint/post-synth/fixtures/TF009/positive.tf +4 -0
- package/src/lint/post-synth/fixtures/TF010/negative.tf +5 -0
- package/src/lint/post-synth/fixtures/TF010/positive.tf +4 -0
- package/src/lint/post-synth/fixtures/TF011/negative.tf +5 -0
- package/src/lint/post-synth/fixtures/TF011/positive-blank.tf +5 -0
- package/src/lint/post-synth/fixtures/TF011/positive.tf +4 -0
- package/src/lint/post-synth/fixtures/TF012/negative.tf +4 -0
- package/src/lint/post-synth/fixtures/TF012/positive.tf +3 -0
- package/src/lint/post-synth/fixtures/TF013/negative.tf +8 -0
- package/src/lint/post-synth/fixtures/TF013/positive-data.tf +8 -0
- package/src/lint/post-synth/fixtures/TF013/positive.tf +8 -0
- package/src/lint/post-synth/fixtures/TF014/negative/main.tf +26 -0
- package/src/lint/post-synth/fixtures/TF014/negative/modules/cdn/main.tf +19 -0
- package/src/lint/post-synth/fixtures/TF014/positive/main.tf +16 -0
- package/src/lint/post-synth/fixtures/TF014/positive/modules/cdn/main.tf +15 -0
- package/src/lint/post-synth/fixtures/TF015/negative/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF015/negative/modules/cdn/main.tf +16 -0
- package/src/lint/post-synth/fixtures/TF015/positive/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF015/positive/modules/cdn/main.tf +14 -0
- package/src/lint/post-synth/fixtures/TF016/negative-template.tf +7 -0
- package/src/lint/post-synth/fixtures/TF016/negative.tf +16 -0
- package/src/lint/post-synth/fixtures/TF016/positive-shared-file.tf +12 -0
- package/src/lint/post-synth/fixtures/TF016/positive.tf +13 -0
- package/src/lint/post-synth/fixtures/TF017/negative.tf +4 -0
- package/src/lint/post-synth/fixtures/TF017/positive.tf +5 -0
- package/src/lint/post-synth/fixtures/TF018/negative.tf +9 -0
- package/src/lint/post-synth/fixtures/TF018/positive-data.tf +9 -0
- package/src/lint/post-synth/fixtures/TF018/positive.tf +4 -0
- package/src/lint/post-synth/fixtures/TF019/negative.tf +14 -0
- package/src/lint/post-synth/fixtures/TF019/positive-output.tf +5 -0
- package/src/lint/post-synth/fixtures/TF019/positive.tf +16 -0
- package/src/lint/post-synth/fixtures/TF020/negative.tf +43 -0
- package/src/lint/post-synth/fixtures/TF020/positive.tf +32 -0
- package/src/lint/post-synth/fixtures/TF020/scoped/main.tf +21 -0
- package/src/lint/post-synth/fixtures/TF020/scoped/modules/cdn/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF021/negative.tf +31 -0
- package/src/lint/post-synth/fixtures/TF021/positive-length.tf +8 -0
- package/src/lint/post-synth/fixtures/TF021/positive.tf +8 -0
- package/src/lint/post-synth/fixtures/TF022/negative-locator.tf +7 -0
- package/src/lint/post-synth/fixtures/TF022/negative.tf +10 -0
- package/src/lint/post-synth/fixtures/TF022/positive-nested.tf +10 -0
- package/src/lint/post-synth/fixtures/TF022/positive.tf +6 -0
- package/src/lint/post-synth/fixtures/TF023/negative/main.tf +15 -0
- package/src/lint/post-synth/fixtures/TF023/positive/main.tf +9 -0
- package/src/lint/post-synth/fixtures/TF023/positive/state.json +24 -0
- package/src/lint/post-synth/fixtures/TF024/live-clean/main.tf +9 -0
- package/src/lint/post-synth/fixtures/TF024/live-with-backend/main.tf +14 -0
- package/src/lint/post-synth/fixtures/TF024/live-with-cloud/main.tf +16 -0
- package/src/lint/post-synth/fixtures/TF025/live-clean/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF025/live-with-workspace-ref/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF026/live-default/main.tf +9 -0
- package/src/lint/post-synth/fixtures/TF026/live-explicit-delete/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF026/live-keep/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF027/live-default/main.tf +9 -0
- package/src/lint/post-synth/fixtures/TF027/live-untagged-delete/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF027/live-untagged-delete-scoped/main.tf +17 -0
- package/src/lint/post-synth/fixtures/TF027/live-untagged-report/main.tf +13 -0
- package/src/lint/post-synth/fixtures/TF028/live/main.tf +9 -0
- package/src/lint/post-synth/fixtures/TF028/stock/main.tf +10 -0
- package/src/lint/post-synth/fixtures/load.ts +108 -0
- package/src/lint/post-synth/index.ts +52 -0
- package/src/lint/post-synth/live-refusals-config-format.test.ts +143 -0
- package/src/lint/post-synth/module-rules.test.ts +153 -0
- package/src/lint/post-synth/module-source.test.ts +75 -0
- package/src/lint/post-synth/module-source.ts +121 -0
- package/src/lint/post-synth/post-synth.test.ts +73 -16
- package/src/lint/post-synth/scope.ts +107 -0
- package/src/lint/post-synth/single-block.test.ts +263 -0
- package/src/lint/post-synth/suppression.test.ts +110 -0
- package/src/lint/post-synth/tf001.ts +98 -18
- package/src/lint/post-synth/tf002.test.ts +93 -0
- package/src/lint/post-synth/tf002.ts +151 -0
- package/src/lint/post-synth/tf003.test.ts +75 -0
- package/src/lint/post-synth/tf003.ts +71 -0
- package/src/lint/post-synth/tf004.test.ts +47 -0
- package/src/lint/post-synth/tf004.ts +63 -0
- package/src/lint/post-synth/tf005.test.ts +57 -0
- package/src/lint/post-synth/tf005.ts +76 -0
- package/src/lint/post-synth/tf006.ts +53 -0
- package/src/lint/post-synth/tf007.ts +78 -0
- package/src/lint/post-synth/tf008.ts +75 -0
- package/src/lint/post-synth/tf009.ts +59 -0
- package/src/lint/post-synth/tf010.ts +51 -0
- package/src/lint/post-synth/tf011.ts +49 -0
- package/src/lint/post-synth/tf012.ts +47 -0
- package/src/lint/post-synth/tf013.ts +63 -0
- package/src/lint/post-synth/tf014.ts +72 -0
- package/src/lint/post-synth/tf015.ts +72 -0
- package/src/lint/post-synth/tf016.ts +75 -0
- package/src/lint/post-synth/tf017.ts +50 -0
- package/src/lint/post-synth/tf018.ts +72 -0
- package/src/lint/post-synth/tf019.ts +72 -0
- package/src/lint/post-synth/tf020.ts +123 -0
- package/src/lint/post-synth/tf021.ts +126 -0
- package/src/lint/post-synth/tf022.ts +61 -0
- package/src/lint/post-synth/tf024.test.ts +42 -0
- package/src/lint/post-synth/tf024.ts +70 -0
- package/src/lint/post-synth/tf025.test.ts +46 -0
- package/src/lint/post-synth/tf025.ts +101 -0
- package/src/lint/post-synth/tf026.test.ts +56 -0
- package/src/lint/post-synth/tf026.ts +84 -0
- package/src/lint/post-synth/tf027.test.ts +62 -0
- package/src/lint/post-synth/tf027.ts +74 -0
- package/src/lint/post-synth/tf028.test.ts +92 -0
- package/src/lint/post-synth/tf028.ts +96 -0
- package/src/lint/presets.test.ts +72 -0
- package/src/lint/rules/fixtures/TF101/negative-op.ts +2 -0
- package/src/lint/rules/fixtures/TF101/positive-op.ts +2 -0
- package/src/lint/rules/fixtures/load.ts +53 -0
- package/src/lint/rules/plan-before-apply.test.ts +112 -7
- package/src/lint/rules/plan-before-apply.ts +11 -0
- package/src/lint/secret-shape.test.ts +150 -0
- package/src/lint/secret-shape.ts +159 -0
- package/src/live-ownership.ts +60 -0
- package/src/lsp/completions.test.ts +3 -2
- package/src/lsp/option-keys.ts +12 -6
- package/src/op/activities/choudoufu.acceptance.test.ts +127 -0
- package/src/op/activities/choudoufu.test.ts +725 -0
- package/src/op/activities/index.ts +40 -4
- package/src/op/activities/live-detect.test.ts +143 -0
- package/src/op/activities/live-detect.ts +162 -0
- package/src/op/activities/registry.test.ts +11 -3
- package/src/op/activities/terraform.test.ts +7 -3
- package/src/op/activities/terraform.ts +861 -69
- package/src/op/activity-contracts.test.ts +147 -0
- package/src/op/activity-contracts.ts +178 -0
- package/src/op/adoption.test.ts +170 -0
- package/src/op/adoption.ts +241 -0
- package/src/op/builders.test.ts +60 -5
- package/src/op/builders.ts +95 -5
- package/src/op/resolve-root-mode.test.ts +85 -0
- package/src/op/resolve-root-mode.ts +86 -0
- package/src/plugin.test.ts +106 -0
- package/src/plugin.ts +186 -29
- package/src/skills/chant-terraform.md +1 -1
- package/src/validate.ts +10 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# The live-root fixture, and the two documents recorded from it
|
|
2
|
+
|
|
3
|
+
This directory is one choudoufu live root: `.tf` files derived from
|
|
4
|
+
choudoufu's own `live/e2e/estate-block/`, plus an `estate.chdf.hcl` sidecar
|
|
5
|
+
naming the estate `stateless-e2e-block`. Under `terraform.binary:
|
|
6
|
+
"choudoufu"` chant reads it as `mode: "live"` (#2103), which is what makes
|
|
7
|
+
`describeResources()` branch onto `live-plan` instead of `terraform show`.
|
|
8
|
+
|
|
9
|
+
`../live-plan.json` and `../live-ls.json` were recorded from this exact
|
|
10
|
+
configuration, running choudoufu built from source at
|
|
11
|
+
https://github.com/INTENTIUS/choudoufu (`go build ./cmd/choudoufu`,
|
|
12
|
+
OpenTofu 1.13.0-dev) against that repository's own pinned floci emulator
|
|
13
|
+
(`live/smoke/README.md`'s `just smoke` stack image, `live/floci-image`):
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
choudoufu init
|
|
17
|
+
choudoufu apply -auto-approve # with storage.tf still present
|
|
18
|
+
aws logs create-log-group --log-group-name /stateless-e2e-block/adoptable
|
|
19
|
+
aws logs create-log-group --log-group-name /stateless-e2e-block/held-elsewhere
|
|
20
|
+
aws logs tag-log-group --log-group-name /stateless-e2e-block/held-elsewhere \
|
|
21
|
+
--tags tofu-estate=other-estate,tofu-address=aws_cloudwatch_log_group.elsewhere
|
|
22
|
+
rm storage.tf # the applied bucket becomes an owned orphan
|
|
23
|
+
choudoufu live-plan -detailed-exitcode -json -estate=stateless-e2e-block
|
|
24
|
+
choudoufu live-ls -estate=stateless-e2e-block -json -consistent .
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Every row `describe-resources.ts` maps is in those two documents because the
|
|
28
|
+
run produced it, not because a fixture author typed it:
|
|
29
|
+
|
|
30
|
+
| Case | Where it came from |
|
|
31
|
+
|---|---|
|
|
32
|
+
| bound by marker | `aws_vpc.main`, `aws_subnet.app`, `aws_security_group.main`, and the two `aws_eip.pool` count instances with their slots |
|
|
33
|
+
| bound by derivation | `aws_cloudwatch_log_group.app`, whose identity is the name in the block |
|
|
34
|
+
| omission, `ABSENT` | `aws_cloudwatch_log_group.never_applied` and `aws_security_group_rule.https`, declared and never applied |
|
|
35
|
+
| omission, `UNOWNED` | the two log groups the `unowned[]` section also carries |
|
|
36
|
+
| unowned, adoptable | `aws_cloudwatch_log_group.adoptable`, with the two tag values that would claim it |
|
|
37
|
+
| unowned, held elsewhere | `aws_cloudwatch_log_group.held_elsewhere`, carrying `other-estate` |
|
|
38
|
+
| owned orphan | `aws_s3_bucket.data` in the listing, `declared: false` after `storage.tf` was removed |
|
|
39
|
+
| listing gap | `aws_security_group_rule.https`, on the declaration-carried rung |
|
|
40
|
+
|
|
41
|
+
## Two things the recording could not do as a chant live root would
|
|
42
|
+
|
|
43
|
+
**The sidecar was not present during the recording.** `live-plan -json` is
|
|
44
|
+
choudoufu's `-estate` form only, and that form refuses to run against a
|
|
45
|
+
configuration that names its own estate: `choudoufu live-plan -estate=X` on a
|
|
46
|
+
root with a `live` block or an `estate.chdf.hcl` sidecar answers "Estate named
|
|
47
|
+
by both the live block and -estate", while plain `choudoufu plan -json` under
|
|
48
|
+
one answers "Machine-readable output is not available under live resource
|
|
49
|
+
markers yet" (`internal/command/live_plan.go` and `live_mode.go`). So the
|
|
50
|
+
documents were recorded with the sidecar absent and `-estate` passed, and the
|
|
51
|
+
sidecar was added afterwards to make this directory the live root chant sees.
|
|
52
|
+
The documents themselves are byte-identical either way: the same estate, the
|
|
53
|
+
same resources, the same sections.
|
|
54
|
+
|
|
55
|
+
**The plan document's leading progress lines are not part of it.**
|
|
56
|
+
`live-plan -json` prints its refresh progress to stdout ahead of the document.
|
|
57
|
+
`../live-plan.json` is the document alone, from the first line that is a bare
|
|
58
|
+
`{`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Coverage: fungible count (aws_eip.pool, count = 2). Two rather than the
|
|
2
|
+
# main estate's three — enough to prove slot markers survive a plain apply
|
|
3
|
+
# without re-proving count-scale-down's exactness, which is step 9's job
|
|
4
|
+
# against the main estate.
|
|
5
|
+
|
|
6
|
+
resource "aws_eip" "pool" {
|
|
7
|
+
count = 2
|
|
8
|
+
|
|
9
|
+
domain = "vpc"
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
estate = "stateless-e2e-block"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Coverage: client-named path (aws_cloudwatch_log_group — identity is the
|
|
2
|
+
# log group name in config). No conditional-idiom instance here (the main
|
|
3
|
+
# estate's aws_cloudwatch_log_group.optional already covers that row).
|
|
4
|
+
|
|
5
|
+
resource "aws_cloudwatch_log_group" "app" {
|
|
6
|
+
name = "/stateless-e2e-block/app"
|
|
7
|
+
retention_in_days = 1
|
|
8
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Coverage: marker path (aws_vpc, aws_subnet, aws_security_group) — the same
|
|
2
|
+
# admission row the main estate's network.tf covers. No for_each here (the
|
|
3
|
+
# main estate's aws_subnet.this carries that row already); one subnet is
|
|
4
|
+
# enough for this fixture's purpose, which is proving plain plan/apply, not
|
|
5
|
+
# re-proving admission coverage.
|
|
6
|
+
#
|
|
7
|
+
# No tags argument on any resource below, unlike the main estate: this is the
|
|
8
|
+
# point of estate-block (README.md) — every marker here is one stamping
|
|
9
|
+
# writes at apply time, never one hand-written in config.
|
|
10
|
+
|
|
11
|
+
resource "aws_vpc" "main" {
|
|
12
|
+
cidr_block = "10.99.0.0/16"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
resource "aws_subnet" "app" {
|
|
16
|
+
vpc_id = aws_vpc.main.id
|
|
17
|
+
cidr_block = "10.99.1.0/24"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
resource "aws_security_group" "main" {
|
|
21
|
+
name = "stateless-e2e-block-main"
|
|
22
|
+
description = "estate-block fixture security group"
|
|
23
|
+
vpc_id = aws_vpc.main.id
|
|
24
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# aws_security_group_rule carries no tags argument at all, so no ownership
|
|
2
|
+
# marker was ever written for it: live-ls reports it as a gap on the
|
|
3
|
+
# declaration-carried rung rather than as an absence.
|
|
4
|
+
resource "aws_security_group_rule" "https" {
|
|
5
|
+
type = "ingress"
|
|
6
|
+
from_port = 443
|
|
7
|
+
to_port = 443
|
|
8
|
+
protocol = "tcp"
|
|
9
|
+
cidr_blocks = ["10.99.0.0/16"]
|
|
10
|
+
security_group_id = aws_security_group.main.id
|
|
11
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# A live log group that exists in the account carrying no marker at all:
|
|
2
|
+
# live-plan reports it unowned at a declared identity with the exact tag
|
|
3
|
+
# write that would adopt it.
|
|
4
|
+
resource "aws_cloudwatch_log_group" "adoptable" {
|
|
5
|
+
name = "/stateless-e2e-block/adoptable"
|
|
6
|
+
retention_in_days = 1
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
# A live log group carrying another estate's marker: unowned, and not this
|
|
10
|
+
# run's to adopt.
|
|
11
|
+
resource "aws_cloudwatch_log_group" "held_elsewhere" {
|
|
12
|
+
name = "/stateless-e2e-block/held-elsewhere"
|
|
13
|
+
retention_in_days = 1
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
# Declared and never applied: nothing exists at this identity, so the plan
|
|
17
|
+
# omits it with reason ABSENT and proposes creating it.
|
|
18
|
+
resource "aws_cloudwatch_log_group" "never_applied" {
|
|
19
|
+
name = "/stateless-e2e-block/never-applied"
|
|
20
|
+
retention_in_days = 1
|
|
21
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Provider wiring for the live-root fixture. Derived from choudoufu's own
|
|
2
|
+
# live/e2e/estate-block/versions.tf; the estate name is declared in the
|
|
3
|
+
# estate.chdf.hcl sidecar beside this file rather than in a `live` block
|
|
4
|
+
# here, for the reason README.md gives.
|
|
5
|
+
#
|
|
6
|
+
# Same environment-variable wiring as choudoufu's own fixture
|
|
7
|
+
# (AWS_ENDPOINT_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION);
|
|
8
|
+
# the provider block carries only the flags with no env-var form.
|
|
9
|
+
|
|
10
|
+
terraform {
|
|
11
|
+
required_version = ">= 1.5.0"
|
|
12
|
+
|
|
13
|
+
required_providers {
|
|
14
|
+
aws = {
|
|
15
|
+
source = "hashicorp/aws"
|
|
16
|
+
version = "= 6.58.0"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
provider "aws" {
|
|
22
|
+
skip_credentials_validation = true
|
|
23
|
+
skip_metadata_api_check = true
|
|
24
|
+
|
|
25
|
+
# skip_requesting_account_id deliberately absent — same rationale as the
|
|
26
|
+
# main estate's versions.tf (live/e2e/estate/versions.tf): letting the
|
|
27
|
+
# provider resolve the account keeps tag-filtered discovery honest about
|
|
28
|
+
# what real AWS would do.
|
|
29
|
+
|
|
30
|
+
s3_use_path_style = true
|
|
31
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"estate": "stateless-e2e-block",
|
|
3
|
+
"consistent": true,
|
|
4
|
+
"stabilized": true,
|
|
5
|
+
"attempts": 2,
|
|
6
|
+
"config_dir": ".",
|
|
7
|
+
"items": [
|
|
8
|
+
{
|
|
9
|
+
"id": "arn:aws:logs:us-east-1:000000000000:log-group:/stateless-e2e-block/app",
|
|
10
|
+
"type": "aws_cloudwatch_log_group",
|
|
11
|
+
"address": "aws_cloudwatch_log_group.app",
|
|
12
|
+
"declared": true,
|
|
13
|
+
"source": "tagging",
|
|
14
|
+
"tags": {
|
|
15
|
+
"tofu-address": "aws_cloudwatch_log_group.app",
|
|
16
|
+
"tofu-estate": "stateless-e2e-block"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "arn:aws:ec2:us-east-1:000000000000:elastic-ip/eipalloc-956f58ee85678c4a2",
|
|
21
|
+
"type": "aws_eip",
|
|
22
|
+
"address": "aws_eip.pool[0]",
|
|
23
|
+
"slot": "0",
|
|
24
|
+
"declared": true,
|
|
25
|
+
"source": "tagging",
|
|
26
|
+
"tags": {
|
|
27
|
+
"tofu-address": "aws_eip.pool:0",
|
|
28
|
+
"tofu-estate": "stateless-e2e-block",
|
|
29
|
+
"tofu-slot": "0"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "arn:aws:ec2:us-east-1:000000000000:elastic-ip/eipalloc-eb84912f9550b202b",
|
|
34
|
+
"type": "aws_eip",
|
|
35
|
+
"address": "aws_eip.pool[1]",
|
|
36
|
+
"slot": "1",
|
|
37
|
+
"declared": true,
|
|
38
|
+
"source": "tagging",
|
|
39
|
+
"tags": {
|
|
40
|
+
"tofu-address": "aws_eip.pool:1",
|
|
41
|
+
"tofu-estate": "stateless-e2e-block",
|
|
42
|
+
"tofu-slot": "1"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "arn:aws:s3:::tofu-stateless-e2e-block-data",
|
|
47
|
+
"type": "aws_s3_bucket",
|
|
48
|
+
"address": "aws_s3_bucket.data",
|
|
49
|
+
"declared": false,
|
|
50
|
+
"source": "tagging",
|
|
51
|
+
"tags": {
|
|
52
|
+
"tofu-address": "aws_s3_bucket.data",
|
|
53
|
+
"tofu-estate": "stateless-e2e-block"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "arn:aws:ec2:us-east-1:000000000000:security-group/sg-5fbb2850b62304cee",
|
|
58
|
+
"type": "aws_security_group",
|
|
59
|
+
"address": "aws_security_group.main",
|
|
60
|
+
"declared": true,
|
|
61
|
+
"source": "tagging",
|
|
62
|
+
"tags": {
|
|
63
|
+
"tofu-address": "aws_security_group.main",
|
|
64
|
+
"tofu-estate": "stateless-e2e-block"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "arn:aws:ec2:us-east-1:000000000000:subnet/subnet-4d624e84",
|
|
69
|
+
"type": "aws_subnet",
|
|
70
|
+
"address": "aws_subnet.app",
|
|
71
|
+
"declared": true,
|
|
72
|
+
"source": "tagging",
|
|
73
|
+
"tags": {
|
|
74
|
+
"tofu-address": "aws_subnet.app",
|
|
75
|
+
"tofu-estate": "stateless-e2e-block"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "arn:aws:ec2:us-east-1:000000000000:vpc/vpc-c1733cf7",
|
|
80
|
+
"type": "aws_vpc",
|
|
81
|
+
"address": "aws_vpc.main",
|
|
82
|
+
"declared": true,
|
|
83
|
+
"source": "tagging",
|
|
84
|
+
"tags": {
|
|
85
|
+
"tofu-address": "aws_vpc.main",
|
|
86
|
+
"tofu-estate": "stateless-e2e-block"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"gaps": [
|
|
91
|
+
{
|
|
92
|
+
"address": "aws_security_group_rule.https",
|
|
93
|
+
"type": "aws_security_group_rule",
|
|
94
|
+
"rung": "declaration-carried",
|
|
95
|
+
"detail": "aws_security_group_rule has no settable tags argument, so no ownership marker was ever written for it - live/MARKERS.md's tier definitions (#417) name this the declaration-carried tier. Its identity comes entirely from configuration."
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
{
|
|
2
|
+
"estate": "stateless-e2e-block",
|
|
3
|
+
"choudoufu_version": "",
|
|
4
|
+
"upstream_version": "1.13.0-dev",
|
|
5
|
+
"bound": [
|
|
6
|
+
{
|
|
7
|
+
"addr": "aws_cloudwatch_log_group.app",
|
|
8
|
+
"type": "aws_cloudwatch_log_group",
|
|
9
|
+
"identity": "/stateless-e2e-block/app",
|
|
10
|
+
"identity_values": {
|
|
11
|
+
"name": "/stateless-e2e-block/app"
|
|
12
|
+
},
|
|
13
|
+
"source": "derived"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"addr": "aws_eip.pool[0]",
|
|
17
|
+
"type": "aws_eip",
|
|
18
|
+
"identity": "eipalloc-956f58ee85678c4a2",
|
|
19
|
+
"source": "marker"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"addr": "aws_eip.pool[1]",
|
|
23
|
+
"type": "aws_eip",
|
|
24
|
+
"identity": "eipalloc-eb84912f9550b202b",
|
|
25
|
+
"source": "marker"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"addr": "aws_security_group.main",
|
|
29
|
+
"type": "aws_security_group",
|
|
30
|
+
"identity": "sg-5fbb2850b62304cee",
|
|
31
|
+
"source": "marker"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"addr": "aws_subnet.app",
|
|
35
|
+
"type": "aws_subnet",
|
|
36
|
+
"identity": "subnet-4d624e84",
|
|
37
|
+
"source": "marker"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"addr": "aws_vpc.main",
|
|
41
|
+
"type": "aws_vpc",
|
|
42
|
+
"identity": "vpc-c1733cf7",
|
|
43
|
+
"source": "marker"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"omissions": [
|
|
47
|
+
{
|
|
48
|
+
"addr": "aws_cloudwatch_log_group.adoptable",
|
|
49
|
+
"reason": "UNOWNED",
|
|
50
|
+
"detail": "A live aws_cloudwatch_log_group already exists with identity \"/stateless-e2e-block/adoptable\" and carries no tofu-estate marker, so this estate does not own it and the plan proposes creating the resource this configuration declares - which, for a type whose name must be unique, the cloud will refuse while the unowned one holds it. Adopt it by writing tofu-estate=\"stateless-e2e-block\" and tofu-address=\"aws_cloudwatch_log_group.adoptable\" onto it, then re-run; or set policy { declared_untagged = \"adopt\" } in the live block to have this run adopt it for you; or point this resource at a name nobody is using."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"addr": "aws_cloudwatch_log_group.held_elsewhere",
|
|
54
|
+
"reason": "UNOWNED",
|
|
55
|
+
"detail": "A live aws_cloudwatch_log_group already exists with identity \"/stateless-e2e-block/held-elsewhere\" and carries tofu-estate=\"other-estate\", so it belongs to another estate and nothing in this plan reads, changes or destroys it. See live/MARKERS.md, \"Ownership semantics\"."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"addr": "aws_cloudwatch_log_group.never_applied",
|
|
59
|
+
"reason": "ABSENT",
|
|
60
|
+
"detail": "The provider reports no aws_cloudwatch_log_group exists with identity \"/stateless-e2e-block/never-applied\", so this resource has not been created yet. The plan will propose creating it."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"addr": "aws_security_group_rule.https",
|
|
64
|
+
"reason": "ABSENT",
|
|
65
|
+
"detail": "The provider reports no aws_security_group_rule exists with identity \"sg-5fbb2850b62304cee_ingress_tcp_443_443_10.99.0.0/16\", so this resource has not been created yet. The plan will propose creating it."
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"unowned": [
|
|
69
|
+
{
|
|
70
|
+
"addr": "aws_cloudwatch_log_group.adoptable",
|
|
71
|
+
"type": "aws_cloudwatch_log_group",
|
|
72
|
+
"identity": "/stateless-e2e-block/adoptable",
|
|
73
|
+
"adopt_tofu_estate": "stateless-e2e-block",
|
|
74
|
+
"adopt_tofu_address": "aws_cloudwatch_log_group.adoptable"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"addr": "aws_cloudwatch_log_group.held_elsewhere",
|
|
78
|
+
"type": "aws_cloudwatch_log_group",
|
|
79
|
+
"identity": "/stateless-e2e-block/held-elsewhere",
|
|
80
|
+
"tofu_estate": "other-estate"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"diagnostics": [
|
|
84
|
+
{
|
|
85
|
+
"severity": "warning",
|
|
86
|
+
"summary": "Provider version does not match the admission evidence version",
|
|
87
|
+
"detail": "This run resolved hashicorp/aws 6.58.0. Live resource markers' admission table - which resource types are accepted, what their import IDs look like, and how their identity is resolved - was verified against hashicorp/aws 6.59.0 (live/survey.json). Import grammar and identity schemas are the parts of that table a provider version change can invalidate: an import ID format or an identity attribute that changed between 6.58.0 and 6.59.0 would misbehave here with no further warning. Taggability judgments are not version-sensitive in the same way and rarely change between provider releases. This is a caution, not a failure: the plan continues."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"severity": "warning",
|
|
91
|
+
"summary": "Resource type has no orphan recovery",
|
|
92
|
+
"detail": "aws_cloudwatch_log_group is admitted by the provider's own identity schema rather than by this fork's admission table, so it plans and applies normally - but the estate-wide sweep draws its type universe from that table and will not list it. Deleting the last aws_cloudwatch_log_group block from this configuration leaves the live resource in the account with no run proposing to remove it, and no warning at that point either. Remove it by hand when you remove the block. See live/LIMITATIONS.md, \"Resource type has no orphan recovery\"."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"severity": "warning",
|
|
96
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
97
|
+
"detail": "The estate-wide sweep listed a aws_appautoscaling_target that the provider could not fully read (Error Listing Remote Resources: listing Application Auto Scaling Scalable Targets: operation error Application Auto Scaling: DescribeScalableTargets, 1 validation error(s) found.\n- missing required field, DescribeScalableTargetsInput.ServiceNamespace.\n), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"severity": "warning",
|
|
101
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
102
|
+
"detail": "The estate-wide sweep listed a aws_appflow_flow that the provider could not fully read (Error Listing Remote Resources: listing AppFlow Flow resources: operation error Appflow: ListFlows, https response error StatusCode: 404, RequestID: 3106667e-9751-461c-b81f-ed042144eda3, api error UnknownOperationException: Unknown operation: POST /list-flows), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"severity": "warning",
|
|
106
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
107
|
+
"detail": "The estate-wide sweep listed a aws_bedrockagentcore_browser_profile that the provider could not fully read (Error Listing Remote Resources: listing Bedrock AgentCore Browser Profiles: operation error Bedrock AgentCore Control: ListBrowserProfiles, https response error StatusCode: 404, RequestID: cfea5f10-3bbf-4011-8946-d1fb97a8a9a3, api error UnknownOperationException: Unknown operation: POST /browser-profiles), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"severity": "warning",
|
|
111
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
112
|
+
"detail": "The estate-wide sweep listed a aws_bedrockagentcore_evaluator that the provider could not fully read (Error Listing Remote Resources: listing Bedrock AgentCore Evaluators: operation error Bedrock AgentCore Control: ListEvaluators, https response error StatusCode: 404, RequestID: dd8dd4bf-6a92-4477-a7bd-dfe8fbd8b8df, api error UnknownOperationException: Unknown operation: POST /evaluators), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"severity": "warning",
|
|
116
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
117
|
+
"detail": "The estate-wide sweep listed a aws_bedrockagentcore_harness that the provider could not fully read (Error Listing Remote Resources: listing Bedrock AgentCore Harnesses: operation error Bedrock AgentCore Control: ListHarnesses, https response error StatusCode: 404, RequestID: b1d60f1d-72e1-4faf-8eb6-589dca095f58, api error UnknownOperationException: Unknown operation: GET /harnesses), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"severity": "warning",
|
|
121
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
122
|
+
"detail": "The estate-wide sweep listed a aws_bedrockagentcore_online_evaluation_config that the provider could not fully read (Error Listing Remote Resources: listing Bedrock AgentCore Online Evaluation Config resources: operation error Bedrock AgentCore Control: ListOnlineEvaluationConfigs, https response error StatusCode: 404, RequestID: c15091aa-6c86-4252-915f-b150ec837003, api error UnknownOperationException: Unknown operation: POST /online-evaluation-configs), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"severity": "warning",
|
|
126
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
127
|
+
"detail": "The estate-wide sweep listed a aws_bedrockagentcore_policy_engine that the provider could not fully read (Error Listing Remote Resources: listing Bedrock AgentCore Policy Engines: operation error Bedrock AgentCore Control: ListPolicyEngines, https response error StatusCode: 404, RequestID: 13c62cba-5f73-4c52-83d2-5700bdb06361, api error UnknownOperationException: Unknown operation: GET /policy-engines), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"severity": "warning",
|
|
131
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
132
|
+
"detail": "The estate-wide sweep listed a aws_cleanrooms_collaboration that the provider could not fully read (Error Listing Remote Resources: listing Clean Rooms Collaboration resources: operation error CleanRooms: ListCollaborations, https response error StatusCode: 404, RequestID: 2bcd493d-528d-48f5-9c11-4e0e1130c964, api error UnknownOperationException: Unknown operation: GET /collaborations), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"severity": "warning",
|
|
136
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
137
|
+
"detail": "The estate-wide sweep listed a aws_cleanrooms_configured_table that the provider could not fully read (Error Listing Remote Resources: listing Clean Rooms Configured Table resources: operation error CleanRooms: ListConfiguredTables, https response error StatusCode: 404, RequestID: 8be20ff4-17a7-4539-ae36-0cd20ecd8732, api error UnknownOperationException: Unknown operation: GET /configuredTables), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"severity": "warning",
|
|
141
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
142
|
+
"detail": "The estate-wide sweep listed a aws_cleanrooms_membership that the provider could not fully read (Error Listing Remote Resources: listing Clean Rooms Membership resources: operation error CleanRooms: ListMemberships, https response error StatusCode: 404, RequestID: 1a7acf79-c2b7-4194-bf51-481c5714306c, api error UnknownOperationException: Unknown operation: GET /memberships), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"severity": "warning",
|
|
146
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
147
|
+
"detail": "The estate-wide sweep listed a aws_cloudfront_key_value_store that the provider could not fully read (Error Listing Remote Resources: listing CloudFront Key Value Store resources: operation error CloudFront: ListKeyValueStores, https response error StatusCode: 404, RequestID: , api error UnknownError: UnknownError), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"severity": "warning",
|
|
151
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
152
|
+
"detail": "The estate-wide sweep listed a aws_cloudwatch_alarm_mute_rule that the provider could not fully read (Error Listing Remote Resources: listing CloudWatch Alarm Mute Rules: operation error CloudWatch: ListAlarmMuteRules, https response error StatusCode: 400, RequestID: 0b189b44-684b-489e-b469-f603146f3666, api error UnsupportedOperation: Operation ListAlarmMuteRules is not supported by CloudWatch JSON.), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"severity": "warning",
|
|
156
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
157
|
+
"detail": "The estate-wide sweep listed a aws_ec2_network_insights_access_scope that the provider could not fully read (Error Listing Remote Resources: listing EC2 Network Insights Access Scopes: operation error EC2: DescribeNetworkInsightsAccessScopes, https response error StatusCode: 400, RequestID: 94e15dd0-e454-4546-8bb8-9b9f517ff061, api error UnsupportedOperation: Operation DescribeNetworkInsightsAccessScopes is not supported.), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"severity": "warning",
|
|
161
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
162
|
+
"detail": "The estate-wide sweep listed a aws_ec2_transit_gateway_metering_policy that the provider could not fully read (Error Listing Remote Resources: listing EC2 Transit Gateway Metering Policies: operation error EC2: DescribeTransitGatewayMeteringPolicies, https response error StatusCode: 400, RequestID: a355d836-d169-4f03-97e7-fee2c8571529, api error UnsupportedOperation: Operation DescribeTransitGatewayMeteringPolicies is not supported.), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"severity": "warning",
|
|
166
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
167
|
+
"detail": "The estate-wide sweep listed a aws_ecs_daemon_task_definition that the provider could not fully read (Error Listing Remote Resources: listing ECS Daemon Task Definitions: operation error ECS: ListDaemonTaskDefinitions, https response error StatusCode: 400, RequestID: a586e7de-99b0-4d5a-ad2c-17bebdb16ab4, api error UnsupportedOperation: Operation ListDaemonTaskDefinitions is not supported.), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"severity": "warning",
|
|
171
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
172
|
+
"detail": "The estate-wide sweep listed a aws_eks_access_entry that the provider could not fully read (Error Listing Remote Resources: listing EKS Access Entries: operation error EKS: ListAccessEntries, serialization failed: serialization failed: input member clusterName must not be empty), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"severity": "warning",
|
|
176
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
177
|
+
"detail": "The estate-wide sweep listed a aws_eks_addon that the provider could not fully read (Error Listing Remote Resources: listing EKS Add-Ons: operation error EKS: ListAddons, serialization failed: serialization failed: input member clusterName must not be empty), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"severity": "warning",
|
|
181
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
182
|
+
"detail": "The estate-wide sweep listed a aws_eks_node_group that the provider could not fully read (Error Listing Remote Resources: listing EKS Node Groups: operation error EKS: ListNodegroups, serialization failed: serialization failed: input member clusterName must not be empty), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"severity": "warning",
|
|
186
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
187
|
+
"detail": "The estate-wide sweep listed a aws_glue_catalog that the provider could not fully read (Error Listing Remote Resources: listing Glue Catalogs: operation error Glue: GetCatalogs, https response error StatusCode: 400, RequestID: 5f5d7e21-81b7-4e5b-ba9a-68c4f7e8ee3f, api error InvalidAction: Action GetCatalogs is not supported), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"severity": "warning",
|
|
191
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
192
|
+
"detail": "The estate-wide sweep listed a aws_mailmanager_rule_set that the provider could not fully read (Error Listing Remote Resources: listing SES Mail Manager Rule Set resources: operation error MailManager: ListRuleSets, https response error StatusCode: 404, RequestID: 7d27df75-c06e-45c3-8a94-27f0c99b5f6d, deserialization failed, unexpected smithy-protocol response header '' (HTTP status: 404 Not Found)), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"severity": "warning",
|
|
196
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
197
|
+
"detail": "The estate-wide sweep listed a aws_mailmanager_traffic_policy that the provider could not fully read (Error Listing Remote Resources: operation error MailManager: ListTrafficPolicies, https response error StatusCode: 404, RequestID: c8f5f01e-e2fb-41d3-8511-662b1bfcb413, deserialization failed, unexpected smithy-protocol response header '' (HTTP status: 404 Not Found)), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"severity": "warning",
|
|
201
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
202
|
+
"detail": "The estate-wide sweep listed a aws_opensearchserverless_collection that the provider could not fully read (Error Listing Remote Resources: listing OpenSearch Serverless Collections: operation error OpenSearchServerless: ListCollections, https response error StatusCode: 404, RequestID: 830db378-80ce-4278-9268-e03c12d34353, api error UnknownOperationException: Unknown operation: OpenSearchServerless.ListCollections), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"severity": "warning",
|
|
206
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
207
|
+
"detail": "The estate-wide sweep listed a aws_opensearchserverless_collection_group that the provider could not fully read (Error Listing Remote Resources: listing OpenSearch Serverless Collection Groups: operation error OpenSearchServerless: ListCollectionGroups, https response error StatusCode: 404, RequestID: 09a0eb30-7652-4d4b-aa12-c6babf4754f9, api error UnknownOperationException: Unknown operation: OpenSearchServerless.ListCollectionGroups), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"severity": "warning",
|
|
211
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
212
|
+
"detail": "The estate-wide sweep listed a aws_osis_pipeline that the provider could not fully read (Error Listing Remote Resources: listing OpenSearch Ingestion Pipeline resources: operation error OSIS: ListPipelines, https response error StatusCode: 404, RequestID: da0b67b6-417b-4df9-a2f5-c2c849dd9604, api error UnknownOperationException: Unknown operation: GET /2022-01-01/osis/listPipelines), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"severity": "warning",
|
|
216
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
217
|
+
"detail": "The estate-wide sweep listed a aws_pinpointsmsvoicev2_pool that the provider could not fully read (Error Listing Remote Resources: operation error Pinpoint SMS Voice V2: DescribePools, https response error StatusCode: 404, RequestID: 21665f5d-0a75-4515-bb62-5bb03603da15, api error UnknownOperationException: Unknown operation: PinpointSMSVoiceV2.DescribePools), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"severity": "warning",
|
|
221
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
222
|
+
"detail": "The estate-wide sweep listed a aws_prometheus_anomaly_detector that the provider could not fully read (Error Listing Remote Resources: listing AMP (Managed Prometheus) Anomaly Detector resources: operation error amp: ListAnomalyDetectors, serialization failed: serialization failed: input member workspaceId must not be empty), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"severity": "warning",
|
|
226
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
227
|
+
"detail": "The estate-wide sweep listed a aws_rekognition_collection that the provider could not fully read (Error Listing Remote Resources: listing Rekognition Collections: operation error Rekognition: ListCollections, https response error StatusCode: 404, RequestID: 559c075d-b91d-4956-b9e2-0d9f01b3239e, api error UnknownOperationException: Unknown operation: RekognitionService.ListCollections), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"severity": "warning",
|
|
231
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
232
|
+
"detail": "The estate-wide sweep listed a aws_resiliencehubv2_policy that the provider could not fully read (Error Listing Remote Resources: listing Resilience Hub V2 Policies: operation error resiliencehubv2: ListPolicies, https response error StatusCode: 404, RequestID: b2aee268-3876-4163-b1dd-31399bb1da32, api error UnknownOperationException: Unknown operation: GET /v2/list-policies), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"severity": "warning",
|
|
236
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
237
|
+
"detail": "The estate-wide sweep listed a aws_route53_resolver_rule that the provider could not fully read (Error Listing Remote Resources: listing Route53 Resolver Rules: operation error Route53Resolver: ListResolverRules, https response error StatusCode: 404, RequestID: fc867ad8-77d3-4084-8cf7-36abe714f121, api error UnknownOperationException: Unknown operation: Route53Resolver.ListResolverRules), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"severity": "warning",
|
|
241
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
242
|
+
"detail": "The estate-wide sweep listed a aws_s3_directory_bucket that the provider could not fully read (Error Listing Remote Resources: listing S3 Directory Bucket resources: operation error S3: ListDirectoryBuckets, get identity: bucket name is missing), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"severity": "warning",
|
|
246
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
247
|
+
"detail": "The estate-wide sweep listed a aws_s3files_access_point that the provider could not fully read (Error Listing Remote Resources: operation error S3Files: ListAccessPoints, 1 validation error(s) found.\n- missing required field, ListAccessPointsInput.FileSystemId.\n), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"severity": "warning",
|
|
251
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
252
|
+
"detail": "The estate-wide sweep listed a aws_s3files_file_system that the provider could not fully read (Error Listing Remote Resources: operation error S3Files: ListFileSystems, https response error StatusCode: 404, RequestID: c6761512-a695-4051-b61f-5786821d6041, api error UnknownOperationException: Unknown operation: GET /file-systems), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"severity": "warning",
|
|
256
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
257
|
+
"detail": "The estate-wide sweep listed a aws_sagemaker_hub_content_reference that the provider could not fully read (Error Listing Remote Resources: listing SageMaker Hub Content Reference resources: operation error SageMaker: ListHubs, https response error StatusCode: 400, RequestID: 2a883b3d-177a-4dcc-85e3-9f114f730510, api error UnknownOperationException: Operation ListHubs is not supported by floci), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"severity": "warning",
|
|
261
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
262
|
+
"detail": "The estate-wide sweep listed a aws_securityhub_automation_rule_v2 that the provider could not fully read (Error Listing Remote Resources: listing Security Hub V2 Automation Rules: operation error SecurityHub: ListAutomationRulesV2, https response error StatusCode: 404, RequestID: 568ce3df-35ff-4d65-bc8b-1708eaa17fc9, api error UnknownOperationException: Unknown operation: GET /automationrulesv2/list), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"severity": "warning",
|
|
266
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
267
|
+
"detail": "The estate-wide sweep listed a aws_securityhub_connector_v2 that the provider could not fully read (Error Listing Remote Resources: listing Security Hub V2 Connectors: operation error SecurityHub: ListConnectorsV2, https response error StatusCode: 404, RequestID: a975e3a9-1cbd-4729-9de7-22cce42a6bde, api error UnknownOperationException: Unknown operation: GET /connectorsv2), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"severity": "warning",
|
|
271
|
+
"summary": "Incomplete sweep for undeclared resources",
|
|
272
|
+
"detail": "The estate-wide sweep listed a aws_workspaces_pool that the provider could not fully read (Error Listing Remote Resources: listing WorkSpaces Pools: operation error WorkSpaces: DescribeWorkspacesPools, https response error StatusCode: 404, RequestID: 296ecdfc-186f-437b-a9cc-e9775b298f7f, api error UnknownOperationException: Unknown operation: WorkspacesService.DescribeWorkspacesPools), so its ownership markers cannot be read and it cannot be matched to this estate. This is expected for a resource this estate does not own, such as an AWS-managed default; the sweep continues over the rest of this type's objects and every other type."
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"severity": "warning",
|
|
276
|
+
"summary": "Live resource outside this estate",
|
|
277
|
+
"detail": "A live aws_cloudwatch_log_group already exists with identity \"/stateless-e2e-block/adoptable\" and carries no tofu-estate marker, so this estate does not own it and the plan proposes creating the resource this configuration declares - which, for a type whose name must be unique, the cloud will refuse while the unowned one holds it. Adopt it by writing tofu-estate=\"stateless-e2e-block\" and tofu-address=\"aws_cloudwatch_log_group.adoptable\" onto it, then re-run; or set policy { declared_untagged = \"adopt\" } in the live block to have this run adopt it for you; or point this resource at a name nobody is using."
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"severity": "warning",
|
|
281
|
+
"summary": "Live resource outside this estate",
|
|
282
|
+
"detail": "A live aws_cloudwatch_log_group already exists with identity \"/stateless-e2e-block/held-elsewhere\" and carries tofu-estate=\"other-estate\", so it belongs to another estate and nothing in this plan reads, changes or destroys it. See live/MARKERS.md, \"Ownership semantics\"."
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
terraform {
|
|
2
|
+
required_version = ">= 1.5.0"
|
|
3
|
+
|
|
4
|
+
required_providers {
|
|
5
|
+
null = {
|
|
6
|
+
source = "hashicorp/null"
|
|
7
|
+
version = "~> 3.2"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
provider "null" {}
|
|
13
|
+
|
|
14
|
+
resource "null_resource" "first" {
|
|
15
|
+
triggers = {
|
|
16
|
+
name = "first"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
resource "null_resource" "second" {
|
|
21
|
+
triggers = {
|
|
22
|
+
name = "second"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# module-tree
|
|
2
|
+
|
|
3
|
+
Four roots for the module-descent tests (`src/hcl/descend.test.ts`, chant
|
|
4
|
+
#2112). Nothing here is applied, and no provider is real; the shapes are what
|
|
5
|
+
the descent has to get right.
|
|
6
|
+
|
|
7
|
+
- `root/` calls `./modules/cdn` (which itself calls `./modules/bucket`, two
|
|
8
|
+
levels) and a registry module. The registry call is where "not followed"
|
|
9
|
+
is asserted; the local ones are where the `<root>/module.<name>/<address>`
|
|
10
|
+
keys and the `callers` chains are.
|
|
11
|
+
- `cycle/` is `a` calling `b` calling `a`, the case the visited set on
|
|
12
|
+
resolved paths has to stop.
|
|
13
|
+
- `outside/root` sources `../../shared`, which resolves outside `outside/`,
|
|
14
|
+
the project root the test hands the render. `shared/` is the directory it
|
|
15
|
+
points at, deliberately reachable on disk so the refusal is about the
|
|
16
|
+
boundary and not about a missing directory.
|