@f5-sales-demo/xcsh 19.51.2
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/CHANGELOG.md +7073 -0
- package/README.md +14 -0
- package/examples/README.md +21 -0
- package/examples/custom-tools/README.md +109 -0
- package/examples/custom-tools/hello/index.ts +20 -0
- package/examples/custom-tools/todo/index.ts +206 -0
- package/examples/extensions/README.md +143 -0
- package/examples/extensions/api-demo.ts +89 -0
- package/examples/extensions/chalk-logger.ts +25 -0
- package/examples/extensions/hello.ts +32 -0
- package/examples/extensions/pirate.ts +43 -0
- package/examples/extensions/plan-mode.ts +551 -0
- package/examples/extensions/reload-runtime.ts +37 -0
- package/examples/extensions/todo.ts +296 -0
- package/examples/extensions/tools.ts +145 -0
- package/examples/extensions/with-deps/index.ts +36 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +16 -0
- package/examples/hooks/README.md +56 -0
- package/examples/hooks/auto-commit-on-exit.ts +48 -0
- package/examples/hooks/confirm-destructive.ts +58 -0
- package/examples/hooks/custom-compaction.ts +115 -0
- package/examples/hooks/dirty-repo-guard.ts +51 -0
- package/examples/hooks/file-trigger.ts +40 -0
- package/examples/hooks/git-checkpoint.ts +52 -0
- package/examples/hooks/handoff.ts +149 -0
- package/examples/hooks/permission-gate.ts +33 -0
- package/examples/hooks/protected-paths.ts +29 -0
- package/examples/hooks/qna.ts +118 -0
- package/examples/hooks/status-line.ts +39 -0
- package/examples/sdk/01-minimal.ts +21 -0
- package/examples/sdk/02-custom-model.ts +49 -0
- package/examples/sdk/03-custom-prompt.ts +43 -0
- package/examples/sdk/04-skills.ts +43 -0
- package/examples/sdk/06-extensions.ts +80 -0
- package/examples/sdk/06-hooks.ts +61 -0
- package/examples/sdk/07-context-files.ts +35 -0
- package/examples/sdk/08-prompt-templates.ts +41 -0
- package/examples/sdk/08-slash-commands.ts +46 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +54 -0
- package/examples/sdk/11-sessions.ts +47 -0
- package/examples/sdk/README.md +172 -0
- package/package.json +539 -0
- package/scripts/build-info/resolvers.ts +51 -0
- package/scripts/capture-ax-fixture.ts +84 -0
- package/scripts/capture-login-fixture.ts +30 -0
- package/scripts/check-workflow-field-coverage.ts +101 -0
- package/scripts/extension-uat-harness.ts +340 -0
- package/scripts/format-prompts.ts +68 -0
- package/scripts/generate-api-spec-index.ts +580 -0
- package/scripts/generate-branding-index.ts +81 -0
- package/scripts/generate-build-info.ts +106 -0
- package/scripts/generate-console-catalog.ts +88 -0
- package/scripts/generate-console-field-metadata.ts +74 -0
- package/scripts/generate-docs-index.ts +40 -0
- package/scripts/generate-template.ts +32 -0
- package/scripts/generate-terraform-index.ts +81 -0
- package/scripts/mermaid-gallery.ts +132 -0
- package/scripts/uat-matrix-modalities.ts +451 -0
- package/scripts/uat-matrix-report.ts +175 -0
- package/scripts/uat-matrix.ts +353 -0
- package/src/async/index.ts +2 -0
- package/src/async/job-manager.ts +416 -0
- package/src/async/support.ts +5 -0
- package/src/autoresearch/apply-contract-to-state.ts +1 -0
- package/src/autoresearch/command-resume.md +17 -0
- package/src/autoresearch/contract.ts +205 -0
- package/src/autoresearch/dashboard.ts +374 -0
- package/src/autoresearch/git.ts +191 -0
- package/src/autoresearch/helpers.ts +328 -0
- package/src/autoresearch/index.ts +402 -0
- package/src/autoresearch/prompt.md +236 -0
- package/src/autoresearch/resume-message.md +16 -0
- package/src/autoresearch/state.ts +303 -0
- package/src/autoresearch/tools/init-experiment.ts +400 -0
- package/src/autoresearch/tools/log-experiment.ts +793 -0
- package/src/autoresearch/tools/run-experiment.ts +679 -0
- package/src/autoresearch/types.ts +114 -0
- package/src/browser/acquire.ts +249 -0
- package/src/browser/actions.ts +126 -0
- package/src/browser/auth.ts +176 -0
- package/src/browser/ax.ts +134 -0
- package/src/browser/cdp-core.ts +45 -0
- package/src/browser/cdp-page-actions.ts +51 -0
- package/src/browser/chrome-locate.ts +66 -0
- package/src/browser/dom-context.ts +89 -0
- package/src/browser/dt-context.ts +100 -0
- package/src/browser/extension-bridge.ts +182 -0
- package/src/browser/extension-page-actions.ts +397 -0
- package/src/browser/extension-provider.ts +373 -0
- package/src/browser/index.ts +17 -0
- package/src/browser/input-commit.ts +74 -0
- package/src/browser/native-messaging.ts +20 -0
- package/src/browser/page-actions.ts +18 -0
- package/src/browser/provider.ts +155 -0
- package/src/browser/resolver.ts +126 -0
- package/src/browser/selector.ts +40 -0
- package/src/bun-imports.d.ts +22 -0
- package/src/capability/context-file.ts +43 -0
- package/src/capability/extension-module.ts +34 -0
- package/src/capability/extension.ts +47 -0
- package/src/capability/fs.ts +107 -0
- package/src/capability/hook.ts +40 -0
- package/src/capability/index.ts +438 -0
- package/src/capability/instruction.ts +37 -0
- package/src/capability/mcp.ts +74 -0
- package/src/capability/prompt.ts +35 -0
- package/src/capability/rule.ts +224 -0
- package/src/capability/settings.ts +34 -0
- package/src/capability/skill.ts +50 -0
- package/src/capability/slash-command.ts +40 -0
- package/src/capability/ssh.ts +41 -0
- package/src/capability/system-prompt.ts +34 -0
- package/src/capability/tool.ts +38 -0
- package/src/capability/types.ts +168 -0
- package/src/cli/agents-cli.ts +138 -0
- package/src/cli/args.ts +286 -0
- package/src/cli/chrome-cli.ts +88 -0
- package/src/cli/classify-install-target.ts +50 -0
- package/src/cli/commands/init-xdg.ts +27 -0
- package/src/cli/config-cli.ts +418 -0
- package/src/cli/file-processor.ts +121 -0
- package/src/cli/grep-cli.ts +160 -0
- package/src/cli/grievances-cli.ts +78 -0
- package/src/cli/initial-message.ts +58 -0
- package/src/cli/jupyter-cli.ts +106 -0
- package/src/cli/list-models.ts +128 -0
- package/src/cli/plugin-cli.ts +964 -0
- package/src/cli/read-cli.ts +68 -0
- package/src/cli/session-picker.ts +52 -0
- package/src/cli/setup-cli.ts +479 -0
- package/src/cli/shell-cli.ts +174 -0
- package/src/cli/ssh-cli.ts +179 -0
- package/src/cli/stats-cli.ts +182 -0
- package/src/cli/update-cli.ts +446 -0
- package/src/cli/web-search-cli.ts +203 -0
- package/src/cli.ts +123 -0
- package/src/commands/agents.ts +57 -0
- package/src/commands/chrome-host.ts +71 -0
- package/src/commands/chrome.ts +28 -0
- package/src/commands/commit.ts +36 -0
- package/src/commands/config.ts +51 -0
- package/src/commands/grep.ts +48 -0
- package/src/commands/grievances.ts +20 -0
- package/src/commands/jupyter.ts +32 -0
- package/src/commands/launch.ts +144 -0
- package/src/commands/plugin.ts +78 -0
- package/src/commands/read.ts +33 -0
- package/src/commands/setup.ts +42 -0
- package/src/commands/shell.ts +29 -0
- package/src/commands/ssh.ts +60 -0
- package/src/commands/stats.ts +29 -0
- package/src/commands/update.ts +21 -0
- package/src/commands/web-search.ts +46 -0
- package/src/commit/agentic/agent.ts +314 -0
- package/src/commit/agentic/fallback.ts +96 -0
- package/src/commit/agentic/index.ts +354 -0
- package/src/commit/agentic/prompts/analyze-file.md +22 -0
- package/src/commit/agentic/prompts/session-user.md +25 -0
- package/src/commit/agentic/prompts/split-confirm.md +1 -0
- package/src/commit/agentic/prompts/system.md +38 -0
- package/src/commit/agentic/state.ts +60 -0
- package/src/commit/agentic/tools/analyze-file.ts +127 -0
- package/src/commit/agentic/tools/git-file-diff.ts +191 -0
- package/src/commit/agentic/tools/git-hunk.ts +50 -0
- package/src/commit/agentic/tools/git-overview.ts +81 -0
- package/src/commit/agentic/tools/index.ts +54 -0
- package/src/commit/agentic/tools/propose-changelog.ts +139 -0
- package/src/commit/agentic/tools/propose-commit.ts +122 -0
- package/src/commit/agentic/tools/recent-commits.ts +81 -0
- package/src/commit/agentic/tools/schemas.ts +31 -0
- package/src/commit/agentic/tools/split-commit.ts +251 -0
- package/src/commit/agentic/topo-sort.ts +44 -0
- package/src/commit/agentic/trivial.ts +51 -0
- package/src/commit/agentic/validation.ts +183 -0
- package/src/commit/analysis/conventional.ts +122 -0
- package/src/commit/analysis/index.ts +4 -0
- package/src/commit/analysis/scope.ts +242 -0
- package/src/commit/analysis/summary.ts +105 -0
- package/src/commit/analysis/validation.ts +66 -0
- package/src/commit/changelog/detect.ts +40 -0
- package/src/commit/changelog/generate.ts +101 -0
- package/src/commit/changelog/index.ts +234 -0
- package/src/commit/changelog/parse.ts +44 -0
- package/src/commit/cli.ts +85 -0
- package/src/commit/git/diff.ts +148 -0
- package/src/commit/index.ts +5 -0
- package/src/commit/map-reduce/index.ts +69 -0
- package/src/commit/map-reduce/map-phase.ts +193 -0
- package/src/commit/map-reduce/reduce-phase.ts +108 -0
- package/src/commit/map-reduce/utils.ts +9 -0
- package/src/commit/message.ts +11 -0
- package/src/commit/model-selection.ts +66 -0
- package/src/commit/pipeline.ts +242 -0
- package/src/commit/prompts/analysis-system.md +148 -0
- package/src/commit/prompts/analysis-user.md +38 -0
- package/src/commit/prompts/changelog-system.md +50 -0
- package/src/commit/prompts/changelog-user.md +18 -0
- package/src/commit/prompts/file-observer-system.md +24 -0
- package/src/commit/prompts/file-observer-user.md +8 -0
- package/src/commit/prompts/reduce-system.md +50 -0
- package/src/commit/prompts/reduce-user.md +17 -0
- package/src/commit/prompts/summary-retry.md +3 -0
- package/src/commit/prompts/summary-system.md +38 -0
- package/src/commit/prompts/summary-user.md +13 -0
- package/src/commit/prompts/types-description.md +2 -0
- package/src/commit/types.ts +118 -0
- package/src/commit/utils/exclusions.ts +42 -0
- package/src/commit/utils.ts +44 -0
- package/src/config/auto-config.ts +698 -0
- package/src/config/context-schema.json +115 -0
- package/src/config/file-lock.ts +121 -0
- package/src/config/keybindings.ts +493 -0
- package/src/config/mcp-schema.json +230 -0
- package/src/config/model-equivalence.ts +675 -0
- package/src/config/model-registry.ts +2265 -0
- package/src/config/model-resolver.ts +1289 -0
- package/src/config/prompt-templates.ts +271 -0
- package/src/config/resolve-config-value.ts +110 -0
- package/src/config/settings-schema.ts +2155 -0
- package/src/config/settings.ts +730 -0
- package/src/config.ts +418 -0
- package/src/cursor.ts +323 -0
- package/src/dap/client.ts +674 -0
- package/src/dap/config.ts +150 -0
- package/src/dap/defaults.json +211 -0
- package/src/dap/index.ts +4 -0
- package/src/dap/session.ts +1255 -0
- package/src/dap/types.ts +600 -0
- package/src/debug/index.ts +440 -0
- package/src/debug/log-formatting.ts +58 -0
- package/src/debug/log-viewer.ts +908 -0
- package/src/debug/profiler.ts +158 -0
- package/src/debug/report-bundle.ts +365 -0
- package/src/debug/system-info.ts +107 -0
- package/src/discovery/agents-md.ts +67 -0
- package/src/discovery/agents.ts +219 -0
- package/src/discovery/builtin.ts +851 -0
- package/src/discovery/claude-plugins.ts +297 -0
- package/src/discovery/claude.ts +543 -0
- package/src/discovery/cline.ts +83 -0
- package/src/discovery/codex.ts +535 -0
- package/src/discovery/cursor.ts +220 -0
- package/src/discovery/gemini.ts +396 -0
- package/src/discovery/github.ts +118 -0
- package/src/discovery/helpers.ts +934 -0
- package/src/discovery/index.ts +79 -0
- package/src/discovery/language.ts +46 -0
- package/src/discovery/mcp-json.ts +171 -0
- package/src/discovery/opencode.ts +393 -0
- package/src/discovery/plugin-dir-roots.ts +28 -0
- package/src/discovery/ssh.ts +153 -0
- package/src/discovery/substitute-plugin-root.ts +29 -0
- package/src/discovery/vscode.ts +105 -0
- package/src/discovery/windsurf.ts +147 -0
- package/src/edit/diff.ts +818 -0
- package/src/edit/index.ts +481 -0
- package/src/edit/line-hash.ts +67 -0
- package/src/edit/modes/chunk.ts +762 -0
- package/src/edit/modes/hashline.ts +1366 -0
- package/src/edit/modes/patch.ts +1791 -0
- package/src/edit/modes/replace.ts +1115 -0
- package/src/edit/normalize.ts +375 -0
- package/src/edit/renderer.ts +627 -0
- package/src/exa/factory.ts +61 -0
- package/src/exa/index.ts +27 -0
- package/src/exa/mcp-client.ts +293 -0
- package/src/exa/render.ts +232 -0
- package/src/exa/researcher.ts +47 -0
- package/src/exa/search.ts +86 -0
- package/src/exa/types.ts +166 -0
- package/src/exa/websets.ts +247 -0
- package/src/exec/bash-executor.ts +332 -0
- package/src/exec/exec.ts +53 -0
- package/src/exec/idle-timeout-watchdog.ts +126 -0
- package/src/exec/non-interactive-env.ts +48 -0
- package/src/export/custom-share.ts +65 -0
- package/src/export/html/index.ts +161 -0
- package/src/export/html/template.css +1001 -0
- package/src/export/html/template.generated.ts +2 -0
- package/src/export/html/template.html +46 -0
- package/src/export/html/template.js +1950 -0
- package/src/export/html/template.macro.ts +24 -0
- package/src/export/html/vendor/highlight.min.js +1213 -0
- package/src/export/html/vendor/marked.min.js +6 -0
- package/src/export/ttsr.ts +434 -0
- package/src/extensibility/custom-commands/bundled/ci-green/index.ts +25 -0
- package/src/extensibility/custom-commands/bundled/review/index.ts +456 -0
- package/src/extensibility/custom-commands/index.ts +2 -0
- package/src/extensibility/custom-commands/loader.ts +236 -0
- package/src/extensibility/custom-commands/types.ts +111 -0
- package/src/extensibility/custom-tools/index.ts +7 -0
- package/src/extensibility/custom-tools/loader.ts +238 -0
- package/src/extensibility/custom-tools/types.ts +251 -0
- package/src/extensibility/custom-tools/wrapper.ts +47 -0
- package/src/extensibility/extensions/index.ts +15 -0
- package/src/extensibility/extensions/loader.ts +572 -0
- package/src/extensibility/extensions/runner.ts +848 -0
- package/src/extensibility/extensions/types.ts +1394 -0
- package/src/extensibility/extensions/wrapper.ts +191 -0
- package/src/extensibility/hooks/index.ts +5 -0
- package/src/extensibility/hooks/loader.ts +255 -0
- package/src/extensibility/hooks/runner.ts +425 -0
- package/src/extensibility/hooks/tool-wrapper.ts +108 -0
- package/src/extensibility/hooks/types.ts +826 -0
- package/src/extensibility/plugins/doctor.ts +66 -0
- package/src/extensibility/plugins/git-url.ts +281 -0
- package/src/extensibility/plugins/index.ts +9 -0
- package/src/extensibility/plugins/installer.ts +192 -0
- package/src/extensibility/plugins/loader.ts +267 -0
- package/src/extensibility/plugins/manager.ts +731 -0
- package/src/extensibility/plugins/marketplace/cache.ts +136 -0
- package/src/extensibility/plugins/marketplace/fetcher.ts +318 -0
- package/src/extensibility/plugins/marketplace/index.ts +6 -0
- package/src/extensibility/plugins/marketplace/manager.ts +781 -0
- package/src/extensibility/plugins/marketplace/prerequisites.ts +255 -0
- package/src/extensibility/plugins/marketplace/registry.ts +196 -0
- package/src/extensibility/plugins/marketplace/source-resolver.ts +147 -0
- package/src/extensibility/plugins/marketplace/types.ts +201 -0
- package/src/extensibility/plugins/parser.ts +105 -0
- package/src/extensibility/plugins/types.ts +194 -0
- package/src/extensibility/skills.ts +269 -0
- package/src/extensibility/slash-commands.ts +246 -0
- package/src/extensibility/tool-proxy.ts +25 -0
- package/src/extensibility/utils.ts +38 -0
- package/src/index.ts +61 -0
- package/src/internal-urls/agent-protocol.ts +136 -0
- package/src/internal-urls/api-catalog-resolve.ts +495 -0
- package/src/internal-urls/api-catalog-types.ts +94 -0
- package/src/internal-urls/api-spec-resolve.ts +1036 -0
- package/src/internal-urls/api-spec-types.ts +239 -0
- package/src/internal-urls/artifact-protocol.ts +97 -0
- package/src/internal-urls/branding-index.generated.ts +88 -0
- package/src/internal-urls/build-info-runtime.ts +302 -0
- package/src/internal-urls/build-info.generated.ts +33 -0
- package/src/internal-urls/computer-profile.ts +692 -0
- package/src/internal-urls/console-catalog-types.ts +21 -0
- package/src/internal-urls/console-catalog.generated.ts +532 -0
- package/src/internal-urls/console-field-metadata-types.ts +59 -0
- package/src/internal-urls/console-field-metadata.generated.ts +4841 -0
- package/src/internal-urls/console-resolve.ts +178 -0
- package/src/internal-urls/docs-index.generated.ts +698 -0
- package/src/internal-urls/extension-api.md +147 -0
- package/src/internal-urls/index.ts +46 -0
- package/src/internal-urls/jobs-protocol.ts +119 -0
- package/src/internal-urls/json-query.ts +126 -0
- package/src/internal-urls/local-protocol.ts +206 -0
- package/src/internal-urls/mcp-protocol.ts +156 -0
- package/src/internal-urls/memory-protocol.ts +133 -0
- package/src/internal-urls/parse.ts +72 -0
- package/src/internal-urls/profile-collectors.ts +106 -0
- package/src/internal-urls/router.ts +55 -0
- package/src/internal-urls/rule-protocol.ts +55 -0
- package/src/internal-urls/skill-protocol.ts +111 -0
- package/src/internal-urls/terraform-index.generated.ts +1852 -0
- package/src/internal-urls/terraform-resolve.ts +184 -0
- package/src/internal-urls/terraform-types.ts +45 -0
- package/src/internal-urls/types.ts +52 -0
- package/src/internal-urls/user-profile.ts +363 -0
- package/src/internal-urls/xcsh-protocol.ts +644 -0
- package/src/ipy/cancellation.ts +28 -0
- package/src/ipy/executor.ts +1155 -0
- package/src/ipy/gateway-coordinator.ts +424 -0
- package/src/ipy/kernel.ts +1091 -0
- package/src/ipy/modules.ts +144 -0
- package/src/ipy/prelude.py +849 -0
- package/src/ipy/prelude.ts +3 -0
- package/src/ipy/runtime.ts +221 -0
- package/src/locales/ar.json +512 -0
- package/src/locales/de.json +512 -0
- package/src/locales/en.json +549 -0
- package/src/locales/es.json +512 -0
- package/src/locales/fr.json +512 -0
- package/src/locales/hi.json +512 -0
- package/src/locales/index.ts +29 -0
- package/src/locales/it.json +512 -0
- package/src/locales/ja.json +512 -0
- package/src/locales/ko.json +512 -0
- package/src/locales/pt-br.json +512 -0
- package/src/locales/th.json +512 -0
- package/src/locales/zh-cn.json +512 -0
- package/src/locales/zh-tw.json +512 -0
- package/src/lsp/client.ts +941 -0
- package/src/lsp/clients/biome-client.ts +202 -0
- package/src/lsp/clients/index.ts +50 -0
- package/src/lsp/clients/lsp-linter-client.ts +93 -0
- package/src/lsp/clients/swiftlint-client.ts +120 -0
- package/src/lsp/config.ts +418 -0
- package/src/lsp/defaults.json +999 -0
- package/src/lsp/edits.ts +109 -0
- package/src/lsp/index.ts +1746 -0
- package/src/lsp/lspmux.ts +233 -0
- package/src/lsp/render.ts +692 -0
- package/src/lsp/startup-events.ts +13 -0
- package/src/lsp/types.ts +444 -0
- package/src/lsp/utils.ts +691 -0
- package/src/main.ts +944 -0
- package/src/mcp/client.ts +482 -0
- package/src/mcp/config-writer.ts +225 -0
- package/src/mcp/config.ts +365 -0
- package/src/mcp/discoverable-tool-metadata.ts +202 -0
- package/src/mcp/index.ts +29 -0
- package/src/mcp/json-rpc.ts +84 -0
- package/src/mcp/loader.ts +124 -0
- package/src/mcp/manager.ts +1152 -0
- package/src/mcp/oauth-discovery.ts +349 -0
- package/src/mcp/oauth-flow.ts +387 -0
- package/src/mcp/render.ts +157 -0
- package/src/mcp/smithery-auth.ts +104 -0
- package/src/mcp/smithery-connect.ts +145 -0
- package/src/mcp/smithery-registry.ts +477 -0
- package/src/mcp/tool-bridge.ts +417 -0
- package/src/mcp/tool-cache.ts +117 -0
- package/src/mcp/transports/http.ts +475 -0
- package/src/mcp/transports/index.ts +6 -0
- package/src/mcp/transports/stdio.ts +325 -0
- package/src/mcp/types.ts +423 -0
- package/src/memories/index.ts +1115 -0
- package/src/memories/storage.ts +577 -0
- package/src/modes/acp/acp-agent.ts +1361 -0
- package/src/modes/acp/acp-event-mapper.ts +538 -0
- package/src/modes/acp/acp-mode.ts +15 -0
- package/src/modes/acp/index.ts +2 -0
- package/src/modes/components/agent-dashboard.ts +1124 -0
- package/src/modes/components/assistant-message.ts +213 -0
- package/src/modes/components/bash-execution.ts +345 -0
- package/src/modes/components/bordered-loader.ts +41 -0
- package/src/modes/components/branch-summary-message.ts +45 -0
- package/src/modes/components/btw-panel.ts +103 -0
- package/src/modes/components/compaction-summary-message.ts +51 -0
- package/src/modes/components/context-add-wizard.ts +534 -0
- package/src/modes/components/countdown-timer.ts +75 -0
- package/src/modes/components/custom-editor.ts +238 -0
- package/src/modes/components/custom-message.ts +91 -0
- package/src/modes/components/diff.ts +210 -0
- package/src/modes/components/dynamic-border.ts +25 -0
- package/src/modes/components/extensions/extension-dashboard.ts +326 -0
- package/src/modes/components/extensions/extension-list.ts +492 -0
- package/src/modes/components/extensions/index.ts +9 -0
- package/src/modes/components/extensions/inspector-panel.ts +317 -0
- package/src/modes/components/extensions/state-manager.ts +587 -0
- package/src/modes/components/extensions/types.ts +191 -0
- package/src/modes/components/footer.ts +262 -0
- package/src/modes/components/gutter-block.ts +315 -0
- package/src/modes/components/history-search.ts +158 -0
- package/src/modes/components/hook-editor.ts +151 -0
- package/src/modes/components/hook-input.ts +81 -0
- package/src/modes/components/hook-message.ts +100 -0
- package/src/modes/components/hook-selector.ts +192 -0
- package/src/modes/components/index.ts +36 -0
- package/src/modes/components/keybinding-hints.ts +65 -0
- package/src/modes/components/login-dialog.ts +164 -0
- package/src/modes/components/mcp-add-wizard.ts +1314 -0
- package/src/modes/components/model-selector.ts +946 -0
- package/src/modes/components/oauth-selector.ts +211 -0
- package/src/modes/components/plugin-selector.ts +95 -0
- package/src/modes/components/plugin-settings.ts +477 -0
- package/src/modes/components/plugins/index.ts +5 -0
- package/src/modes/components/plugins/plugin-dashboard.ts +523 -0
- package/src/modes/components/plugins/plugin-inspector-pane.ts +84 -0
- package/src/modes/components/plugins/plugin-list-pane.ts +109 -0
- package/src/modes/components/plugins/state-manager.ts +229 -0
- package/src/modes/components/plugins/types.ts +51 -0
- package/src/modes/components/plugins/utils.ts +6 -0
- package/src/modes/components/python-execution.ts +244 -0
- package/src/modes/components/queue-mode-selector.ts +56 -0
- package/src/modes/components/read-tool-group.ts +137 -0
- package/src/modes/components/session-observer-overlay.ts +483 -0
- package/src/modes/components/session-selector.ts +343 -0
- package/src/modes/components/settings-defs.ts +568 -0
- package/src/modes/components/settings-selector.ts +641 -0
- package/src/modes/components/show-images-selector.ts +45 -0
- package/src/modes/components/skill-message.ts +90 -0
- package/src/modes/components/status-line/context-gradient.ts +64 -0
- package/src/modes/components/status-line/git-utils.ts +42 -0
- package/src/modes/components/status-line/hex-ansi.ts +29 -0
- package/src/modes/components/status-line/index.ts +4 -0
- package/src/modes/components/status-line/presets.ts +174 -0
- package/src/modes/components/status-line/segments.ts +494 -0
- package/src/modes/components/status-line/separators.ts +55 -0
- package/src/modes/components/status-line/token-rate.ts +66 -0
- package/src/modes/components/status-line/types.ts +96 -0
- package/src/modes/components/status-line-segment-editor.ts +361 -0
- package/src/modes/components/status-line.ts +729 -0
- package/src/modes/components/theme-selector.ts +63 -0
- package/src/modes/components/thinking-selector.ts +52 -0
- package/src/modes/components/todo-reminder.ts +54 -0
- package/src/modes/components/tool-execution.ts +781 -0
- package/src/modes/components/tree-selector.ts +908 -0
- package/src/modes/components/ttsr-notification.ts +80 -0
- package/src/modes/components/user-message-selector.ts +141 -0
- package/src/modes/components/user-message.ts +100 -0
- package/src/modes/components/visual-truncate.ts +63 -0
- package/src/modes/components/welcome-checks.ts +313 -0
- package/src/modes/components/welcome.ts +270 -0
- package/src/modes/controllers/btw-controller.ts +193 -0
- package/src/modes/controllers/chord-routing.ts +37 -0
- package/src/modes/controllers/command-controller.ts +1293 -0
- package/src/modes/controllers/context-command-controller.ts +61 -0
- package/src/modes/controllers/event-controller.ts +743 -0
- package/src/modes/controllers/extension-ui-controller.ts +983 -0
- package/src/modes/controllers/input-controller.ts +877 -0
- package/src/modes/controllers/mcp-command-controller.ts +1940 -0
- package/src/modes/controllers/selector-controller.ts +1292 -0
- package/src/modes/controllers/ssh-command-controller.ts +421 -0
- package/src/modes/index.ts +34 -0
- package/src/modes/interactive-mode.ts +1781 -0
- package/src/modes/oauth-manual-input.ts +42 -0
- package/src/modes/print-mode.ts +196 -0
- package/src/modes/prompt-action-autocomplete.ts +231 -0
- package/src/modes/rpc/host-tools.ts +186 -0
- package/src/modes/rpc/rpc-client.ts +762 -0
- package/src/modes/rpc/rpc-mode.ts +877 -0
- package/src/modes/rpc/rpc-types.ts +322 -0
- package/src/modes/session-observer-registry.ts +146 -0
- package/src/modes/shared.ts +30 -0
- package/src/modes/theme/defaults/index.ts +7 -0
- package/src/modes/theme/defaults/xcsh-dark.json +113 -0
- package/src/modes/theme/defaults/xcsh-light.json +115 -0
- package/src/modes/theme/mermaid-cache.ts +151 -0
- package/src/modes/theme/mermaid-palette.ts +39 -0
- package/src/modes/theme/theme-schema.json +553 -0
- package/src/modes/theme/theme.ts +2563 -0
- package/src/modes/types.ts +273 -0
- package/src/modes/utils/hotkeys-markdown.ts +60 -0
- package/src/modes/utils/keybinding-matchers.ts +30 -0
- package/src/modes/utils/read-group-outcome-aggregator.ts +55 -0
- package/src/modes/utils/sanitize-error-message.ts +60 -0
- package/src/modes/utils/tools-markdown.ts +28 -0
- package/src/modes/utils/ui-helpers.ts +734 -0
- package/src/plan-mode/approved-plan.ts +55 -0
- package/src/plan-mode/state.ts +6 -0
- package/src/priority.json +37 -0
- package/src/prompts/agents/designer.md +67 -0
- package/src/prompts/agents/explore.md +61 -0
- package/src/prompts/agents/frontmatter.md +10 -0
- package/src/prompts/agents/init.md +36 -0
- package/src/prompts/agents/librarian.md +121 -0
- package/src/prompts/agents/plan.md +49 -0
- package/src/prompts/agents/reviewer.md +127 -0
- package/src/prompts/agents/task.md +16 -0
- package/src/prompts/ci-green-request.md +35 -0
- package/src/prompts/compaction/branch-summary-context.md +5 -0
- package/src/prompts/compaction/branch-summary-preamble.md +2 -0
- package/src/prompts/compaction/branch-summary.md +30 -0
- package/src/prompts/compaction/compaction-short-summary.md +9 -0
- package/src/prompts/compaction/compaction-summary-context.md +5 -0
- package/src/prompts/compaction/compaction-summary.md +38 -0
- package/src/prompts/compaction/compaction-turn-prefix.md +17 -0
- package/src/prompts/compaction/compaction-update-summary.md +45 -0
- package/src/prompts/memories/consolidation.md +30 -0
- package/src/prompts/memories/read-path.md +11 -0
- package/src/prompts/memories/stage_one_input.md +6 -0
- package/src/prompts/memories/stage_one_system.md +21 -0
- package/src/prompts/review-request.md +70 -0
- package/src/prompts/system/agent-creation-architect.md +65 -0
- package/src/prompts/system/agent-creation-user.md +6 -0
- package/src/prompts/system/auto-handoff-threshold-focus.md +1 -0
- package/src/prompts/system/btw-user.md +8 -0
- package/src/prompts/system/commit-message-system.md +2 -0
- package/src/prompts/system/custom-system-prompt.md +82 -0
- package/src/prompts/system/eager-todo.md +13 -0
- package/src/prompts/system/file-operations.md +10 -0
- package/src/prompts/system/handoff-document.md +48 -0
- package/src/prompts/system/plan-mode-active.md +114 -0
- package/src/prompts/system/plan-mode-approved.md +23 -0
- package/src/prompts/system/plan-mode-reference.md +14 -0
- package/src/prompts/system/plan-mode-subagent.md +34 -0
- package/src/prompts/system/plan-mode-tool-decision-reminder.md +9 -0
- package/src/prompts/system/subagent-submit-reminder.md +7 -0
- package/src/prompts/system/subagent-system-prompt.md +36 -0
- package/src/prompts/system/subagent-user-prompt.md +12 -0
- package/src/prompts/system/summarization-system.md +3 -0
- package/src/prompts/system/system-prompt.md +698 -0
- package/src/prompts/system/title-system.md +2 -0
- package/src/prompts/system/ttsr-interrupt.md +7 -0
- package/src/prompts/system/web-search.md +28 -0
- package/src/prompts/tools/ask.md +28 -0
- package/src/prompts/tools/ast-edit.md +48 -0
- package/src/prompts/tools/ast-grep.md +54 -0
- package/src/prompts/tools/async-result.md +5 -0
- package/src/prompts/tools/bash.md +67 -0
- package/src/prompts/tools/browser.md +26 -0
- package/src/prompts/tools/calculator.md +10 -0
- package/src/prompts/tools/cancel-job.md +5 -0
- package/src/prompts/tools/catalog-workflow-runner.md +13 -0
- package/src/prompts/tools/checkpoint.md +16 -0
- package/src/prompts/tools/chunk-edit.md +279 -0
- package/src/prompts/tools/debug.md +43 -0
- package/src/prompts/tools/display-image.md +23 -0
- package/src/prompts/tools/exit-plan-mode.md +41 -0
- package/src/prompts/tools/find.md +26 -0
- package/src/prompts/tools/gemini-image.md +7 -0
- package/src/prompts/tools/grep.md +29 -0
- package/src/prompts/tools/hashline.md +131 -0
- package/src/prompts/tools/inspect-image-system.md +20 -0
- package/src/prompts/tools/inspect-image.md +32 -0
- package/src/prompts/tools/lsp.md +33 -0
- package/src/prompts/tools/patch.md +77 -0
- package/src/prompts/tools/poll.md +5 -0
- package/src/prompts/tools/python.md +60 -0
- package/src/prompts/tools/read-chunk.md +35 -0
- package/src/prompts/tools/read.md +63 -0
- package/src/prompts/tools/render-mermaid.md +9 -0
- package/src/prompts/tools/replace.md +36 -0
- package/src/prompts/tools/resolve.md +8 -0
- package/src/prompts/tools/rewind.md +13 -0
- package/src/prompts/tools/search-tool-bm25.md +34 -0
- package/src/prompts/tools/ssh.md +44 -0
- package/src/prompts/tools/task-summary.md +28 -0
- package/src/prompts/tools/task.md +131 -0
- package/src/prompts/tools/todo-write.md +89 -0
- package/src/prompts/tools/vim.md +98 -0
- package/src/prompts/tools/web-search.md +10 -0
- package/src/prompts/tools/write.md +14 -0
- package/src/prompts/tools/xcsh-api.md +283 -0
- package/src/resource-management/index.ts +42 -0
- package/src/sdk.ts +2123 -0
- package/src/secrets/index.ts +146 -0
- package/src/secrets/obfuscator.ts +290 -0
- package/src/secrets/regex.ts +21 -0
- package/src/services/context-env.ts +102 -0
- package/src/services/xcsh-api-client.ts +230 -0
- package/src/services/xcsh-context-command.ts +803 -0
- package/src/services/xcsh-context-display.ts +49 -0
- package/src/services/xcsh-context-indicators.ts +17 -0
- package/src/services/xcsh-context-segment.ts +39 -0
- package/src/services/xcsh-context.ts +1410 -0
- package/src/services/xcsh-env.ts +107 -0
- package/src/services/xcsh-knowledge.ts +177 -0
- package/src/services/xcsh-table.ts +164 -0
- package/src/session/agent-session.ts +6690 -0
- package/src/session/agent-storage.ts +451 -0
- package/src/session/artifacts.ts +132 -0
- package/src/session/auth-storage.ts +17 -0
- package/src/session/blob-store.ts +135 -0
- package/src/session/compaction/branch-summarization.ts +322 -0
- package/src/session/compaction/compaction.ts +1388 -0
- package/src/session/compaction/index.ts +7 -0
- package/src/session/compaction/pruning.ts +91 -0
- package/src/session/compaction/utils.ts +184 -0
- package/src/session/history-storage.ts +253 -0
- package/src/session/messages.ts +597 -0
- package/src/session/session-dump-format.ts +203 -0
- package/src/session/session-manager.ts +2816 -0
- package/src/session/session-storage.ts +370 -0
- package/src/session/streaming-output.ts +770 -0
- package/src/session/tool-choice-queue.ts +213 -0
- package/src/slash-commands/builtin-registry.ts +1614 -0
- package/src/slash-commands/export-command.ts +178 -0
- package/src/slash-commands/marketplace-install-parser.ts +99 -0
- package/src/slash-commands/resource-commands.ts +250 -0
- package/src/ssh/config-writer.ts +183 -0
- package/src/ssh/connection-manager.ts +445 -0
- package/src/ssh/ssh-executor.ts +131 -0
- package/src/ssh/sshfs-mount.ts +137 -0
- package/src/ssh/utils.ts +8 -0
- package/src/stt/downloader.ts +71 -0
- package/src/stt/index.ts +3 -0
- package/src/stt/recorder.ts +351 -0
- package/src/stt/setup.ts +52 -0
- package/src/stt/stt-controller.ts +160 -0
- package/src/stt/transcribe.py +70 -0
- package/src/stt/transcriber.ts +91 -0
- package/src/system-prompt.ts +688 -0
- package/src/task/agents.ts +166 -0
- package/src/task/commands.ts +131 -0
- package/src/task/discovery.ts +126 -0
- package/src/task/executor.ts +1324 -0
- package/src/task/index.ts +1197 -0
- package/src/task/isolation-backend.ts +72 -0
- package/src/task/name-generator.ts +1577 -0
- package/src/task/output-manager.ts +107 -0
- package/src/task/parallel.ts +116 -0
- package/src/task/render.ts +1035 -0
- package/src/task/subprocess-tool-registry.ts +88 -0
- package/src/task/template.ts +33 -0
- package/src/task/types.ts +230 -0
- package/src/task/worktree.ts +580 -0
- package/src/task/xcsh-command.ts +26 -0
- package/src/thinking.ts +87 -0
- package/src/tools/action-renderer.ts +198 -0
- package/src/tools/archive-reader.ts +315 -0
- package/src/tools/ask.ts +791 -0
- package/src/tools/ast-edit.ts +492 -0
- package/src/tools/ast-grep.ts +453 -0
- package/src/tools/auto-generated-guard.ts +305 -0
- package/src/tools/bash-interactive.ts +383 -0
- package/src/tools/bash-interceptor.ts +67 -0
- package/src/tools/bash-normalize.ts +107 -0
- package/src/tools/bash-skill-urls.ts +246 -0
- package/src/tools/bash.ts +878 -0
- package/src/tools/browser-renderer.ts +129 -0
- package/src/tools/browser.ts +1366 -0
- package/src/tools/calculator.ts +543 -0
- package/src/tools/cancel-job.ts +100 -0
- package/src/tools/catalog-workflow-runner.ts +718 -0
- package/src/tools/checkpoint.ts +133 -0
- package/src/tools/context.ts +39 -0
- package/src/tools/debug.ts +1004 -0
- package/src/tools/display-image-renderer.ts +96 -0
- package/src/tools/display-image.ts +109 -0
- package/src/tools/exit-plan-mode.ts +101 -0
- package/src/tools/fetch.ts +1462 -0
- package/src/tools/find.ts +437 -0
- package/src/tools/fs-cache-invalidation.ts +33 -0
- package/src/tools/gemini-image.ts +1004 -0
- package/src/tools/grep.ts +705 -0
- package/src/tools/index.ts +442 -0
- package/src/tools/inspect-image-renderer.ts +101 -0
- package/src/tools/inspect-image.ts +176 -0
- package/src/tools/json-tree.ts +266 -0
- package/src/tools/jtd-to-json-schema.ts +199 -0
- package/src/tools/jtd-to-typescript.ts +136 -0
- package/src/tools/jtd-utils.ts +102 -0
- package/src/tools/list-limit.ts +40 -0
- package/src/tools/mermaid-renderer.ts +127 -0
- package/src/tools/notebook.ts +288 -0
- package/src/tools/output-meta.ts +588 -0
- package/src/tools/path-utils.ts +560 -0
- package/src/tools/plan-mode-guard.ts +41 -0
- package/src/tools/poll-tool.ts +177 -0
- package/src/tools/puppeteer/00_stealth_tampering.txt +63 -0
- package/src/tools/puppeteer/01_stealth_activity.txt +20 -0
- package/src/tools/puppeteer/02_stealth_hairline.txt +11 -0
- package/src/tools/puppeteer/03_stealth_botd.txt +384 -0
- package/src/tools/puppeteer/04_stealth_iframe.txt +81 -0
- package/src/tools/puppeteer/05_stealth_webgl.txt +75 -0
- package/src/tools/puppeteer/06_stealth_screen.txt +72 -0
- package/src/tools/puppeteer/07_stealth_fonts.txt +97 -0
- package/src/tools/puppeteer/08_stealth_audio.txt +51 -0
- package/src/tools/puppeteer/09_stealth_locale.txt +46 -0
- package/src/tools/puppeteer/10_stealth_plugins.txt +206 -0
- package/src/tools/puppeteer/11_stealth_hardware.txt +8 -0
- package/src/tools/puppeteer/12_stealth_codecs.txt +40 -0
- package/src/tools/puppeteer/13_stealth_worker.txt +74 -0
- package/src/tools/python.ts +1184 -0
- package/src/tools/read.ts +1591 -0
- package/src/tools/render-mermaid.ts +93 -0
- package/src/tools/render-utils.ts +677 -0
- package/src/tools/renderers.ts +82 -0
- package/src/tools/report-tool-issue.ts +80 -0
- package/src/tools/resolve.ts +196 -0
- package/src/tools/review.ts +238 -0
- package/src/tools/search-tool-bm25.ts +288 -0
- package/src/tools/sqlite-reader.ts +623 -0
- package/src/tools/ssh.ts +322 -0
- package/src/tools/submit-result.ts +229 -0
- package/src/tools/todo-render.ts +33 -0
- package/src/tools/todo-write.ts +440 -0
- package/src/tools/tool-errors.ts +62 -0
- package/src/tools/tool-result.ts +93 -0
- package/src/tools/tool-timeouts.ts +30 -0
- package/src/tools/vim.ts +981 -0
- package/src/tools/write.ts +671 -0
- package/src/tools/xcsh-api-renderer.ts +402 -0
- package/src/tools/xcsh-api.ts +887 -0
- package/src/tui/code-cell.ts +101 -0
- package/src/tui/file-list.ts +47 -0
- package/src/tui/index.ts +11 -0
- package/src/tui/output-block.ts +175 -0
- package/src/tui/status-line.ts +39 -0
- package/src/tui/tree-list.ts +84 -0
- package/src/tui/types.ts +15 -0
- package/src/tui/utils.ts +103 -0
- package/src/utils/changelog.ts +98 -0
- package/src/utils/clipboard.ts +80 -0
- package/src/utils/command-args.ts +76 -0
- package/src/utils/commit-message-generator.ts +137 -0
- package/src/utils/edit-mode.ts +50 -0
- package/src/utils/event-bus.ts +33 -0
- package/src/utils/external-editor.ts +65 -0
- package/src/utils/file-display-mode.ts +37 -0
- package/src/utils/file-mentions.ts +376 -0
- package/src/utils/fuzzy.ts +108 -0
- package/src/utils/git.ts +1495 -0
- package/src/utils/gitstatus.ts +140 -0
- package/src/utils/image-convert.ts +27 -0
- package/src/utils/image-loading.ts +98 -0
- package/src/utils/image-passthrough.ts +118 -0
- package/src/utils/image-resize.ts +272 -0
- package/src/utils/image-viewer.ts +17 -0
- package/src/utils/lang-from-path.ts +239 -0
- package/src/utils/markit.ts +81 -0
- package/src/utils/open.ts +20 -0
- package/src/utils/session-color.ts +55 -0
- package/src/utils/shell-snapshot.ts +188 -0
- package/src/utils/title-generator.ts +193 -0
- package/src/utils/tool-choice.ts +28 -0
- package/src/utils/tools-manager.ts +356 -0
- package/src/vim/buffer.ts +309 -0
- package/src/vim/commands.ts +382 -0
- package/src/vim/engine.ts +2426 -0
- package/src/vim/parser.ts +151 -0
- package/src/vim/render.ts +252 -0
- package/src/vim/types.ts +197 -0
- package/src/web/kagi.ts +174 -0
- package/src/web/parallel.ts +346 -0
- package/src/web/scrapers/artifacthub.ts +207 -0
- package/src/web/scrapers/arxiv.ts +83 -0
- package/src/web/scrapers/aur.ts +162 -0
- package/src/web/scrapers/biorxiv.ts +133 -0
- package/src/web/scrapers/bluesky.ts +262 -0
- package/src/web/scrapers/brew.ts +172 -0
- package/src/web/scrapers/cheatsh.ts +68 -0
- package/src/web/scrapers/chocolatey.ts +196 -0
- package/src/web/scrapers/choosealicense.ts +95 -0
- package/src/web/scrapers/cisa-kev.ts +87 -0
- package/src/web/scrapers/clojars.ts +154 -0
- package/src/web/scrapers/coingecko.ts +177 -0
- package/src/web/scrapers/crates-io.ts +110 -0
- package/src/web/scrapers/crossref.ts +136 -0
- package/src/web/scrapers/devto.ts +147 -0
- package/src/web/scrapers/discogs.ts +306 -0
- package/src/web/scrapers/discourse.ts +197 -0
- package/src/web/scrapers/dockerhub.ts +138 -0
- package/src/web/scrapers/docs-rs.ts +653 -0
- package/src/web/scrapers/fdroid.ts +134 -0
- package/src/web/scrapers/firefox-addons.ts +191 -0
- package/src/web/scrapers/flathub.ts +223 -0
- package/src/web/scrapers/github-gist.ts +58 -0
- package/src/web/scrapers/github.ts +452 -0
- package/src/web/scrapers/gitlab.ts +401 -0
- package/src/web/scrapers/go-pkg.ts +266 -0
- package/src/web/scrapers/hackage.ts +140 -0
- package/src/web/scrapers/hackernews.ts +189 -0
- package/src/web/scrapers/hex.ts +105 -0
- package/src/web/scrapers/huggingface.ts +321 -0
- package/src/web/scrapers/iacr.ts +89 -0
- package/src/web/scrapers/index.ts +252 -0
- package/src/web/scrapers/jetbrains-marketplace.ts +159 -0
- package/src/web/scrapers/lemmy.ts +203 -0
- package/src/web/scrapers/lobsters.ts +175 -0
- package/src/web/scrapers/mastodon.ts +292 -0
- package/src/web/scrapers/maven.ts +138 -0
- package/src/web/scrapers/mdn.ts +169 -0
- package/src/web/scrapers/metacpan.ts +222 -0
- package/src/web/scrapers/musicbrainz.ts +250 -0
- package/src/web/scrapers/npm.ts +98 -0
- package/src/web/scrapers/nuget.ts +183 -0
- package/src/web/scrapers/nvd.ts +222 -0
- package/src/web/scrapers/ollama.ts +239 -0
- package/src/web/scrapers/open-vsx.ts +106 -0
- package/src/web/scrapers/opencorporates.ts +292 -0
- package/src/web/scrapers/openlibrary.ts +336 -0
- package/src/web/scrapers/orcid.ts +286 -0
- package/src/web/scrapers/osv.ts +176 -0
- package/src/web/scrapers/packagist.ts +160 -0
- package/src/web/scrapers/pub-dev.ts +143 -0
- package/src/web/scrapers/pubmed.ts +211 -0
- package/src/web/scrapers/pypi.ts +112 -0
- package/src/web/scrapers/rawg.ts +110 -0
- package/src/web/scrapers/readthedocs.ts +120 -0
- package/src/web/scrapers/reddit.ts +95 -0
- package/src/web/scrapers/repology.ts +251 -0
- package/src/web/scrapers/rfc.ts +201 -0
- package/src/web/scrapers/rubygems.ts +103 -0
- package/src/web/scrapers/searchcode.ts +190 -0
- package/src/web/scrapers/sec-edgar.ts +261 -0
- package/src/web/scrapers/semantic-scholar.ts +171 -0
- package/src/web/scrapers/snapcraft.ts +187 -0
- package/src/web/scrapers/sourcegraph.ts +336 -0
- package/src/web/scrapers/spdx.ts +108 -0
- package/src/web/scrapers/spotify.ts +198 -0
- package/src/web/scrapers/stackoverflow.ts +120 -0
- package/src/web/scrapers/terraform.ts +277 -0
- package/src/web/scrapers/tldr.ts +47 -0
- package/src/web/scrapers/twitter.ts +93 -0
- package/src/web/scrapers/types.ts +267 -0
- package/src/web/scrapers/utils.ts +109 -0
- package/src/web/scrapers/vimeo.ts +133 -0
- package/src/web/scrapers/vscode-marketplace.ts +187 -0
- package/src/web/scrapers/w3c.ts +156 -0
- package/src/web/scrapers/wikidata.ts +344 -0
- package/src/web/scrapers/wikipedia.ts +84 -0
- package/src/web/scrapers/youtube.ts +313 -0
- package/src/web/search/errors.ts +120 -0
- package/src/web/search/index.ts +346 -0
- package/src/web/search/params.ts +129 -0
- package/src/web/search/provider.ts +97 -0
- package/src/web/search/providers/anthropic.ts +339 -0
- package/src/web/search/providers/base.ts +35 -0
- package/src/web/search/providers/brave.ts +150 -0
- package/src/web/search/providers/codex.ts +402 -0
- package/src/web/search/providers/exa.ts +264 -0
- package/src/web/search/providers/firecrawl.ts +115 -0
- package/src/web/search/providers/gemini.ts +566 -0
- package/src/web/search/providers/jina.ts +99 -0
- package/src/web/search/providers/kagi.ts +70 -0
- package/src/web/search/providers/kimi.ts +157 -0
- package/src/web/search/providers/parallel.ts +63 -0
- package/src/web/search/providers/perplexity.ts +546 -0
- package/src/web/search/providers/synthetic.ts +113 -0
- package/src/web/search/providers/tavily.ts +162 -0
- package/src/web/search/providers/utils.ts +36 -0
- package/src/web/search/providers/zai.ts +311 -0
- package/src/web/search/render.ts +348 -0
- package/src/web/search/types.ts +438 -0
- package/src/web/search/utils.ts +17 -0
|
@@ -0,0 +1,1852 @@
|
|
|
1
|
+
// AUTO-GENERATED — do not edit. Run `bun generate-terraform-index` to regenerate.
|
|
2
|
+
|
|
3
|
+
import type { TerraformIndex } from "./terraform-types";
|
|
4
|
+
|
|
5
|
+
export const TERRAFORM_INDEX: TerraformIndex = {
|
|
6
|
+
version: "0.1.0",
|
|
7
|
+
provider: {
|
|
8
|
+
source: "f5xc-salesdemos/f5xc",
|
|
9
|
+
registry: "https://registry.terraform.io/providers/f5xc-salesdemos/f5xc",
|
|
10
|
+
required_block:
|
|
11
|
+
'terraform {\n required_providers {\n xcsh = {\n source = "f5xc-salesdemos/xcsh"\n }\n }\n}',
|
|
12
|
+
config_block: 'provider "xcsh" {}',
|
|
13
|
+
auth_methods: [
|
|
14
|
+
'REQUIRED: every .tf must contain a `provider "xcsh" {}` block. Without it Terraform errors: "Provider requires explicit configuration. Add a provider block".',
|
|
15
|
+
"Configure exactly ONE auth method, via environment variables (preferred) or explicit arguments in the provider block:",
|
|
16
|
+
"api_token (env XCSH_API_TOKEN) — API token authentication.",
|
|
17
|
+
"api_p12_file + p12_password (env XCSH_P12_FILE + XCSH_P12_PASSWORD) — PKCS#12 certificate authentication.",
|
|
18
|
+
"api_cert + api_key (env XCSH_CERT + XCSH_KEY) — PEM certificate authentication.",
|
|
19
|
+
"api_url (env XCSH_API_URL) — tenant base URL without /api suffix, e.g. https://your-tenant.console.ves.volterra.io.",
|
|
20
|
+
],
|
|
21
|
+
syntax_rules: [
|
|
22
|
+
"OneOf selectors: use empty block `field {}`, never `field = true`",
|
|
23
|
+
"Cross-resource refs: block with name + namespace attributes",
|
|
24
|
+
"Boolean attributes: use `= true` / `= false`",
|
|
25
|
+
'Fields marked "Server applies default when omitted" can be safely omitted',
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
categories: [
|
|
29
|
+
{
|
|
30
|
+
name: "Security",
|
|
31
|
+
slug: "security",
|
|
32
|
+
description: "WAF, bot defense, rate limiting, firewall policies, and security controls",
|
|
33
|
+
resource_count: 26,
|
|
34
|
+
resources: [
|
|
35
|
+
"app_firewall",
|
|
36
|
+
"alert_policy",
|
|
37
|
+
"bgp_routing_policy",
|
|
38
|
+
"bot_defense_app_infrastructure",
|
|
39
|
+
"data_type",
|
|
40
|
+
"enhanced_firewall_policy",
|
|
41
|
+
"fast_acl",
|
|
42
|
+
"fast_acl_rule",
|
|
43
|
+
"forward_proxy_policy",
|
|
44
|
+
"k8s_pod_security_policy",
|
|
45
|
+
"malicious_user_mitigation",
|
|
46
|
+
"nat_policy",
|
|
47
|
+
"network_firewall",
|
|
48
|
+
"network_policy",
|
|
49
|
+
"network_policy_rule",
|
|
50
|
+
"network_policy_view",
|
|
51
|
+
"protocol_inspection",
|
|
52
|
+
"protocol_policer",
|
|
53
|
+
"rate_limiter",
|
|
54
|
+
"rate_limiter_policy",
|
|
55
|
+
"sensitive_data_policy",
|
|
56
|
+
"service_policy",
|
|
57
|
+
"service_policy_rule",
|
|
58
|
+
"usb_policy",
|
|
59
|
+
"user_identification",
|
|
60
|
+
"waf_exclusion_policy",
|
|
61
|
+
],
|
|
62
|
+
dependency_chain: "namespace → app_firewall → http_loadbalancer",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: "Networking",
|
|
66
|
+
slug: "networking",
|
|
67
|
+
description: "Virtual networks, BGP, cloud connectivity, tunnels, and network interfaces",
|
|
68
|
+
resource_count: 19,
|
|
69
|
+
resources: [
|
|
70
|
+
"bgp",
|
|
71
|
+
"bgp_asn_set",
|
|
72
|
+
"cloud_connect",
|
|
73
|
+
"cloud_link",
|
|
74
|
+
"dc_cluster_group",
|
|
75
|
+
"external_connector",
|
|
76
|
+
"forwarding_class",
|
|
77
|
+
"ip_prefix_set",
|
|
78
|
+
"network_connector",
|
|
79
|
+
"network_interface",
|
|
80
|
+
"nfv_service",
|
|
81
|
+
"nginx_service_discovery",
|
|
82
|
+
"policy_based_routing",
|
|
83
|
+
"proxy",
|
|
84
|
+
"segment",
|
|
85
|
+
"srv6_network_slice",
|
|
86
|
+
"subnet",
|
|
87
|
+
"tunnel",
|
|
88
|
+
"virtual_network",
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: "Load Balancing",
|
|
93
|
+
slug: "load-balancing",
|
|
94
|
+
description: "HTTP/TCP/UDP/CDN load balancers, origin pools, health checks, and routing",
|
|
95
|
+
resource_count: 13,
|
|
96
|
+
resources: [
|
|
97
|
+
"healthcheck",
|
|
98
|
+
"http_loadbalancer",
|
|
99
|
+
"origin_pool",
|
|
100
|
+
"advertise_policy",
|
|
101
|
+
"cdn_cache_rule",
|
|
102
|
+
"cdn_loadbalancer",
|
|
103
|
+
"cdn_purge_command",
|
|
104
|
+
"cluster",
|
|
105
|
+
"endpoint",
|
|
106
|
+
"route",
|
|
107
|
+
"tcp_loadbalancer",
|
|
108
|
+
"udp_loadbalancer",
|
|
109
|
+
"virtual_host",
|
|
110
|
+
],
|
|
111
|
+
dependency_chain:
|
|
112
|
+
"namespace → healthcheck → origin_pool → http_loadbalancer\nnamespace → origin_pool → tcp_loadbalancer",
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: "Sites",
|
|
116
|
+
slug: "sites",
|
|
117
|
+
description: "AWS/Azure/GCP VPC sites, SecureMesh, VoltStack, and site mesh groups",
|
|
118
|
+
resource_count: 11,
|
|
119
|
+
resources: [
|
|
120
|
+
"aws_tgw_site",
|
|
121
|
+
"aws_vpc_site",
|
|
122
|
+
"azure_vnet_site",
|
|
123
|
+
"fleet",
|
|
124
|
+
"gcp_vpc_site",
|
|
125
|
+
"securemesh_site",
|
|
126
|
+
"securemesh_site_v2",
|
|
127
|
+
"site",
|
|
128
|
+
"site_mesh_group",
|
|
129
|
+
"virtual_site",
|
|
130
|
+
"voltstack_site",
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: "Kubernetes",
|
|
135
|
+
slug: "kubernetes",
|
|
136
|
+
description: "Container registries, workloads, and Kubernetes integrations",
|
|
137
|
+
resource_count: 8,
|
|
138
|
+
resources: [
|
|
139
|
+
"container_registry",
|
|
140
|
+
"k8s_cluster",
|
|
141
|
+
"k8s_cluster_role",
|
|
142
|
+
"k8s_cluster_role_binding",
|
|
143
|
+
"k8s_pod_security_admission",
|
|
144
|
+
"virtual_k8s",
|
|
145
|
+
"workload",
|
|
146
|
+
"workload_flavor",
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: "API Security",
|
|
151
|
+
slug: "api-security",
|
|
152
|
+
description: "API definition, discovery, testing, and security controls for web APIs",
|
|
153
|
+
resource_count: 5,
|
|
154
|
+
resources: ["api_crawler", "api_definition", "api_discovery", "api_testing", "app_api_group"],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: "Applications",
|
|
158
|
+
slug: "applications",
|
|
159
|
+
description: "Application settings, types, discovery, and filtering",
|
|
160
|
+
resource_count: 4,
|
|
161
|
+
resources: ["app_setting", "app_type", "discovery", "filter_set"],
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: "Certificates",
|
|
165
|
+
slug: "certificates",
|
|
166
|
+
description: "TLS certificates, certificate chains, CRLs, and trusted CA lists",
|
|
167
|
+
resource_count: 4,
|
|
168
|
+
resources: ["certificate", "certificate_chain", "crl", "trusted_ca_list"],
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: "Monitoring",
|
|
172
|
+
slug: "monitoring",
|
|
173
|
+
description: "Log receivers, alert policies, APM, and global logging configuration",
|
|
174
|
+
resource_count: 4,
|
|
175
|
+
resources: ["alert_receiver", "apm", "global_log_receiver", "log_receiver"],
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
name: "VPN",
|
|
179
|
+
slug: "vpn",
|
|
180
|
+
description: "VPN and IPSec configuration",
|
|
181
|
+
resource_count: 4,
|
|
182
|
+
resources: ["ike1", "ike2", "ike_phase1_profile", "ike_phase2_profile"],
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
name: "Authentication",
|
|
186
|
+
slug: "authentication",
|
|
187
|
+
description: "Authentication methods, cloud credentials, and secret management",
|
|
188
|
+
resource_count: 3,
|
|
189
|
+
resources: ["authentication", "cloud_credentials", "secret_management_access"],
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
name: "BIG-IP Integration",
|
|
193
|
+
slug: "big-ip-integration",
|
|
194
|
+
description: "BIG-IP proxy, data groups, and iRules integration",
|
|
195
|
+
resource_count: 3,
|
|
196
|
+
resources: ["bigip_http_proxy", "data_group", "irule"],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
name: "DNS",
|
|
200
|
+
slug: "dns",
|
|
201
|
+
description: "DNS domains, zones, compliance checks, and DNS proxy configuration",
|
|
202
|
+
resource_count: 3,
|
|
203
|
+
resources: ["dns_compliance_checks", "dns_domain", "dns_proxy"],
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: "Cloud Resources",
|
|
207
|
+
slug: "cloud-resources",
|
|
208
|
+
description: "Cloud elastic IPs, address allocators, and geo-location resources",
|
|
209
|
+
resource_count: 2,
|
|
210
|
+
resources: ["address_allocator", "cloud_elastic_ip"],
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: "Organization",
|
|
214
|
+
slug: "organization",
|
|
215
|
+
description: "Namespaces, tenant configuration, and organizational settings",
|
|
216
|
+
resource_count: 2,
|
|
217
|
+
resources: ["namespace", "tenant_configuration"],
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
name: "Uncategorized",
|
|
221
|
+
slug: "uncategorized",
|
|
222
|
+
description: "Resources pending categorization",
|
|
223
|
+
resource_count: 2,
|
|
224
|
+
resources: ["application_profiles", "authorization_server"],
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: "Integrations",
|
|
228
|
+
slug: "integrations",
|
|
229
|
+
description: "External integrations including code base and ticket tracking",
|
|
230
|
+
resource_count: 1,
|
|
231
|
+
resources: ["code_base_integration"],
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
name: "Service Mesh",
|
|
235
|
+
slug: "service-mesh",
|
|
236
|
+
description: "Service mesh policies and traffic management",
|
|
237
|
+
resource_count: 1,
|
|
238
|
+
resources: ["policer"],
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
name: "Subscriptions",
|
|
242
|
+
slug: "subscriptions",
|
|
243
|
+
description: "Cloud subscription management and metering",
|
|
244
|
+
resource_count: 1,
|
|
245
|
+
resources: ["cminstance"],
|
|
246
|
+
},
|
|
247
|
+
],
|
|
248
|
+
resources: {
|
|
249
|
+
address_allocator: {
|
|
250
|
+
category: "cloud-resources",
|
|
251
|
+
description: "Address Allocator will create an address allocator object in 'system' namespace of the user",
|
|
252
|
+
required: ["name", "namespace", "mode"],
|
|
253
|
+
minimal_config:
|
|
254
|
+
'resource "xcsh_address_allocator" "example" {\n name = "example-address-allocator"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n address_allocation_scheme {\n }\n}',
|
|
255
|
+
dependencies: {
|
|
256
|
+
requires: [],
|
|
257
|
+
},
|
|
258
|
+
import_syntax: "terraform import xcsh_address_allocator.example namespace/name",
|
|
259
|
+
},
|
|
260
|
+
advertise_policy: {
|
|
261
|
+
category: "load-balancing",
|
|
262
|
+
description:
|
|
263
|
+
"Advertise_policy object controls how and where a service represented by a given virtual_host object is advertised to consumers. configuration",
|
|
264
|
+
required: ["name", "namespace", "address", "protocol", "skip_xff_append"],
|
|
265
|
+
minimal_config:
|
|
266
|
+
'resource "xcsh_advertise_policy" "example" {\n name = "example-advertise-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n public_ip {\n }\n tls_parameters {\n }\n client_certificate_optional {\n }\n}',
|
|
267
|
+
dependencies: {
|
|
268
|
+
requires: [],
|
|
269
|
+
},
|
|
270
|
+
import_syntax: "terraform import xcsh_advertise_policy.example namespace/name",
|
|
271
|
+
},
|
|
272
|
+
alert_policy: {
|
|
273
|
+
category: "security",
|
|
274
|
+
description: "New Alert Policy Object",
|
|
275
|
+
required: ["name", "namespace"],
|
|
276
|
+
minimal_config:
|
|
277
|
+
'resource "xcsh_alert_policy" "example" {\n name = "example-alert-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n receivers {\n name = "slack-receiver"\n namespace = "staging"\n }\n\n routes {\n any {}\n send {}\n }\n\n notification_parameters {\n default {}\n group_wait = "30s"\n group_interval = "1m"\n }\n}',
|
|
278
|
+
dependencies: {
|
|
279
|
+
requires: [],
|
|
280
|
+
},
|
|
281
|
+
import_syntax: "terraform import xcsh_alert_policy.example namespace/name",
|
|
282
|
+
},
|
|
283
|
+
alert_receiver: {
|
|
284
|
+
category: "monitoring",
|
|
285
|
+
description: "New Alert Receiver object",
|
|
286
|
+
required: ["name", "namespace"],
|
|
287
|
+
minimal_config:
|
|
288
|
+
'resource "xcsh_alert_receiver" "example" {\n name = "example-alert-receiver"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n slack {\n url = "`https://your-slack-webhook-url"`\n }\n}',
|
|
289
|
+
dependencies: {
|
|
290
|
+
requires: [],
|
|
291
|
+
},
|
|
292
|
+
import_syntax: "terraform import xcsh_alert_receiver.example namespace/name",
|
|
293
|
+
},
|
|
294
|
+
api_crawler: {
|
|
295
|
+
category: "api-security",
|
|
296
|
+
description: "API Crawler resource",
|
|
297
|
+
required: ["name", "namespace"],
|
|
298
|
+
minimal_config:
|
|
299
|
+
'resource "xcsh_api_crawler" "example" {\n name = "example-api-crawler"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n domains {\n }\n simple_login {\n }\n password {\n }\n}',
|
|
300
|
+
dependencies: {
|
|
301
|
+
requires: [],
|
|
302
|
+
},
|
|
303
|
+
import_syntax: "terraform import xcsh_api_crawler.example namespace/name",
|
|
304
|
+
},
|
|
305
|
+
api_definition: {
|
|
306
|
+
category: "api-security",
|
|
307
|
+
description: "API Definition",
|
|
308
|
+
required: ["name", "namespace"],
|
|
309
|
+
server_defaults: [
|
|
310
|
+
"swagger_specs",
|
|
311
|
+
"api_inventory_exclusion_list",
|
|
312
|
+
"api_inventory_inclusion_list",
|
|
313
|
+
"non_api_endpoints",
|
|
314
|
+
"strict_schema_origin",
|
|
315
|
+
],
|
|
316
|
+
minimal_config:
|
|
317
|
+
'resource "xcsh_api_definition" "example" {\n name = "example-api-definition"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n swagger_specs = ["string:///base64-openapi-spec"]\n\n non_validation_mode {}\n}',
|
|
318
|
+
dependencies: {
|
|
319
|
+
requires: ["namespace"],
|
|
320
|
+
},
|
|
321
|
+
import_syntax: "terraform import xcsh_api_definition.example namespace/name",
|
|
322
|
+
},
|
|
323
|
+
api_discovery: {
|
|
324
|
+
category: "api-security",
|
|
325
|
+
description: "API discovery creates a new object in the storage backend for metadata.namespace",
|
|
326
|
+
required: ["name", "namespace"],
|
|
327
|
+
server_defaults: ["custom_auth_types"],
|
|
328
|
+
minimal_config:
|
|
329
|
+
'resource "xcsh_api_discovery" "example" {\n name = "example-api-discovery"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n custom_auth_types {\n }\n}',
|
|
330
|
+
dependencies: {
|
|
331
|
+
requires: [],
|
|
332
|
+
},
|
|
333
|
+
import_syntax: "terraform import xcsh_api_discovery.example namespace/name",
|
|
334
|
+
},
|
|
335
|
+
api_testing: {
|
|
336
|
+
category: "api-security",
|
|
337
|
+
description: "API Testing resource",
|
|
338
|
+
required: ["name", "namespace", "custom_header_value"],
|
|
339
|
+
minimal_config:
|
|
340
|
+
'resource "xcsh_api_testing" "example" {\n name = "example-api-testing"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n domains {\n }\n credentials {\n }\n admin {\n }\n}',
|
|
341
|
+
dependencies: {
|
|
342
|
+
requires: [],
|
|
343
|
+
},
|
|
344
|
+
import_syntax: "terraform import xcsh_api_testing.example namespace/name",
|
|
345
|
+
},
|
|
346
|
+
apm: {
|
|
347
|
+
category: "monitoring",
|
|
348
|
+
description: "New APM as a service with configured parameters",
|
|
349
|
+
required: ["name", "namespace"],
|
|
350
|
+
minimal_config:
|
|
351
|
+
'resource "xcsh_apm" "example" {\n name = "example-apm"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n aws_site_type_choice {\n }\n apm_aws_site {\n }\n admin_password {\n }\n}',
|
|
352
|
+
dependencies: {
|
|
353
|
+
requires: [],
|
|
354
|
+
},
|
|
355
|
+
import_syntax: "terraform import xcsh_apm.example namespace/name",
|
|
356
|
+
},
|
|
357
|
+
app_api_group: {
|
|
358
|
+
category: "api-security",
|
|
359
|
+
description: "App_api_group creates a new object in the storage backend for metadata.namespace",
|
|
360
|
+
required: ["name", "namespace"],
|
|
361
|
+
minimal_config:
|
|
362
|
+
'resource "xcsh_app_api_group" "example" {\n name = "example-app-api-group"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n elements {\n }\n bigip_virtual_server {\n }\n cdn_loadbalancer {\n }\n}',
|
|
363
|
+
dependencies: {
|
|
364
|
+
requires: [],
|
|
365
|
+
},
|
|
366
|
+
import_syntax: "terraform import xcsh_app_api_group.example namespace/name",
|
|
367
|
+
},
|
|
368
|
+
app_firewall: {
|
|
369
|
+
category: "security",
|
|
370
|
+
description: "Application Firewall",
|
|
371
|
+
required: ["name", "namespace"],
|
|
372
|
+
oneof_groups: [
|
|
373
|
+
{
|
|
374
|
+
fields: ["blocking", "monitoring"],
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
fields: ["blocking_page", "use_default_blocking_page"],
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
fields: ["bot_protection_setting", "default_bot_setting"],
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
fields: ["ai_risk_based_blocking", "default_detection_settings", "detection_settings"],
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
fields: ["allow_all_response_codes", "allowed_response_codes"],
|
|
387
|
+
},
|
|
388
|
+
],
|
|
389
|
+
server_defaults: [
|
|
390
|
+
"allow_all_response_codes",
|
|
391
|
+
"default_anonymization",
|
|
392
|
+
"default_detection_settings",
|
|
393
|
+
"disable_ai_enhancements",
|
|
394
|
+
"monitoring",
|
|
395
|
+
"use_default_blocking_page",
|
|
396
|
+
],
|
|
397
|
+
minimal_config:
|
|
398
|
+
'resource "xcsh_app_firewall" "example" {\n name = "example-app-firewall"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n // One of the arguments from this list "blocking monitoring" must be set\n\n blocking {}\n\n // One of the arguments from this list "blocking_page use_default_blocking_page" must be set\n\n use_default_blocking_page {}\n\n // One of the arguments from this list "bot_protection_setting default_bot_setting" must be set\n\n bot_protection_setting {\n malicious_bot_action = "BLOCK"\n suspicious_bot_action = "REPORT"\n good_bot_action = "REPORT"\n }\n\n // One of the arguments from this list "ai_risk_based_blocking default_detection_settings detection_settings" must be set\n\n default_detection_settings {}\n\n // One of the arguments from this list "allow_all_response_codes allowed_response_codes" must be set\n\n allow_all_response_codes {}\n}',
|
|
399
|
+
dependencies: {
|
|
400
|
+
requires: ["namespace"],
|
|
401
|
+
},
|
|
402
|
+
import_syntax: "terraform import xcsh_app_firewall.example namespace/name",
|
|
403
|
+
},
|
|
404
|
+
app_setting: {
|
|
405
|
+
category: "applications",
|
|
406
|
+
description: "App setting configuration in namespace metadata.namespace",
|
|
407
|
+
required: ["name", "namespace"],
|
|
408
|
+
minimal_config:
|
|
409
|
+
'resource "xcsh_app_setting" "example" {\n name = "example-app-setting"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n app_type_settings {\n }\n app_type_ref {\n }\n business_logic_markup_setting {\n }\n}',
|
|
410
|
+
dependencies: {
|
|
411
|
+
requires: [],
|
|
412
|
+
},
|
|
413
|
+
import_syntax: "terraform import xcsh_app_setting.example namespace/name",
|
|
414
|
+
},
|
|
415
|
+
app_type: {
|
|
416
|
+
category: "applications",
|
|
417
|
+
description: "App type will create the configuration in namespace metadata.namespace",
|
|
418
|
+
required: ["name", "namespace"],
|
|
419
|
+
minimal_config:
|
|
420
|
+
'resource "xcsh_app_type" "example" {\n name = "example-app-type"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n business_logic_markup_setting {\n }\n disable_spec {\n }\n discovered_api_settings {\n }\n}',
|
|
421
|
+
dependencies: {
|
|
422
|
+
requires: [],
|
|
423
|
+
},
|
|
424
|
+
import_syntax: "terraform import xcsh_app_type.example namespace/name",
|
|
425
|
+
},
|
|
426
|
+
application_profiles: {
|
|
427
|
+
category: "uncategorized",
|
|
428
|
+
description: "Application Profiles in a given namespace. If one already exists it will give an error",
|
|
429
|
+
required: ["name", "namespace"],
|
|
430
|
+
minimal_config:
|
|
431
|
+
'resource "xcsh_application_profiles" "example" {\n name = "example-application-profiles"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n advanced_tcp_profile {\n }\n disable_tcp_advanced_profile {\n }\n enable_tcp_advanced_profile {\n }\n}',
|
|
432
|
+
dependencies: {
|
|
433
|
+
requires: [],
|
|
434
|
+
},
|
|
435
|
+
import_syntax: "terraform import xcsh_application_profiles.example namespace/name",
|
|
436
|
+
},
|
|
437
|
+
authentication: {
|
|
438
|
+
category: "authentication",
|
|
439
|
+
description: "Authentication resource",
|
|
440
|
+
required: ["name", "namespace"],
|
|
441
|
+
minimal_config:
|
|
442
|
+
'resource "xcsh_authentication" "example" {\n name = "example-authentication"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n cookie_params {\n }\n auth_hmac {\n }\n prim_key {\n }\n}',
|
|
443
|
+
dependencies: {
|
|
444
|
+
requires: [],
|
|
445
|
+
},
|
|
446
|
+
import_syntax: "terraform import xcsh_authentication.example namespace/name",
|
|
447
|
+
},
|
|
448
|
+
authorization_server: {
|
|
449
|
+
category: "uncategorized",
|
|
450
|
+
description: "Authorization_server creates a new object in the storage backend for metadata.namespace",
|
|
451
|
+
required: ["name", "namespace", "jwks_uri"],
|
|
452
|
+
minimal_config:
|
|
453
|
+
'resource "xcsh_authorization_server" "example" {\n name = "example-authorization-server"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n}',
|
|
454
|
+
dependencies: {
|
|
455
|
+
requires: [],
|
|
456
|
+
},
|
|
457
|
+
import_syntax: "terraform import xcsh_authorization_server.example namespace/name",
|
|
458
|
+
},
|
|
459
|
+
aws_tgw_site: {
|
|
460
|
+
category: "sites",
|
|
461
|
+
description: "Deploying F5 sites connected via AWS Transit Gateway",
|
|
462
|
+
required: ["name", "namespace"],
|
|
463
|
+
minimal_config:
|
|
464
|
+
'resource "xcsh_aws_tgw_site" "example" {\n name = "example-aws-tgw-site"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n aws_region = "us-west-2"\n\n aws_cred {\n name = "aws-credentials"\n namespace = "staging"\n }\n\n vpc {\n new_vpc {\n name_tag = "xcsh-tgw-vpc"\n primary_ipv4 = "10.0.0.0/16"\n }\n }\n\n tgw {\n new_tgw {\n name = "xcsh-tgw"\n }\n }\n\n instance_type = "t3.xlarge"\n\n services_vpc {\n aws_certified_hw = "aws-byol-voltmesh"\n az_nodes {\n aws_az_name = "us-west-2a"\n inside_subnet {\n subnet_param {\n ipv4 = "10.0.1.0/24"\n }\n }\n outside_subnet {\n subnet_param {\n ipv4 = "10.0.2.0/24"\n }\n }\n workload_subnet {\n subnet_param {\n ipv4 = "10.0.3.0/24"\n }\n }\n }\n }\n\n no_worker_nodes {}\n}',
|
|
465
|
+
dependencies: {
|
|
466
|
+
requires: [],
|
|
467
|
+
},
|
|
468
|
+
import_syntax: "terraform import xcsh_aws_tgw_site.example namespace/name",
|
|
469
|
+
},
|
|
470
|
+
aws_vpc_site: {
|
|
471
|
+
category: "sites",
|
|
472
|
+
description: "Deploying F5 sites within AWS VPC environments",
|
|
473
|
+
required: ["name", "namespace", "address", "aws_region", "disk_size", "instance_type", "ssh_key"],
|
|
474
|
+
minimal_config:
|
|
475
|
+
'resource "xcsh_aws_vpc_site" "example" {\n name = "example-aws-vpc-site"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n aws_region = "us-west-2"\n\n aws_cred {\n name = "aws-credentials"\n namespace = "staging"\n }\n\n vpc {\n new_vpc {\n name_tag = "xcsh-vpc"\n primary_ipv4 = "10.0.0.0/16"\n }\n }\n\n instance_type = "t3.xlarge"\n\n ingress_egress_gw {\n aws_certified_hw = "aws-byol-multi-nic-voltmesh"\n az_nodes {\n aws_az_name = "us-west-2a"\n inside_subnet {\n subnet_param {\n ipv4 = "10.0.1.0/24"\n }\n }\n outside_subnet {\n subnet_param {\n ipv4 = "10.0.2.0/24"\n }\n }\n }\n }\n\n no_worker_nodes {}\n}',
|
|
476
|
+
dependencies: {
|
|
477
|
+
requires: [],
|
|
478
|
+
},
|
|
479
|
+
import_syntax: "terraform import xcsh_aws_vpc_site.example namespace/name",
|
|
480
|
+
},
|
|
481
|
+
azure_vnet_site: {
|
|
482
|
+
category: "sites",
|
|
483
|
+
description: "Deploying F5 sites within Azure Virtual Network environments",
|
|
484
|
+
required: ["name", "namespace", "machine_type", "resource_group", "ssh_key"],
|
|
485
|
+
server_defaults: ["disk_size", "block_all_services", "logs_streaming_disabled", "no_worker_nodes", "tags"],
|
|
486
|
+
minimal_config:
|
|
487
|
+
'resource "xcsh_azure_vnet_site" "example" {\n name = "example-Azure-vnet-site"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n azure_region = "westus2"\n\n azure_cred {\n name = "Azure-credentials"\n namespace = "staging"\n }\n\n resource_group = "xcsh-rg"\n\n vnet {\n new_vnet {\n name = "xcsh-vnet"\n primary_ipv4 = "10.0.0.0/16"\n }\n }\n\n machine_type = "Standard_D3_v2"\n\n ingress_egress_gw {\n azure_certified_hw = "Azure-byol-multi-nic-voltmesh"\n az_nodes {\n azure_az = "1"\n inside_subnet {\n subnet_param {\n ipv4 = "10.0.1.0/24"\n }\n }\n outside_subnet {\n subnet_param {\n ipv4 = "10.0.2.0/24"\n }\n }\n }\n }\n\n no_worker_nodes {}\n}',
|
|
488
|
+
dependencies: {
|
|
489
|
+
requires: [],
|
|
490
|
+
},
|
|
491
|
+
import_syntax: "terraform import xcsh_azure_vnet_site.example namespace/name",
|
|
492
|
+
},
|
|
493
|
+
bgp: {
|
|
494
|
+
category: "networking",
|
|
495
|
+
description:
|
|
496
|
+
"Bgp object is the configuration for peering with external bgp servers. it is created by users in system namespace. configuration",
|
|
497
|
+
required: ["name", "namespace"],
|
|
498
|
+
minimal_config:
|
|
499
|
+
'resource "xcsh_bgp" "example" {\n name = "example-bgp"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n bgp_router_id = "192.168.1.1"\n\n bgp_peers {\n metadata {\n name = "upstream-peer"\n }\n spec {\n peer_asn = 65000\n peer_address = "192.168.1.2"\n }\n }\n\n local_asn = 65001\n\n site {\n name = "example-site"\n namespace = "staging"\n }\n}',
|
|
500
|
+
dependencies: {
|
|
501
|
+
requires: [],
|
|
502
|
+
},
|
|
503
|
+
import_syntax: "terraform import xcsh_bgp.example namespace/name",
|
|
504
|
+
},
|
|
505
|
+
bgp_asn_set: {
|
|
506
|
+
category: "networking",
|
|
507
|
+
description: "Bgp_asn_set creates a new object in the storage backend for metadata.namespace",
|
|
508
|
+
required: ["name", "namespace"],
|
|
509
|
+
minimal_config:
|
|
510
|
+
'resource "xcsh_bgp_asn_set" "example" {\n name = "example-bgp-asn-set"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n}',
|
|
511
|
+
dependencies: {
|
|
512
|
+
requires: [],
|
|
513
|
+
},
|
|
514
|
+
import_syntax: "terraform import xcsh_bgp_asn_set.example namespace/name",
|
|
515
|
+
},
|
|
516
|
+
bgp_routing_policy: {
|
|
517
|
+
category: "security",
|
|
518
|
+
description:
|
|
519
|
+
"Bgp routing policy is a list of rules containing match criteria and action to be applied. these rules help control routes which are imported or exported to bgp peers. configuration",
|
|
520
|
+
required: ["name", "namespace"],
|
|
521
|
+
minimal_config:
|
|
522
|
+
'resource "xcsh_bgp_routing_policy" "example" {\n name = "example-bgp-routing-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n rules {\n }\n action {\n }\n aggregate {\n }\n}',
|
|
523
|
+
dependencies: {
|
|
524
|
+
requires: [],
|
|
525
|
+
},
|
|
526
|
+
import_syntax: "terraform import xcsh_bgp_routing_policy.example namespace/name",
|
|
527
|
+
},
|
|
528
|
+
bigip_http_proxy: {
|
|
529
|
+
category: "big-ip-integration",
|
|
530
|
+
description: "BIG-IP HTTP Proxy in a given namespace. If one already exists, it will give an error",
|
|
531
|
+
required: ["name", "namespace"],
|
|
532
|
+
minimal_config:
|
|
533
|
+
'resource "xcsh_bigip_http_proxy" "example" {\n name = "example-bigip-http-proxy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n advanced_profile {\n }\n disable_spec {\n }\n enable_default_profile {\n }\n}',
|
|
534
|
+
dependencies: {
|
|
535
|
+
requires: [],
|
|
536
|
+
},
|
|
537
|
+
import_syntax: "terraform import xcsh_bigip_http_proxy.example namespace/name",
|
|
538
|
+
},
|
|
539
|
+
bot_defense_app_infrastructure: {
|
|
540
|
+
category: "security",
|
|
541
|
+
description: "Bot Defense App Infrastructure in a given namespace",
|
|
542
|
+
required: ["name", "namespace", "environment_type", "traffic_type"],
|
|
543
|
+
minimal_config:
|
|
544
|
+
'resource "xcsh_bot_defense_app_infrastructure" "example" {\n name = "example-bot-defense-app-infrastructure"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n cloud_hosted {\n }\n egress {\n }\n ingress {\n }\n}',
|
|
545
|
+
dependencies: {
|
|
546
|
+
requires: [],
|
|
547
|
+
},
|
|
548
|
+
import_syntax: "terraform import xcsh_bot_defense_app_infrastructure.example namespace/name",
|
|
549
|
+
},
|
|
550
|
+
cdn_cache_rule: {
|
|
551
|
+
category: "load-balancing",
|
|
552
|
+
description: "CDN loadbalancer specification. configuration",
|
|
553
|
+
required: ["name", "namespace"],
|
|
554
|
+
minimal_config:
|
|
555
|
+
'resource "xcsh_cdn_cache_rule" "example" {\n name = "example-CDN-cache-rule"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n cache_rules {\n }\n cache_bypass {\n }\n eligible_for_cache {\n }\n}',
|
|
556
|
+
dependencies: {
|
|
557
|
+
requires: [],
|
|
558
|
+
},
|
|
559
|
+
import_syntax: "terraform import xcsh_cdn_cache_rule.example namespace/name",
|
|
560
|
+
},
|
|
561
|
+
cdn_loadbalancer: {
|
|
562
|
+
category: "load-balancing",
|
|
563
|
+
description: "Content delivery and edge caching with load balancing",
|
|
564
|
+
required: ["name", "namespace"],
|
|
565
|
+
minimal_config:
|
|
566
|
+
'resource "xcsh_cdn_loadbalancer" "example" {\n name = "example-CDN-loadbalancer"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n domains = ["CDN.example.com"]\n\n origin_pool {\n public_name {\n dns_name = "origin.example.com"\n }\n follow_origin_redirect = true\n no_tls {}\n }\n\n cache_ttl_options {\n cache_ttl_default = "1h"\n }\n\n https_auto_cert {\n http_redirect = true\n }\n\n add_location = true\n}',
|
|
567
|
+
dependencies: {
|
|
568
|
+
requires: [],
|
|
569
|
+
},
|
|
570
|
+
import_syntax: "terraform import xcsh_cdn_loadbalancer.example namespace/name",
|
|
571
|
+
},
|
|
572
|
+
cdn_purge_command: {
|
|
573
|
+
category: "load-balancing",
|
|
574
|
+
description: "CDN purge command specification. configuration",
|
|
575
|
+
required: ["name", "namespace"],
|
|
576
|
+
minimal_config:
|
|
577
|
+
'resource "xcsh_cdn_purge_command" "example" {\n name = "example-CDN-purge-command"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n hard_purge {\n }\n purge_all {\n }\n soft_purge {\n }\n}',
|
|
578
|
+
dependencies: {
|
|
579
|
+
requires: [],
|
|
580
|
+
},
|
|
581
|
+
import_syntax: "terraform import xcsh_cdn_purge_command.example namespace/name",
|
|
582
|
+
},
|
|
583
|
+
certificate: {
|
|
584
|
+
category: "certificates",
|
|
585
|
+
description: "Certificate. configuration",
|
|
586
|
+
required: ["name", "namespace", "certificate_url"],
|
|
587
|
+
minimal_config:
|
|
588
|
+
'resource "xcsh_certificate" "example" {\n name = "example-certificate"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n certificate_url = "string:///LS0tLS1CRUdJTi..."\n private_key {\n clear_secret_info {\n url = "string:///LS0tLS1CRUdJTi..."\n }\n }\n}',
|
|
589
|
+
dependencies: {
|
|
590
|
+
requires: ["namespace"],
|
|
591
|
+
},
|
|
592
|
+
import_syntax: "terraform import xcsh_certificate.example namespace/name",
|
|
593
|
+
},
|
|
594
|
+
certificate_chain: {
|
|
595
|
+
category: "certificates",
|
|
596
|
+
description: "Certificate chain configuration for TLS",
|
|
597
|
+
required: ["name", "namespace", "certificate_url"],
|
|
598
|
+
minimal_config:
|
|
599
|
+
'resource "xcsh_certificate_chain" "example" {\n name = "example-certificate-chain"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n}',
|
|
600
|
+
dependencies: {
|
|
601
|
+
requires: [],
|
|
602
|
+
},
|
|
603
|
+
import_syntax: "terraform import xcsh_certificate_chain.example namespace/name",
|
|
604
|
+
},
|
|
605
|
+
cloud_connect: {
|
|
606
|
+
category: "networking",
|
|
607
|
+
description: "Establishing connectivity to cloud provider networks",
|
|
608
|
+
required: ["name", "namespace"],
|
|
609
|
+
minimal_config:
|
|
610
|
+
'resource "xcsh_cloud_connect" "example" {\n name = "example-cloud-connect"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n aws_provider {\n }\n aws_tgw_site {\n }\n cred {\n }\n}',
|
|
611
|
+
dependencies: {
|
|
612
|
+
requires: [],
|
|
613
|
+
},
|
|
614
|
+
import_syntax: "terraform import xcsh_cloud_connect.example namespace/name",
|
|
615
|
+
},
|
|
616
|
+
cloud_credentials: {
|
|
617
|
+
category: "authentication",
|
|
618
|
+
description: "Api to create cloud_credentials object. configuration",
|
|
619
|
+
required: ["name", "namespace"],
|
|
620
|
+
minimal_config:
|
|
621
|
+
'resource "xcsh_cloud_credentials" "example" {\n name = "example-cloud-credentials"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n aws_secret_key {\n access_key = "AKIAIOSFODNN7EXAMPLE"\n secret_key {\n clear_secret_info {\n url = "string:///d0phbmVzc2VjcmV0a2V5"\n }\n }\n }\n}',
|
|
622
|
+
dependencies: {
|
|
623
|
+
requires: [],
|
|
624
|
+
},
|
|
625
|
+
import_syntax: "terraform import xcsh_cloud_credentials.example namespace/name",
|
|
626
|
+
},
|
|
627
|
+
cloud_elastic_ip: {
|
|
628
|
+
category: "cloud-resources",
|
|
629
|
+
description: "Cloud Elastic IP creates Cloud Elastic IP object Object is attached to a site",
|
|
630
|
+
required: ["name", "namespace", "item_count"],
|
|
631
|
+
minimal_config:
|
|
632
|
+
'resource "xcsh_cloud_elastic_ip" "example" {\n name = "example-cloud-elastic-ip"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n site_ref {\n }\n}',
|
|
633
|
+
dependencies: {
|
|
634
|
+
requires: [],
|
|
635
|
+
},
|
|
636
|
+
import_syntax: "terraform import xcsh_cloud_elastic_ip.example namespace/name",
|
|
637
|
+
},
|
|
638
|
+
cloud_link: {
|
|
639
|
+
category: "networking",
|
|
640
|
+
description: "New CloudLink with configured parameters",
|
|
641
|
+
required: ["name", "namespace"],
|
|
642
|
+
minimal_config:
|
|
643
|
+
'resource "xcsh_cloud_link" "example" {\n name = "example-cloud-link"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n aws {\n }\n aws_cred {\n }\n byoc {\n }\n}',
|
|
644
|
+
dependencies: {
|
|
645
|
+
requires: [],
|
|
646
|
+
},
|
|
647
|
+
import_syntax: "terraform import xcsh_cloud_link.example namespace/name",
|
|
648
|
+
},
|
|
649
|
+
cluster: {
|
|
650
|
+
category: "load-balancing",
|
|
651
|
+
description: "Cluster will create the object in the storage backend for namespace metadata.namespace",
|
|
652
|
+
required: [
|
|
653
|
+
"name",
|
|
654
|
+
"namespace",
|
|
655
|
+
"connection_timeout",
|
|
656
|
+
"endpoint_selection",
|
|
657
|
+
"fallback_policy",
|
|
658
|
+
"http_idle_timeout",
|
|
659
|
+
"loadbalancer_algorithm",
|
|
660
|
+
],
|
|
661
|
+
minimal_config:
|
|
662
|
+
'resource "xcsh_cluster" "example" {\n name = "example-cluster"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n auto_http_config {\n }\n circuit_breaker {\n }\n default_subset {\n }\n}',
|
|
663
|
+
dependencies: {
|
|
664
|
+
requires: [],
|
|
665
|
+
},
|
|
666
|
+
import_syntax: "terraform import xcsh_cluster.example namespace/name",
|
|
667
|
+
},
|
|
668
|
+
cminstance: {
|
|
669
|
+
category: "subscriptions",
|
|
670
|
+
description: "App type will create the configuration in namespace metadata.namespace",
|
|
671
|
+
required: ["name", "namespace", "port", "username"],
|
|
672
|
+
minimal_config:
|
|
673
|
+
'resource "xcsh_cminstance" "example" {\n name = "example-cminstance"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n api_token {\n }\n blindfold_secret_info {\n }\n clear_secret_info {\n }\n}',
|
|
674
|
+
dependencies: {
|
|
675
|
+
requires: [],
|
|
676
|
+
},
|
|
677
|
+
import_syntax: "terraform import xcsh_cminstance.example namespace/name",
|
|
678
|
+
},
|
|
679
|
+
code_base_integration: {
|
|
680
|
+
category: "integrations",
|
|
681
|
+
description: "Integration details",
|
|
682
|
+
required: ["name", "namespace"],
|
|
683
|
+
minimal_config:
|
|
684
|
+
'resource "xcsh_code_base_integration" "example" {\n name = "example-code-base-integration"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n code_base_integration {\n }\n azure_repos {\n }\n access_token {\n }\n}',
|
|
685
|
+
dependencies: {
|
|
686
|
+
requires: [],
|
|
687
|
+
},
|
|
688
|
+
import_syntax: "terraform import xcsh_code_base_integration.example namespace/name",
|
|
689
|
+
},
|
|
690
|
+
container_registry: {
|
|
691
|
+
category: "kubernetes",
|
|
692
|
+
description: "Container image registry configuration",
|
|
693
|
+
required: ["name", "namespace", "email", "registry", "user_name"],
|
|
694
|
+
minimal_config:
|
|
695
|
+
'resource "xcsh_container_registry" "example" {\n name = "example-container-registry"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n password {\n }\n blindfold_secret_info {\n }\n clear_secret_info {\n }\n}',
|
|
696
|
+
dependencies: {
|
|
697
|
+
requires: [],
|
|
698
|
+
},
|
|
699
|
+
import_syntax: "terraform import xcsh_container_registry.example namespace/name",
|
|
700
|
+
},
|
|
701
|
+
crl: {
|
|
702
|
+
category: "certificates",
|
|
703
|
+
description: "Api to create crl object. configuration",
|
|
704
|
+
required: ["name", "namespace", "refresh_interval", "server_address", "server_port", "timeout"],
|
|
705
|
+
minimal_config:
|
|
706
|
+
'resource "xcsh_crl" "example" {\n name = "example-crl"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n http_access {\n }\n}',
|
|
707
|
+
dependencies: {
|
|
708
|
+
requires: [],
|
|
709
|
+
},
|
|
710
|
+
import_syntax: "terraform import xcsh_crl.example namespace/name",
|
|
711
|
+
},
|
|
712
|
+
data_group: {
|
|
713
|
+
category: "big-ip-integration",
|
|
714
|
+
description: "Data group in a given namespace. If one already exists it will give an error",
|
|
715
|
+
required: ["name", "namespace"],
|
|
716
|
+
minimal_config:
|
|
717
|
+
'resource "xcsh_data_group" "example" {\n name = "example-data-group"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n address_records {\n }\n records {\n }\n integer_records {\n }\n}',
|
|
718
|
+
dependencies: {
|
|
719
|
+
requires: [],
|
|
720
|
+
},
|
|
721
|
+
import_syntax: "terraform import xcsh_data_group.example namespace/name",
|
|
722
|
+
},
|
|
723
|
+
data_type: {
|
|
724
|
+
category: "security",
|
|
725
|
+
description: "Data_type creates a new object in the storage backend for metadata.namespace",
|
|
726
|
+
required: ["name", "namespace", "is_pii", "is_sensitive_data"],
|
|
727
|
+
minimal_config:
|
|
728
|
+
'resource "xcsh_data_type" "example" {\n name = "example-data-type"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n rules {\n }\n key_pattern {\n }\n exact_values {\n }\n}',
|
|
729
|
+
dependencies: {
|
|
730
|
+
requires: [],
|
|
731
|
+
},
|
|
732
|
+
import_syntax: "terraform import xcsh_data_type.example namespace/name",
|
|
733
|
+
},
|
|
734
|
+
dc_cluster_group: {
|
|
735
|
+
category: "networking",
|
|
736
|
+
description: "DC Cluster group in given namespace",
|
|
737
|
+
required: ["name", "namespace"],
|
|
738
|
+
minimal_config:
|
|
739
|
+
'resource "xcsh_dc_cluster_group" "example" {\n name = "example-dc-cluster-group"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n type {\n }\n control_and_data_plane_mesh {\n }\n data_plane_mesh {\n }\n}',
|
|
740
|
+
dependencies: {
|
|
741
|
+
requires: [],
|
|
742
|
+
},
|
|
743
|
+
import_syntax: "terraform import xcsh_dc_cluster_group.example namespace/name",
|
|
744
|
+
},
|
|
745
|
+
discovery: {
|
|
746
|
+
category: "applications",
|
|
747
|
+
description: "Api to create discovery object for a site or virtual site in system namespace. configuration",
|
|
748
|
+
required: ["name", "namespace"],
|
|
749
|
+
minimal_config:
|
|
750
|
+
'resource "xcsh_discovery" "example" {\n name = "example-discovery"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n discovery_k8s {\n access_info {\n kubeconfig_url {\n clear_secret_info {\n url = "string:///base64-kubeconfig"\n }\n }\n isolated {}\n }\n publish_info {\n disable {}\n }\n }\n\n where {\n site {\n ref {\n name = "example-site"\n namespace = "staging"\n }\n network_type = "VIRTUAL_NETWORK_SITE_LOCAL_INSIDE"\n }\n }\n}',
|
|
751
|
+
dependencies: {
|
|
752
|
+
requires: [],
|
|
753
|
+
},
|
|
754
|
+
import_syntax: "terraform import xcsh_discovery.example namespace/name",
|
|
755
|
+
},
|
|
756
|
+
dns_compliance_checks: {
|
|
757
|
+
category: "dns",
|
|
758
|
+
description:
|
|
759
|
+
"DNS Compliance Checks Specification in a given namespace. If one already exists it will give an error",
|
|
760
|
+
required: ["name", "namespace"],
|
|
761
|
+
minimal_config:
|
|
762
|
+
'resource "xcsh_dns_compliance_checks" "example" {\n name = "example-dns-compliance-checks"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n}',
|
|
763
|
+
dependencies: {
|
|
764
|
+
requires: [],
|
|
765
|
+
},
|
|
766
|
+
import_syntax: "terraform import xcsh_dns_compliance_checks.example namespace/name",
|
|
767
|
+
},
|
|
768
|
+
dns_domain: {
|
|
769
|
+
category: "dns",
|
|
770
|
+
description: "DNS Domain in a given namespace. If one already exist it will give a error",
|
|
771
|
+
required: ["name", "namespace", "dnssec_mode"],
|
|
772
|
+
minimal_config:
|
|
773
|
+
'resource "xcsh_dns_domain" "example" {\n name = "example-dns-domain"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n volterra_managed {\n }\n}',
|
|
774
|
+
dependencies: {
|
|
775
|
+
requires: [],
|
|
776
|
+
},
|
|
777
|
+
import_syntax: "terraform import xcsh_dns_domain.example namespace/name",
|
|
778
|
+
},
|
|
779
|
+
dns_proxy: {
|
|
780
|
+
category: "dns",
|
|
781
|
+
description: "DNS Proxy in a given namespace. If one already exists it will give an error",
|
|
782
|
+
required: ["name", "namespace", "transport_type"],
|
|
783
|
+
minimal_config:
|
|
784
|
+
'resource "xcsh_dns_proxy" "example" {\n name = "example-dns-proxy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n cache_profile {\n }\n disable_cache_profile {\n }\n ddos_profile {\n }\n}',
|
|
785
|
+
dependencies: {
|
|
786
|
+
requires: [],
|
|
787
|
+
},
|
|
788
|
+
import_syntax: "terraform import xcsh_dns_proxy.example namespace/name",
|
|
789
|
+
},
|
|
790
|
+
endpoint: {
|
|
791
|
+
category: "load-balancing",
|
|
792
|
+
description: "Endpoint will create the object in the storage backend for namespace metadata.namespace",
|
|
793
|
+
required: ["name", "namespace", "health_check_port", "port", "protocol"],
|
|
794
|
+
minimal_config:
|
|
795
|
+
'resource "xcsh_endpoint" "example" {\n name = "example-endpoint"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n dns_name_advanced {\n }\n service_info {\n }\n service_selector {\n }\n}',
|
|
796
|
+
dependencies: {
|
|
797
|
+
requires: [],
|
|
798
|
+
},
|
|
799
|
+
import_syntax: "terraform import xcsh_endpoint.example namespace/name",
|
|
800
|
+
},
|
|
801
|
+
enhanced_firewall_policy: {
|
|
802
|
+
category: "security",
|
|
803
|
+
description: "Enhanced firewall policy specification. configuration",
|
|
804
|
+
required: ["name", "namespace"],
|
|
805
|
+
server_defaults: ["allow_all"],
|
|
806
|
+
minimal_config:
|
|
807
|
+
'resource "xcsh_enhanced_firewall_policy" "example" {\n name = "example-enhanced-firewall-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n rule_list {\n rules {\n metadata {\n name = "allow-web-traffic"\n }\n allow {}\n advanced_action {\n action = "LOG"\n }\n source_prefix_list {\n ip_prefix_set {\n name = "trusted-ips"\n namespace = "staging"\n }\n }\n all_traffic {}\n }\n }\n}',
|
|
808
|
+
dependencies: {
|
|
809
|
+
requires: [],
|
|
810
|
+
},
|
|
811
|
+
import_syntax: "terraform import xcsh_enhanced_firewall_policy.example namespace/name",
|
|
812
|
+
},
|
|
813
|
+
external_connector: {
|
|
814
|
+
category: "networking",
|
|
815
|
+
description: "External_connector configuration specification. configuration",
|
|
816
|
+
required: ["name", "namespace"],
|
|
817
|
+
minimal_config:
|
|
818
|
+
'resource "xcsh_external_connector" "example" {\n name = "example-external-connector"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n ce_site_reference {\n }\n gre {\n }\n gre_parameters {\n }\n}',
|
|
819
|
+
dependencies: {
|
|
820
|
+
requires: [],
|
|
821
|
+
},
|
|
822
|
+
import_syntax: "terraform import xcsh_external_connector.example namespace/name",
|
|
823
|
+
},
|
|
824
|
+
fast_acl: {
|
|
825
|
+
category: "security",
|
|
826
|
+
description:
|
|
827
|
+
"Object, object contains rules to protect site from denial of service It has destination{destination IP, destination port) and references to",
|
|
828
|
+
required: ["name", "namespace"],
|
|
829
|
+
minimal_config:
|
|
830
|
+
'resource "xcsh_fast_acl" "example" {\n name = "example-fast-acl"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n protocol_policer {\n }\n re_acl {\n }\n all_public_vips {\n }\n}',
|
|
831
|
+
dependencies: {
|
|
832
|
+
requires: [],
|
|
833
|
+
},
|
|
834
|
+
import_syntax: "terraform import xcsh_fast_acl.example namespace/name",
|
|
835
|
+
},
|
|
836
|
+
fast_acl_rule: {
|
|
837
|
+
category: "security",
|
|
838
|
+
description: "New Fast ACL rule, has specification to match source IP, source port and action to apply",
|
|
839
|
+
required: ["name", "namespace"],
|
|
840
|
+
minimal_config:
|
|
841
|
+
'resource "xcsh_fast_acl_rule" "example" {\n name = "example-fast-acl-rule"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n port {\n }\n all {\n }\n dns {\n }\n}',
|
|
842
|
+
dependencies: {
|
|
843
|
+
requires: [],
|
|
844
|
+
},
|
|
845
|
+
import_syntax: "terraform import xcsh_fast_acl_rule.example namespace/name",
|
|
846
|
+
},
|
|
847
|
+
filter_set: {
|
|
848
|
+
category: "applications",
|
|
849
|
+
description: "Specification",
|
|
850
|
+
required: ["name", "namespace", "context_key"],
|
|
851
|
+
minimal_config:
|
|
852
|
+
'resource "xcsh_filter_set" "example" {\n name = "example-filter-set"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n filter_fields {\n }\n date_field {\n }\n absolute {\n }\n}',
|
|
853
|
+
dependencies: {
|
|
854
|
+
requires: [],
|
|
855
|
+
},
|
|
856
|
+
import_syntax: "terraform import xcsh_filter_set.example namespace/name",
|
|
857
|
+
},
|
|
858
|
+
fleet: {
|
|
859
|
+
category: "sites",
|
|
860
|
+
description: "Fleet will create a fleet object in 'system' namespace of the user",
|
|
861
|
+
required: [
|
|
862
|
+
"name",
|
|
863
|
+
"namespace",
|
|
864
|
+
"enable_default_fleet_config_download",
|
|
865
|
+
"fleet_label",
|
|
866
|
+
"operating_system_version",
|
|
867
|
+
"volterra_software_version",
|
|
868
|
+
],
|
|
869
|
+
minimal_config:
|
|
870
|
+
'resource "xcsh_fleet" "example" {\n name = "example-fleet"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n fleet_label = "env=production"\n\n inside_virtual_network {\n name = "inside-network"\n namespace = "staging"\n }\n\n outside_virtual_network {\n name = "outside-network"\n namespace = "staging"\n }\n\n default_config {}\n}',
|
|
871
|
+
dependencies: {
|
|
872
|
+
requires: [],
|
|
873
|
+
},
|
|
874
|
+
import_syntax: "terraform import xcsh_fleet.example namespace/name",
|
|
875
|
+
},
|
|
876
|
+
forward_proxy_policy: {
|
|
877
|
+
category: "security",
|
|
878
|
+
description: "Forward proxy policy specification. configuration",
|
|
879
|
+
required: ["name", "namespace"],
|
|
880
|
+
minimal_config:
|
|
881
|
+
'resource "xcsh_forward_proxy_policy" "example" {\n name = "example-forward-proxy-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n proxy_label_selector {\n expressions = ["app in (web, api)"]\n }\n\n drp_http_connect {\n any_proxy {}\n rule_list {\n rules {\n metadata {\n name = "allow-external"\n }\n spec {\n action = "ALLOW"\n dst_list {\n any_dst {}\n }\n }\n }\n }\n }\n}',
|
|
882
|
+
dependencies: {
|
|
883
|
+
requires: [],
|
|
884
|
+
},
|
|
885
|
+
import_syntax: "terraform import xcsh_forward_proxy_policy.example namespace/name",
|
|
886
|
+
},
|
|
887
|
+
forwarding_class: {
|
|
888
|
+
category: "networking",
|
|
889
|
+
description: "Forwarding class is created by users in system namespace. configuration",
|
|
890
|
+
required: ["name", "namespace", "queue_id_to_use", "interface_group"],
|
|
891
|
+
minimal_config:
|
|
892
|
+
'resource "xcsh_forwarding_class" "example" {\n name = "example-forwarding-class"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n dscp {\n }\n dscp_based_queue {\n }\n no_marking {\n }\n}',
|
|
893
|
+
dependencies: {
|
|
894
|
+
requires: [],
|
|
895
|
+
},
|
|
896
|
+
import_syntax: "terraform import xcsh_forwarding_class.example namespace/name",
|
|
897
|
+
},
|
|
898
|
+
gcp_vpc_site: {
|
|
899
|
+
category: "sites",
|
|
900
|
+
description: "Deploying F5 sites within Google Cloud VPC environments",
|
|
901
|
+
required: ["name", "namespace", "address", "disk_size", "gcp_region", "instance_type", "ssh_key"],
|
|
902
|
+
minimal_config:
|
|
903
|
+
'resource "xcsh_gcp_vpc_site" "example" {\n name = "example-gcp-vpc-site"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n gcp_region = "us-west1"\n\n cloud_credentials {\n name = "gcp-credentials"\n namespace = "staging"\n }\n\n instance_type = "n1-standard-4"\n\n ingress_egress_gw {\n gcp_certified_hw = "gcp-byol-multi-nic-voltmesh"\n node_number = 1\n inside_network {\n new_network {\n name = "inside-network"\n }\n }\n outside_network {\n new_network {\n name = "outside-network"\n }\n }\n inside_subnet {\n new_subnet {\n subnet_name = "inside-subnet"\n primary_ipv4 = "10.0.1.0/24"\n }\n }\n outside_subnet {\n new_subnet {\n subnet_name = "outside-subnet"\n primary_ipv4 = "10.0.2.0/24"\n }\n }\n }\n\n no_worker_nodes {}\n}',
|
|
904
|
+
dependencies: {
|
|
905
|
+
requires: [],
|
|
906
|
+
},
|
|
907
|
+
import_syntax: "terraform import xcsh_gcp_vpc_site.example namespace/name",
|
|
908
|
+
},
|
|
909
|
+
global_log_receiver: {
|
|
910
|
+
category: "monitoring",
|
|
911
|
+
description: "New Global Log Receiver object",
|
|
912
|
+
required: ["name", "namespace"],
|
|
913
|
+
server_defaults: ["ns_current"],
|
|
914
|
+
minimal_config:
|
|
915
|
+
'resource "xcsh_global_log_receiver" "example" {\n name = "example-global-log-receiver"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n audit_logs {\n }\n aws_cloud_watch_receiver {\n }\n aws_cred {\n }\n}',
|
|
916
|
+
dependencies: {
|
|
917
|
+
requires: [],
|
|
918
|
+
},
|
|
919
|
+
import_syntax: "terraform import xcsh_global_log_receiver.example namespace/name",
|
|
920
|
+
},
|
|
921
|
+
healthcheck: {
|
|
922
|
+
category: "load-balancing",
|
|
923
|
+
description:
|
|
924
|
+
"Healthcheck object defines method to determine if the given endpoint is healthy. single healthcheck object can be referred to by one or many cluster objects. configuration",
|
|
925
|
+
required: ["name", "namespace", "healthy_threshold", "interval", "timeout", "unhealthy_threshold"],
|
|
926
|
+
oneof_groups: [
|
|
927
|
+
{
|
|
928
|
+
fields: ["http_health_check", "tcp_health_check", "udp_icmp_health_check"],
|
|
929
|
+
},
|
|
930
|
+
{
|
|
931
|
+
parent: "http_health_check",
|
|
932
|
+
fields: ["host_header", "use_origin_server_name"],
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
parent: "http_health_check",
|
|
936
|
+
fields: ["headers", "request_headers_to_remove"],
|
|
937
|
+
},
|
|
938
|
+
],
|
|
939
|
+
server_defaults: ["jitter_percent"],
|
|
940
|
+
minimal_config:
|
|
941
|
+
'resource "xcsh_healthcheck" "example" {\n name = "example-healthcheck"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n // One of the arguments from this list "http_health_check tcp_health_check udp_icmp_health_check" must be set\n\n http_health_check {\n // One of the arguments from this list "host_header use_origin_server_name" must be set\n\n use_origin_server_name {}\n\n path = "/health"\n use_http2 = false\n expected_status_codes = ["200"]\n\n // One of the arguments from this list "headers request_headers_to_remove" must be set\n\n headers {}\n }\n\n healthy_threshold = 3\n unhealthy_threshold = 3\n interval = 15\n timeout = 5\n}',
|
|
942
|
+
dependencies: {
|
|
943
|
+
requires: ["namespace"],
|
|
944
|
+
used_by: ["origin_pool"],
|
|
945
|
+
},
|
|
946
|
+
import_syntax: "terraform import xcsh_healthcheck.example namespace/name",
|
|
947
|
+
},
|
|
948
|
+
http_loadbalancer: {
|
|
949
|
+
category: "load-balancing",
|
|
950
|
+
description: "Load balancing HTTP/HTTPS traffic with advanced routing and security",
|
|
951
|
+
required: ["name", "namespace"],
|
|
952
|
+
oneof_groups: [
|
|
953
|
+
{
|
|
954
|
+
fields: [
|
|
955
|
+
"advertise_custom",
|
|
956
|
+
"advertise_on_public",
|
|
957
|
+
"advertise_on_public_default_vip",
|
|
958
|
+
"do_not_advertise",
|
|
959
|
+
],
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
fields: ["api_specification", "disable_api_definition"],
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
fields: ["disable_api_discovery", "enable_api_discovery"],
|
|
966
|
+
},
|
|
967
|
+
{
|
|
968
|
+
fields: ["api_testing", "disable_api_testing"],
|
|
969
|
+
},
|
|
970
|
+
{
|
|
971
|
+
fields: [
|
|
972
|
+
"captcha_challenge",
|
|
973
|
+
"enable_challenge",
|
|
974
|
+
"js_challenge",
|
|
975
|
+
"no_challenge",
|
|
976
|
+
"policy_based_challenge",
|
|
977
|
+
],
|
|
978
|
+
},
|
|
979
|
+
{
|
|
980
|
+
fields: [
|
|
981
|
+
"cookie_stickiness",
|
|
982
|
+
"least_active",
|
|
983
|
+
"random",
|
|
984
|
+
"ring_hash",
|
|
985
|
+
"round_robin",
|
|
986
|
+
"source_ip_stickiness",
|
|
987
|
+
],
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
fields: ["http", "https", "https_auto_cert"],
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
parent: "https_auto_cert",
|
|
994
|
+
fields: ["default_header", "no_headers", "server_name"],
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
parent: "tls_config",
|
|
998
|
+
fields: ["custom_security", "default_security", "low_security", "medium_security"],
|
|
999
|
+
},
|
|
1000
|
+
{
|
|
1001
|
+
parent: "https_auto_cert",
|
|
1002
|
+
fields: ["no_mtls", "use_mtls"],
|
|
1003
|
+
},
|
|
1004
|
+
{
|
|
1005
|
+
fields: ["disable_malicious_user_detection", "enable_malicious_user_detection"],
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
fields: ["disable_malware_protection", "malware_protection_settings"],
|
|
1009
|
+
},
|
|
1010
|
+
{
|
|
1011
|
+
fields: ["api_rate_limit", "disable_rate_limit", "rate_limit"],
|
|
1012
|
+
},
|
|
1013
|
+
{
|
|
1014
|
+
fields: ["default_sensitive_data_policy", "sensitive_data_policy"],
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
fields: ["active_service_policies", "no_service_policies", "service_policies_from_namespace"],
|
|
1018
|
+
},
|
|
1019
|
+
{
|
|
1020
|
+
fields: ["disable_threat_mesh", "enable_threat_mesh"],
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
fields: ["disable_trust_client_ip_headers", "enable_trust_client_ip_headers"],
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
fields: ["user_id_client_ip", "user_identification"],
|
|
1027
|
+
},
|
|
1028
|
+
{
|
|
1029
|
+
fields: ["app_firewall", "disable_waf"],
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
fields: ["bot_defense", "bot_defense_advanced", "disable_bot_defense"],
|
|
1033
|
+
},
|
|
1034
|
+
],
|
|
1035
|
+
server_defaults: [
|
|
1036
|
+
"add_location",
|
|
1037
|
+
"endpoint_selection",
|
|
1038
|
+
"loadbalancer_algorithm",
|
|
1039
|
+
"healthcheck",
|
|
1040
|
+
"no_tls",
|
|
1041
|
+
"same_as_endpoint_port",
|
|
1042
|
+
"default_sensitive_data_policy",
|
|
1043
|
+
"disable_api_definition",
|
|
1044
|
+
"disable_api_discovery",
|
|
1045
|
+
"disable_api_testing",
|
|
1046
|
+
"disable_malware_protection",
|
|
1047
|
+
"disable_rate_limit",
|
|
1048
|
+
"disable_threat_mesh",
|
|
1049
|
+
"disable_trust_client_ip_headers",
|
|
1050
|
+
"l7_ddos_protection",
|
|
1051
|
+
"round_robin",
|
|
1052
|
+
"service_policies_from_namespace",
|
|
1053
|
+
"user_id_client_ip",
|
|
1054
|
+
],
|
|
1055
|
+
minimal_config:
|
|
1056
|
+
'resource "xcsh_http_loadbalancer" "example" {\n name = "example-http-loadbalancer"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n // One of the arguments from this list "advertise_custom advertise_on_public advertise_on_public_default_vip do_not_advertise" must be set\n\n advertise_on_public_default_vip {}\n\n // One of the arguments from this list "api_specification disable_api_definition" must be set\n\n disable_api_definition {}\n\n // One of the arguments from this list "disable_api_discovery enable_api_discovery" must be set\n\n disable_api_discovery {}\n\n // One of the arguments from this list "api_testing disable_api_testing" must be set\n\n disable_api_testing {}\n\n // One of the arguments from this list "captcha_challenge enable_challenge js_challenge no_challenge policy_based_challenge" must be set\n\n no_challenge {}\n\n domains = ["app.example.com", "`www.example.com"`]\n\n // One of the arguments from this list "cookie_stickiness least_active random ring_hash round_robin source_ip_stickiness" must be set\n\n round_robin {}\n\n // One of the arguments from this list "http https https_auto_cert" must be set\n\n https_auto_cert {\n http_redirect = true\n add_hsts = true\n\n // One of the arguments from this list "default_header no_headers server_name" must be set\n\n default_header {}\n\n tls_config {\n // One of the arguments from this list "custom_security default_security low_security medium_security" must be set\n\n default_security {}\n }\n\n // One of the arguments from this list "no_mtls use_mtls" must be set\n\n no_mtls {}\n }\n\n // One of the arguments from this list "disable_malicious_user_detection enable_malicious_user_detection" must be set\n\n enable_malicious_user_detection {}\n\n // One of the arguments from this list "disable_malware_protection malware_protection_settings" must be set\n\n}',
|
|
1057
|
+
dependencies: {
|
|
1058
|
+
requires: ["namespace", "origin_pool"],
|
|
1059
|
+
used_by: ["route"],
|
|
1060
|
+
},
|
|
1061
|
+
import_syntax: "terraform import xcsh_http_loadbalancer.example namespace/name",
|
|
1062
|
+
},
|
|
1063
|
+
ike1: {
|
|
1064
|
+
category: "vpn",
|
|
1065
|
+
description: "Ike phase1 profile specification. configuration",
|
|
1066
|
+
required: ["name", "namespace"],
|
|
1067
|
+
minimal_config:
|
|
1068
|
+
'resource "xcsh_ike1" "example" {\n name = "example-ike1"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n ike_keylifetime_hours {\n }\n ike_keylifetime_minutes {\n }\n reauth_disabled {\n }\n}',
|
|
1069
|
+
dependencies: {
|
|
1070
|
+
requires: [],
|
|
1071
|
+
},
|
|
1072
|
+
import_syntax: "terraform import xcsh_ike1.example namespace/name",
|
|
1073
|
+
},
|
|
1074
|
+
ike2: {
|
|
1075
|
+
category: "vpn",
|
|
1076
|
+
description: "Ike phase2 profile specification. configuration",
|
|
1077
|
+
required: ["name", "namespace"],
|
|
1078
|
+
minimal_config:
|
|
1079
|
+
'resource "xcsh_ike2" "example" {\n name = "example-ike2"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n dh_group_set {\n }\n disable_pfs {\n }\n ike_keylifetime_hours {\n }\n}',
|
|
1080
|
+
dependencies: {
|
|
1081
|
+
requires: [],
|
|
1082
|
+
},
|
|
1083
|
+
import_syntax: "terraform import xcsh_ike2.example namespace/name",
|
|
1084
|
+
},
|
|
1085
|
+
ike_phase1_profile: {
|
|
1086
|
+
category: "vpn",
|
|
1087
|
+
description: "Ike phase1 profile specification. configuration",
|
|
1088
|
+
required: ["name", "namespace"],
|
|
1089
|
+
minimal_config:
|
|
1090
|
+
'resource "xcsh_ike_phase1_profile" "example" {\n name = "example-ike-phase1-profile"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n ike_keylifetime_hours {\n }\n ike_keylifetime_minutes {\n }\n reauth_disabled {\n }\n}',
|
|
1091
|
+
dependencies: {
|
|
1092
|
+
requires: [],
|
|
1093
|
+
},
|
|
1094
|
+
import_syntax: "terraform import xcsh_ike_phase1_profile.example namespace/name",
|
|
1095
|
+
},
|
|
1096
|
+
ike_phase2_profile: {
|
|
1097
|
+
category: "vpn",
|
|
1098
|
+
description: "Ike phase2 profile specification. configuration",
|
|
1099
|
+
required: ["name", "namespace"],
|
|
1100
|
+
minimal_config:
|
|
1101
|
+
'resource "xcsh_ike_phase2_profile" "example" {\n name = "example-ike-phase2-profile"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n dh_group_set {\n }\n disable_pfs {\n }\n ike_keylifetime_hours {\n }\n}',
|
|
1102
|
+
dependencies: {
|
|
1103
|
+
requires: [],
|
|
1104
|
+
},
|
|
1105
|
+
import_syntax: "terraform import xcsh_ike_phase2_profile.example namespace/name",
|
|
1106
|
+
},
|
|
1107
|
+
ip_prefix_set: {
|
|
1108
|
+
category: "networking",
|
|
1109
|
+
description: "Ip_prefix_set creates a new object in the storage backend for metadata.namespace",
|
|
1110
|
+
required: ["name", "namespace"],
|
|
1111
|
+
minimal_config:
|
|
1112
|
+
'resource "xcsh_ip_prefix_set" "example" {\n name = "example-ip-prefix-set"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n prefix = ["192.168.1.0/24", "10.0.0.0/8"]\n}',
|
|
1113
|
+
dependencies: {
|
|
1114
|
+
requires: [],
|
|
1115
|
+
},
|
|
1116
|
+
import_syntax: "terraform import xcsh_ip_prefix_set.example namespace/name",
|
|
1117
|
+
},
|
|
1118
|
+
irule: {
|
|
1119
|
+
category: "big-ip-integration",
|
|
1120
|
+
description: "IRule in a given namespace. If one already exists it will give an error",
|
|
1121
|
+
required: ["name", "namespace", "description", "description_spec", "irule"],
|
|
1122
|
+
minimal_config:
|
|
1123
|
+
'resource "xcsh_irule" "example" {\n name = "example-irule"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n}',
|
|
1124
|
+
dependencies: {
|
|
1125
|
+
requires: [],
|
|
1126
|
+
},
|
|
1127
|
+
import_syntax: "terraform import xcsh_irule.example namespace/name",
|
|
1128
|
+
},
|
|
1129
|
+
k8s_cluster: {
|
|
1130
|
+
category: "kubernetes",
|
|
1131
|
+
description: "K8s_cluster will create the object in the storage backend for namespace metadata.namespace",
|
|
1132
|
+
required: ["name", "namespace"],
|
|
1133
|
+
server_defaults: [
|
|
1134
|
+
"cluster_scoped_access_deny",
|
|
1135
|
+
"no_cluster_wide_apps",
|
|
1136
|
+
"no_global_access",
|
|
1137
|
+
"no_insecure_registries",
|
|
1138
|
+
"no_local_access",
|
|
1139
|
+
"use_default_cluster_role_bindings",
|
|
1140
|
+
"use_default_cluster_roles",
|
|
1141
|
+
"use_default_psp",
|
|
1142
|
+
"vk8s_namespace_access_deny",
|
|
1143
|
+
],
|
|
1144
|
+
minimal_config:
|
|
1145
|
+
'resource "xcsh_k8s_cluster" "example" {\n name = "example-k8s-cluster"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n use_custom_cluster_role_bindings {\n cluster_role_bindings {\n name = "admin-binding"\n namespace = "staging"\n }\n }\n\n cluster_wide_app_list {\n cluster_wide_apps {\n name = "nginx-ingress"\n namespace = "staging"\n }\n }\n\n local_access_config {\n local_domain = "cluster.local"\n default_port {}\n }\n\n global_access_enable {}\n}',
|
|
1146
|
+
dependencies: {
|
|
1147
|
+
requires: [],
|
|
1148
|
+
},
|
|
1149
|
+
import_syntax: "terraform import xcsh_k8s_cluster.example namespace/name",
|
|
1150
|
+
},
|
|
1151
|
+
k8s_cluster_role: {
|
|
1152
|
+
category: "kubernetes",
|
|
1153
|
+
description: "K8s_cluster_role will create the object in the storage backend for namespace metadata.namespace",
|
|
1154
|
+
required: ["name", "namespace"],
|
|
1155
|
+
minimal_config:
|
|
1156
|
+
'resource "xcsh_k8s_cluster_role" "example" {\n name = "example-k8s-cluster-role"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n k8s_cluster_role_selector {\n }\n policy_rule_list {\n }\n policy_rule {\n }\n}',
|
|
1157
|
+
dependencies: {
|
|
1158
|
+
requires: [],
|
|
1159
|
+
},
|
|
1160
|
+
import_syntax: "terraform import xcsh_k8s_cluster_role.example namespace/name",
|
|
1161
|
+
},
|
|
1162
|
+
k8s_cluster_role_binding: {
|
|
1163
|
+
category: "kubernetes",
|
|
1164
|
+
description:
|
|
1165
|
+
"K8s_cluster_role_binding will create the object in the storage backend for namespace metadata.namespace",
|
|
1166
|
+
required: ["name", "namespace"],
|
|
1167
|
+
minimal_config:
|
|
1168
|
+
'resource "xcsh_k8s_cluster_role_binding" "example" {\n name = "example-k8s-cluster-role-binding"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n subjects {\n }\n service_account {\n }\n k8s_cluster_role {\n }\n}',
|
|
1169
|
+
dependencies: {
|
|
1170
|
+
requires: [],
|
|
1171
|
+
},
|
|
1172
|
+
import_syntax: "terraform import xcsh_k8s_cluster_role_binding.example namespace/name",
|
|
1173
|
+
},
|
|
1174
|
+
k8s_pod_security_admission: {
|
|
1175
|
+
category: "kubernetes",
|
|
1176
|
+
description: "K8s_pod_security_admission will create the object in the storage backend",
|
|
1177
|
+
required: ["name", "namespace"],
|
|
1178
|
+
minimal_config:
|
|
1179
|
+
'resource "xcsh_k8s_pod_security_admission" "example" {\n name = "example-k8s-pod-security-admission"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n pod_security_admission_specs {\n }\n audit {\n }\n baseline {\n }\n}',
|
|
1180
|
+
dependencies: {
|
|
1181
|
+
requires: [],
|
|
1182
|
+
},
|
|
1183
|
+
import_syntax: "terraform import xcsh_k8s_pod_security_admission.example namespace/name",
|
|
1184
|
+
},
|
|
1185
|
+
k8s_pod_security_policy: {
|
|
1186
|
+
category: "security",
|
|
1187
|
+
description:
|
|
1188
|
+
"K8s_pod_security_policy will create the object in the storage backend for namespace metadata.namespace",
|
|
1189
|
+
required: ["name", "namespace"],
|
|
1190
|
+
minimal_config:
|
|
1191
|
+
'resource "xcsh_k8s_pod_security_policy" "example" {\n name = "example-k8s-pod-security-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n psp_spec {\n }\n allowed_capabilities {\n }\n allowed_host_paths {\n }\n}',
|
|
1192
|
+
dependencies: {
|
|
1193
|
+
requires: [],
|
|
1194
|
+
},
|
|
1195
|
+
import_syntax: "terraform import xcsh_k8s_pod_security_policy.example namespace/name",
|
|
1196
|
+
},
|
|
1197
|
+
log_receiver: {
|
|
1198
|
+
category: "monitoring",
|
|
1199
|
+
description: "New Log Receiver object",
|
|
1200
|
+
required: ["name", "namespace"],
|
|
1201
|
+
minimal_config:
|
|
1202
|
+
'resource "xcsh_log_receiver" "example" {\n name = "example-log-receiver"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n http_receiver {\n uri = "`https://logs.example.com/ingest"`\n batch {\n max_bytes = 1048576\n max_events = 100\n timeout_seconds = 5\n }\n no_tls_verify_hostname {}\n no_compression {}\n }\n}',
|
|
1203
|
+
dependencies: {
|
|
1204
|
+
requires: [],
|
|
1205
|
+
},
|
|
1206
|
+
import_syntax: "terraform import xcsh_log_receiver.example namespace/name",
|
|
1207
|
+
},
|
|
1208
|
+
malicious_user_mitigation: {
|
|
1209
|
+
category: "security",
|
|
1210
|
+
description: "Malicious_user_mitigation creates a new object in the storage backend for metadata.namespace",
|
|
1211
|
+
required: ["name", "namespace"],
|
|
1212
|
+
server_defaults: ["mitigation_type"],
|
|
1213
|
+
minimal_config:
|
|
1214
|
+
'resource "xcsh_malicious_user_mitigation" "example" {\n name = "example-malicious-user-mitigation"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n mitigation_type {\n rules {\n threat_level {\n high {}\n }\n mitigation_action {\n block_temporarily {}\n }\n }\n }\n}',
|
|
1215
|
+
dependencies: {
|
|
1216
|
+
requires: [],
|
|
1217
|
+
},
|
|
1218
|
+
import_syntax: "terraform import xcsh_malicious_user_mitigation.example namespace/name",
|
|
1219
|
+
},
|
|
1220
|
+
namespace: {
|
|
1221
|
+
category: "organization",
|
|
1222
|
+
description: "New namespace. Name of the object is name of the namespace",
|
|
1223
|
+
required: ["name"],
|
|
1224
|
+
minimal_config:
|
|
1225
|
+
'resource "xcsh_namespace" "example" {\n name = "example-namespace"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n description = "Example namespace for application workloads"\n}',
|
|
1226
|
+
dependencies: {
|
|
1227
|
+
requires: [],
|
|
1228
|
+
used_by: [
|
|
1229
|
+
"api_definition",
|
|
1230
|
+
"app_firewall",
|
|
1231
|
+
"certificate",
|
|
1232
|
+
"healthcheck",
|
|
1233
|
+
"http_loadbalancer",
|
|
1234
|
+
"origin_pool",
|
|
1235
|
+
"rate_limiter",
|
|
1236
|
+
"route",
|
|
1237
|
+
"service_policy",
|
|
1238
|
+
"tcp_loadbalancer",
|
|
1239
|
+
"udp_loadbalancer",
|
|
1240
|
+
],
|
|
1241
|
+
},
|
|
1242
|
+
import_syntax: "terraform import xcsh_namespace.example namespace/name",
|
|
1243
|
+
},
|
|
1244
|
+
nat_policy: {
|
|
1245
|
+
category: "security",
|
|
1246
|
+
description: "Nat policy create specification configures nat policy with multiple rules,. configuration",
|
|
1247
|
+
required: ["name", "namespace"],
|
|
1248
|
+
minimal_config:
|
|
1249
|
+
'resource "xcsh_nat_policy" "example" {\n name = "example-nat-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n rules {\n }\n action {\n }\n dynamic {\n }\n}',
|
|
1250
|
+
dependencies: {
|
|
1251
|
+
requires: [],
|
|
1252
|
+
},
|
|
1253
|
+
import_syntax: "terraform import xcsh_nat_policy.example namespace/name",
|
|
1254
|
+
},
|
|
1255
|
+
network_connector: {
|
|
1256
|
+
category: "networking",
|
|
1257
|
+
description: "Network connector is created by users in system namespace. configuration",
|
|
1258
|
+
required: ["name", "namespace"],
|
|
1259
|
+
minimal_config:
|
|
1260
|
+
'resource "xcsh_network_connector" "example" {\n name = "example-network-connector"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n sli_to_global_dr {\n global_vn {\n name = "global-network"\n namespace = "staging"\n }\n }\n\n disable_forward_proxy {}\n}',
|
|
1261
|
+
dependencies: {
|
|
1262
|
+
requires: [],
|
|
1263
|
+
},
|
|
1264
|
+
import_syntax: "terraform import xcsh_network_connector.example namespace/name",
|
|
1265
|
+
},
|
|
1266
|
+
network_firewall: {
|
|
1267
|
+
category: "security",
|
|
1268
|
+
description: "Network firewall is created by users in system namespace. configuration",
|
|
1269
|
+
required: ["name", "namespace"],
|
|
1270
|
+
server_defaults: ["disable_fast_acl", "disable_forward_proxy_policy", "disable_network_policy"],
|
|
1271
|
+
minimal_config:
|
|
1272
|
+
'resource "xcsh_network_firewall" "example" {\n name = "example-network-firewall"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n active_enhanced_firewall_policies {\n }\n enhanced_firewall_policies {\n }\n active_fast_acls {\n }\n}',
|
|
1273
|
+
dependencies: {
|
|
1274
|
+
requires: [],
|
|
1275
|
+
},
|
|
1276
|
+
import_syntax: "terraform import xcsh_network_firewall.example namespace/name",
|
|
1277
|
+
},
|
|
1278
|
+
network_interface: {
|
|
1279
|
+
category: "networking",
|
|
1280
|
+
description:
|
|
1281
|
+
"Network interface represents configuration of a network device. it is created by users in system namespace. configuration",
|
|
1282
|
+
required: ["name", "namespace"],
|
|
1283
|
+
minimal_config:
|
|
1284
|
+
'resource "xcsh_network_interface" "example" {\n name = "example-network-interface"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n dedicated_interface {\n }\n cluster {\n }\n is_primary {\n }\n}',
|
|
1285
|
+
dependencies: {
|
|
1286
|
+
requires: [],
|
|
1287
|
+
},
|
|
1288
|
+
import_syntax: "terraform import xcsh_network_interface.example namespace/name",
|
|
1289
|
+
},
|
|
1290
|
+
network_policy: {
|
|
1291
|
+
category: "security",
|
|
1292
|
+
description: "New network policy with configured parameters in specified namespace",
|
|
1293
|
+
required: ["name", "namespace"],
|
|
1294
|
+
minimal_config:
|
|
1295
|
+
'resource "xcsh_network_policy" "example" {\n name = "example-network-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n endpoint {\n any {}\n }\n\n ingress_rules {\n metadata {\n name = "allow-http"\n }\n spec {\n action = "ALLOW"\n any = {}\n }\n }\n\n egress_rules {\n metadata {\n name = "allow-all-egress"\n }\n spec {\n action = "ALLOW"\n any = {}\n }\n }\n}',
|
|
1296
|
+
dependencies: {
|
|
1297
|
+
requires: [],
|
|
1298
|
+
},
|
|
1299
|
+
import_syntax: "terraform import xcsh_network_policy.example namespace/name",
|
|
1300
|
+
},
|
|
1301
|
+
network_policy_rule: {
|
|
1302
|
+
category: "security",
|
|
1303
|
+
description: "Network policy rule with configured parameters in specified namespace",
|
|
1304
|
+
required: ["name", "namespace"],
|
|
1305
|
+
minimal_config:
|
|
1306
|
+
'resource "xcsh_network_policy_rule" "example" {\n name = "example-network-policy-rule"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n advanced_action {\n }\n ip_prefix_set {\n }\n ref {\n }\n}',
|
|
1307
|
+
dependencies: {
|
|
1308
|
+
requires: [],
|
|
1309
|
+
},
|
|
1310
|
+
import_syntax: "terraform import xcsh_network_policy_rule.example namespace/name",
|
|
1311
|
+
},
|
|
1312
|
+
network_policy_view: {
|
|
1313
|
+
category: "security",
|
|
1314
|
+
description: "Network policy view specification. configuration",
|
|
1315
|
+
required: ["name", "namespace"],
|
|
1316
|
+
minimal_config:
|
|
1317
|
+
'resource "xcsh_network_policy_view" "example" {\n name = "example-network-policy-view"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n egress_rules {\n }\n adv_action {\n }\n all_tcp_traffic {\n }\n}',
|
|
1318
|
+
dependencies: {
|
|
1319
|
+
requires: [],
|
|
1320
|
+
},
|
|
1321
|
+
import_syntax: "terraform import xcsh_network_policy_view.example namespace/name",
|
|
1322
|
+
},
|
|
1323
|
+
nfv_service: {
|
|
1324
|
+
category: "networking",
|
|
1325
|
+
description: "New NFV service with configured parameters",
|
|
1326
|
+
required: ["name", "namespace"],
|
|
1327
|
+
minimal_config:
|
|
1328
|
+
'resource "xcsh_nfv_service" "example" {\n name = "example-nfv-service"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n disable_https_management {\n }\n disable_ssh_access {\n }\n enabled_ssh_access {\n }\n}',
|
|
1329
|
+
dependencies: {
|
|
1330
|
+
requires: [],
|
|
1331
|
+
},
|
|
1332
|
+
import_syntax: "terraform import xcsh_nfv_service.example namespace/name",
|
|
1333
|
+
},
|
|
1334
|
+
nginx_service_discovery: {
|
|
1335
|
+
category: "networking",
|
|
1336
|
+
description:
|
|
1337
|
+
"Api to create nginx service discovery object for a site or virtual site in system namespace. configuration",
|
|
1338
|
+
required: ["name", "namespace"],
|
|
1339
|
+
minimal_config:
|
|
1340
|
+
'resource "xcsh_nginx_service_discovery" "example" {\n name = "example-nginx-service-discovery"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n discovery_target {\n }\n config_sync_group {\n }\n nginx_instance {\n }\n}',
|
|
1341
|
+
dependencies: {
|
|
1342
|
+
requires: [],
|
|
1343
|
+
},
|
|
1344
|
+
import_syntax: "terraform import xcsh_nginx_service_discovery.example namespace/name",
|
|
1345
|
+
},
|
|
1346
|
+
origin_pool: {
|
|
1347
|
+
category: "load-balancing",
|
|
1348
|
+
description: "Defining backend server pools for load balancer targets",
|
|
1349
|
+
required: ["name", "namespace"],
|
|
1350
|
+
oneof_groups: [
|
|
1351
|
+
{
|
|
1352
|
+
parent: "origin_servers",
|
|
1353
|
+
fields: [
|
|
1354
|
+
"consul_service",
|
|
1355
|
+
"custom_endpoint_object",
|
|
1356
|
+
"k8s_service",
|
|
1357
|
+
"private_ip",
|
|
1358
|
+
"private_name",
|
|
1359
|
+
"public_ip",
|
|
1360
|
+
"public_name",
|
|
1361
|
+
"vn_private_ip",
|
|
1362
|
+
"vn_private_name",
|
|
1363
|
+
],
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
parent: "k8s_service",
|
|
1367
|
+
fields: ["inside_network", "outside_network", "vk8s_networks"],
|
|
1368
|
+
},
|
|
1369
|
+
{
|
|
1370
|
+
parent: "site_locator",
|
|
1371
|
+
fields: ["site", "virtual_site"],
|
|
1372
|
+
},
|
|
1373
|
+
{
|
|
1374
|
+
fields: ["no_tls", "use_tls"],
|
|
1375
|
+
},
|
|
1376
|
+
{
|
|
1377
|
+
parent: "use_tls",
|
|
1378
|
+
fields: ["disable_sni", "sni", "use_host_header_as_sni"],
|
|
1379
|
+
},
|
|
1380
|
+
{
|
|
1381
|
+
parent: "tls_config",
|
|
1382
|
+
fields: ["custom_security", "default_security", "low_security", "medium_security"],
|
|
1383
|
+
},
|
|
1384
|
+
{
|
|
1385
|
+
parent: "use_tls",
|
|
1386
|
+
fields: ["no_mtls", "use_mtls", "use_mtls_obj"],
|
|
1387
|
+
},
|
|
1388
|
+
{
|
|
1389
|
+
parent: "use_tls",
|
|
1390
|
+
fields: ["skip_server_verification", "use_server_verification", "volterra_trusted_ca"],
|
|
1391
|
+
},
|
|
1392
|
+
],
|
|
1393
|
+
server_defaults: [
|
|
1394
|
+
"endpoint_selection",
|
|
1395
|
+
"loadbalancer_algorithm",
|
|
1396
|
+
"healthcheck",
|
|
1397
|
+
"no_tls",
|
|
1398
|
+
"same_as_endpoint_port",
|
|
1399
|
+
],
|
|
1400
|
+
minimal_config:
|
|
1401
|
+
'resource "xcsh_origin_pool" "example" {\n name = "example-origin-pool"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n // Origin servers configuration\n origin_servers {\n // One of the arguments from this list "consul_service custom_endpoint_object k8s_service private_ip private_name public_ip public_name vn_private_ip vn_private_name" must be set\n\n public_name {\n dns_name = "origin.example.com"\n refresh_interval = 60\n }\n }\n\n origin_servers {\n // One of the arguments from this list "consul_service custom_endpoint_object k8s_service private_ip private_name public_ip public_name vn_private_ip vn_private_name" must be set\n\n k8s_service {\n service_name = "backend-svc"\n\n // One of the arguments from this list "inside_network outside_network vk8s_networks" must be set\n\n vk8s_networks {}\n\n site_locator {\n // One of the arguments from this list "site virtual_site" must be set\n\n site {\n name = "example-site"\n namespace = "staging"\n }\n }\n }\n }\n\n port = 443\n\n // One of the arguments from this list "no_tls use_tls" must be set\n\n use_tls {\n // One of the arguments from this list "disable_sni sni use_host_header_as_sni" must be set\n\n sni = "backend.example.com"\n\n tls_config {\n // One of the arguments from this list "custom_security default_security low_security medium_security" must be set\n\n default_security {}\n }\n\n // One of the arguments from this list "no_mtls use_mtls use_mtls_obj" must be set\n\n no_mtls {}\n\n // One of the arguments from this list "skip_server_verification use_server_verification volterra_trusted_ca" must be set\n\n volterra_trusted_ca {}\n }\n\n // Health check configuration\n healthcheck {\n name = "example-healthcheck"\n namespace = "staging"\n }\n\n // Load balancing configuration\n}',
|
|
1402
|
+
dependencies: {
|
|
1403
|
+
requires: ["namespace", "healthcheck"],
|
|
1404
|
+
used_by: ["http_loadbalancer", "tcp_loadbalancer", "udp_loadbalancer"],
|
|
1405
|
+
},
|
|
1406
|
+
import_syntax: "terraform import xcsh_origin_pool.example namespace/name",
|
|
1407
|
+
},
|
|
1408
|
+
policer: {
|
|
1409
|
+
category: "service-mesh",
|
|
1410
|
+
description: "New policer with traffic rate limits",
|
|
1411
|
+
required: ["name", "namespace", "burst_size", "committed_information_rate"],
|
|
1412
|
+
server_defaults: ["policer_mode", "policer_type"],
|
|
1413
|
+
minimal_config:
|
|
1414
|
+
'resource "xcsh_policer" "example" {\n name = "example-policer"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n}',
|
|
1415
|
+
dependencies: {
|
|
1416
|
+
requires: [],
|
|
1417
|
+
},
|
|
1418
|
+
import_syntax: "terraform import xcsh_policer.example namespace/name",
|
|
1419
|
+
},
|
|
1420
|
+
policy_based_routing: {
|
|
1421
|
+
category: "networking",
|
|
1422
|
+
description: "Network policy based routing create specification. configuration",
|
|
1423
|
+
required: ["name", "namespace"],
|
|
1424
|
+
minimal_config:
|
|
1425
|
+
'resource "xcsh_policy_based_routing" "example" {\n name = "example-policy-based-routing"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n forwarding_class_list {\n }\n forward_proxy_pbr {\n }\n forward_proxy_pbr_rules {\n }\n}',
|
|
1426
|
+
dependencies: {
|
|
1427
|
+
requires: [],
|
|
1428
|
+
},
|
|
1429
|
+
import_syntax: "terraform import xcsh_policy_based_routing.example namespace/name",
|
|
1430
|
+
},
|
|
1431
|
+
protocol_inspection: {
|
|
1432
|
+
category: "security",
|
|
1433
|
+
description:
|
|
1434
|
+
"Protocol Inspection Specification in a given namespace. If one already exists it will give an error",
|
|
1435
|
+
required: ["name", "namespace"],
|
|
1436
|
+
server_defaults: ["action"],
|
|
1437
|
+
minimal_config:
|
|
1438
|
+
'resource "xcsh_protocol_inspection" "example" {\n name = "example-protocol-inspection"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n enable_disable_compliance_checks {\n }\n disable_compliance_checks {\n }\n enable_compliance_checks {\n }\n}',
|
|
1439
|
+
dependencies: {
|
|
1440
|
+
requires: [],
|
|
1441
|
+
},
|
|
1442
|
+
import_syntax: "terraform import xcsh_protocol_inspection.example namespace/name",
|
|
1443
|
+
},
|
|
1444
|
+
protocol_policer: {
|
|
1445
|
+
category: "security",
|
|
1446
|
+
description:
|
|
1447
|
+
"Protocol_policer object, protocol_policer object contains list of L4 protocol match condition and corresponding traffic rate limits",
|
|
1448
|
+
required: ["name", "namespace"],
|
|
1449
|
+
minimal_config:
|
|
1450
|
+
'resource "xcsh_protocol_policer" "example" {\n name = "example-protocol-policer"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n protocol_policer {\n }\n policer {\n }\n protocol {\n }\n}',
|
|
1451
|
+
dependencies: {
|
|
1452
|
+
requires: [],
|
|
1453
|
+
},
|
|
1454
|
+
import_syntax: "terraform import xcsh_protocol_policer.example namespace/name",
|
|
1455
|
+
},
|
|
1456
|
+
proxy: {
|
|
1457
|
+
category: "networking",
|
|
1458
|
+
description: "Tcp loadbalancer create specification. configuration",
|
|
1459
|
+
required: ["name", "namespace", "connection_timeout"],
|
|
1460
|
+
minimal_config:
|
|
1461
|
+
'resource "xcsh_proxy" "example" {\n name = "example-proxy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n proxy_url = "`http://proxy.example.com:8080"`\n}',
|
|
1462
|
+
dependencies: {
|
|
1463
|
+
requires: [],
|
|
1464
|
+
},
|
|
1465
|
+
import_syntax: "terraform import xcsh_proxy.example namespace/name",
|
|
1466
|
+
},
|
|
1467
|
+
rate_limiter: {
|
|
1468
|
+
category: "security",
|
|
1469
|
+
description: "Rate_limiter creates a new object in the storage backend for metadata.namespace",
|
|
1470
|
+
required: ["name", "namespace"],
|
|
1471
|
+
server_defaults: ["user_identification"],
|
|
1472
|
+
minimal_config:
|
|
1473
|
+
'resource "xcsh_rate_limiter" "example" {\n name = "example-rate-limiter"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n limits {\n total_number = 100\n unit = "MINUTE"\n burst_multiplier = 10\n }\n}',
|
|
1474
|
+
dependencies: {
|
|
1475
|
+
requires: ["namespace"],
|
|
1476
|
+
},
|
|
1477
|
+
import_syntax: "terraform import xcsh_rate_limiter.example namespace/name",
|
|
1478
|
+
},
|
|
1479
|
+
rate_limiter_policy: {
|
|
1480
|
+
category: "security",
|
|
1481
|
+
description: "Rate limiter policy create specification. configuration",
|
|
1482
|
+
required: ["name", "namespace"],
|
|
1483
|
+
server_defaults: ["rules"],
|
|
1484
|
+
minimal_config:
|
|
1485
|
+
'resource "xcsh_rate_limiter_policy" "example" {\n name = "example-rate-limiter-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n any_server {\n }\n server_name_matcher {\n }\n server_selector {\n }\n}',
|
|
1486
|
+
dependencies: {
|
|
1487
|
+
requires: [],
|
|
1488
|
+
},
|
|
1489
|
+
import_syntax: "terraform import xcsh_rate_limiter_policy.example namespace/name",
|
|
1490
|
+
},
|
|
1491
|
+
route: {
|
|
1492
|
+
category: "load-balancing",
|
|
1493
|
+
description:
|
|
1494
|
+
"Route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests",
|
|
1495
|
+
required: ["name", "namespace"],
|
|
1496
|
+
minimal_config:
|
|
1497
|
+
'resource "xcsh_route" "example" {\n name = "example-route"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n routes {\n match {\n path {\n prefix = "/api/"\n }\n }\n route_destination {\n destinations {\n cluster {\n name = "api-cluster"\n namespace = "staging"\n }\n weight = 100\n }\n }\n }\n}',
|
|
1498
|
+
dependencies: {
|
|
1499
|
+
requires: ["namespace", "http_loadbalancer"],
|
|
1500
|
+
},
|
|
1501
|
+
import_syntax: "terraform import xcsh_route.example namespace/name",
|
|
1502
|
+
},
|
|
1503
|
+
secret_management_access: {
|
|
1504
|
+
category: "authentication",
|
|
1505
|
+
description: "Secret_management_access creates a new object in storage backend for metadata.namespace",
|
|
1506
|
+
required: ["name", "namespace", "provider_name"],
|
|
1507
|
+
minimal_config:
|
|
1508
|
+
'resource "xcsh_secret_management_access" "example" {\n name = "example-secret-management-access"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n access_info {\n }\n rest_auth_info {\n }\n basic_auth {\n }\n}',
|
|
1509
|
+
dependencies: {
|
|
1510
|
+
requires: [],
|
|
1511
|
+
},
|
|
1512
|
+
import_syntax: "terraform import xcsh_secret_management_access.example namespace/name",
|
|
1513
|
+
},
|
|
1514
|
+
securemesh_site: {
|
|
1515
|
+
category: "sites",
|
|
1516
|
+
description: "Deploying secure mesh edge sites with distributed security capabilities",
|
|
1517
|
+
required: ["name", "namespace", "address", "volterra_certified_hw"],
|
|
1518
|
+
minimal_config:
|
|
1519
|
+
'resource "xcsh_securemesh_site" "example" {\n name = "example-securemesh-site"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n generic {\n not_managed {\n node_list {\n hostname = "node1.example.com"\n public_ip = "203.0.113.10"\n type = "Control"\n }\n }\n }\n\n master_nodes_count = 1\n\n default_fleet_config {}\n\n disable_ha {}\n}',
|
|
1520
|
+
dependencies: {
|
|
1521
|
+
requires: [],
|
|
1522
|
+
},
|
|
1523
|
+
import_syntax: "terraform import xcsh_securemesh_site.example namespace/name",
|
|
1524
|
+
},
|
|
1525
|
+
securemesh_site_v2: {
|
|
1526
|
+
category: "sites",
|
|
1527
|
+
description: "Deploying secure mesh edge sites with enhanced security and networking features",
|
|
1528
|
+
required: ["name", "namespace"],
|
|
1529
|
+
minimal_config:
|
|
1530
|
+
'resource "xcsh_securemesh_site_v2" "example" {\n name = "example-securemesh-site-v2"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n performance_enhancement_mode {\n }\n perf_mode_l3_enhanced {\n }\n jumbo {\n }\n}',
|
|
1531
|
+
dependencies: {
|
|
1532
|
+
requires: [],
|
|
1533
|
+
},
|
|
1534
|
+
import_syntax: "terraform import xcsh_securemesh_site_v2.example namespace/name",
|
|
1535
|
+
},
|
|
1536
|
+
segment: {
|
|
1537
|
+
category: "networking",
|
|
1538
|
+
description: "Segment. configuration",
|
|
1539
|
+
required: ["name", "namespace"],
|
|
1540
|
+
minimal_config:
|
|
1541
|
+
'resource "xcsh_segment" "example" {\n name = "example-segment"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n disable_spec {\n }\n enable {\n }\n}',
|
|
1542
|
+
dependencies: {
|
|
1543
|
+
requires: [],
|
|
1544
|
+
},
|
|
1545
|
+
import_syntax: "terraform import xcsh_segment.example namespace/name",
|
|
1546
|
+
},
|
|
1547
|
+
sensitive_data_policy: {
|
|
1548
|
+
category: "security",
|
|
1549
|
+
description: "Sensitive_data_policy creates a new object in the storage backend for metadata.namespace",
|
|
1550
|
+
required: ["name", "namespace"],
|
|
1551
|
+
server_defaults: ["compliances", "disabled_predefined_data_types", "custom_data_types"],
|
|
1552
|
+
minimal_config:
|
|
1553
|
+
'resource "xcsh_sensitive_data_policy" "example" {\n name = "example-sensitive-data-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n custom_data_types {\n }\n custom_data_type_ref {\n }\n}',
|
|
1554
|
+
dependencies: {
|
|
1555
|
+
requires: [],
|
|
1556
|
+
},
|
|
1557
|
+
import_syntax: "terraform import xcsh_sensitive_data_policy.example namespace/name",
|
|
1558
|
+
},
|
|
1559
|
+
service_policy: {
|
|
1560
|
+
category: "security",
|
|
1561
|
+
description: "Service_policy creates a new object in the storage backend for metadata.namespace",
|
|
1562
|
+
required: ["name", "namespace"],
|
|
1563
|
+
oneof_groups: [
|
|
1564
|
+
{
|
|
1565
|
+
fields: ["allow_all_requests", "allow_list", "deny_all_requests", "deny_list", "rule_list"],
|
|
1566
|
+
},
|
|
1567
|
+
{
|
|
1568
|
+
fields: ["any_server", "server_name", "server_name_matcher", "server_selector"],
|
|
1569
|
+
},
|
|
1570
|
+
],
|
|
1571
|
+
server_defaults: ["port_matcher", "any_server"],
|
|
1572
|
+
minimal_config:
|
|
1573
|
+
'resource "xcsh_service_policy" "example" {\n name = "example-service-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n // One of the arguments from this list "allow_all_requests allow_list deny_all_requests deny_list rule_list" must be set\n\n rule_list {\n rules {\n metadata {\n name = "allow-api"\n }\n spec {\n action = "ALLOW"\n any_client {}\n any_ip {}\n path {\n prefix_values = ["/api/"]\n }\n }\n }\n }\n\n // One of the arguments from this list "any_server server_name server_name_matcher server_selector" must be set\n\n any_server {}\n}',
|
|
1574
|
+
dependencies: {
|
|
1575
|
+
requires: ["namespace"],
|
|
1576
|
+
},
|
|
1577
|
+
import_syntax: "terraform import xcsh_service_policy.example namespace/name",
|
|
1578
|
+
},
|
|
1579
|
+
service_policy_rule: {
|
|
1580
|
+
category: "security",
|
|
1581
|
+
description: "Service_policy_rule creates a new object in the storage backend for metadata.namespace",
|
|
1582
|
+
required: ["name", "namespace"],
|
|
1583
|
+
server_defaults: ["port_matcher"],
|
|
1584
|
+
minimal_config:
|
|
1585
|
+
'resource "xcsh_service_policy_rule" "example" {\n name = "example-service-policy-rule"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n any_asn {\n }\n any_client {\n }\n any_ip {\n }\n}',
|
|
1586
|
+
dependencies: {
|
|
1587
|
+
requires: [],
|
|
1588
|
+
},
|
|
1589
|
+
import_syntax: "terraform import xcsh_service_policy_rule.example namespace/name",
|
|
1590
|
+
},
|
|
1591
|
+
site: {
|
|
1592
|
+
category: "sites",
|
|
1593
|
+
description: "Virtual site object in given namespace",
|
|
1594
|
+
required: ["name", "namespace", "site_type"],
|
|
1595
|
+
minimal_config:
|
|
1596
|
+
'resource "xcsh_site" "example" {\n name = "example-site"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n site_selector {\n }\n}',
|
|
1597
|
+
dependencies: {
|
|
1598
|
+
requires: [],
|
|
1599
|
+
},
|
|
1600
|
+
import_syntax: "terraform import xcsh_site.example namespace/name",
|
|
1601
|
+
},
|
|
1602
|
+
site_mesh_group: {
|
|
1603
|
+
category: "sites",
|
|
1604
|
+
description: "Site Mesh Group in system namespace of user",
|
|
1605
|
+
required: ["name", "namespace"],
|
|
1606
|
+
minimal_config:
|
|
1607
|
+
'resource "xcsh_site_mesh_group" "example" {\n name = "example-site-mesh-group"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n type = "SITE_MESH_GROUP_TYPE_FULL_MESH"\n\n full_mesh {\n control_and_data_plane_mesh {}\n }\n\n hub {}\n\n virtual_site {\n name = "example-virtual-site"\n namespace = "staging"\n }\n}',
|
|
1608
|
+
dependencies: {
|
|
1609
|
+
requires: [],
|
|
1610
|
+
},
|
|
1611
|
+
import_syntax: "terraform import xcsh_site_mesh_group.example namespace/name",
|
|
1612
|
+
},
|
|
1613
|
+
srv6_network_slice: {
|
|
1614
|
+
category: "networking",
|
|
1615
|
+
description: "Srv6_network_slice creates a new object in the storage backend for metadata.namespace",
|
|
1616
|
+
required: [
|
|
1617
|
+
"name",
|
|
1618
|
+
"namespace",
|
|
1619
|
+
"connect_to_access_networks",
|
|
1620
|
+
"connect_to_enterprise_networks",
|
|
1621
|
+
"connect_to_internet",
|
|
1622
|
+
],
|
|
1623
|
+
minimal_config:
|
|
1624
|
+
'resource "xcsh_srv6_network_slice" "example" {\n name = "example-srv6-network-slice"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n}',
|
|
1625
|
+
dependencies: {
|
|
1626
|
+
requires: [],
|
|
1627
|
+
},
|
|
1628
|
+
import_syntax: "terraform import xcsh_srv6_network_slice.example namespace/name",
|
|
1629
|
+
},
|
|
1630
|
+
subnet: {
|
|
1631
|
+
category: "networking",
|
|
1632
|
+
description:
|
|
1633
|
+
"Subnet object contains configuration for an interface of a vm/pod. it is created in user or shared namespace. configuration",
|
|
1634
|
+
required: ["name", "namespace"],
|
|
1635
|
+
minimal_config:
|
|
1636
|
+
'resource "xcsh_subnet" "example" {\n name = "example-subnet"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n site_subnet_params {\n }\n dhcp {\n }\n site {\n }\n}',
|
|
1637
|
+
dependencies: {
|
|
1638
|
+
requires: [],
|
|
1639
|
+
},
|
|
1640
|
+
import_syntax: "terraform import xcsh_subnet.example namespace/name",
|
|
1641
|
+
},
|
|
1642
|
+
tcp_loadbalancer: {
|
|
1643
|
+
category: "load-balancing",
|
|
1644
|
+
description: "Load balancing TCP traffic across origin pools",
|
|
1645
|
+
required: ["name", "namespace"],
|
|
1646
|
+
oneof_groups: [
|
|
1647
|
+
{
|
|
1648
|
+
fields: [
|
|
1649
|
+
"advertise_custom",
|
|
1650
|
+
"advertise_on_public",
|
|
1651
|
+
"advertise_on_public_default_vip",
|
|
1652
|
+
"do_not_advertise",
|
|
1653
|
+
],
|
|
1654
|
+
},
|
|
1655
|
+
],
|
|
1656
|
+
server_defaults: [
|
|
1657
|
+
"dns_volterra_managed",
|
|
1658
|
+
"idle_timeout",
|
|
1659
|
+
"hash_policy_choice_round_robin",
|
|
1660
|
+
"no_sni",
|
|
1661
|
+
"retract_cluster",
|
|
1662
|
+
"service_policies_from_namespace",
|
|
1663
|
+
"tcp",
|
|
1664
|
+
],
|
|
1665
|
+
minimal_config:
|
|
1666
|
+
'resource "xcsh_tcp_loadbalancer" "example" {\n name = "example-tcp-loadbalancer"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n listen_port = 8443\n\n // One of the arguments from this list "advertise_custom advertise_on_public advertise_on_public_default_vip do_not_advertise" must be set\n\n advertise_on_public_default_vip {}\n\n origin_pools_weights {\n pool {\n name = "example-tcp-pool"\n namespace = "staging"\n }\n weight = 1\n }\n\n dns_volterra_managed = true\n\n retract_cluster {}\n}',
|
|
1667
|
+
dependencies: {
|
|
1668
|
+
requires: ["namespace", "origin_pool"],
|
|
1669
|
+
},
|
|
1670
|
+
import_syntax: "terraform import xcsh_tcp_loadbalancer.example namespace/name",
|
|
1671
|
+
},
|
|
1672
|
+
tenant_configuration: {
|
|
1673
|
+
category: "organization",
|
|
1674
|
+
description: "Tenant configuration specification. configuration",
|
|
1675
|
+
required: ["name", "namespace"],
|
|
1676
|
+
minimal_config:
|
|
1677
|
+
'resource "xcsh_tenant_configuration" "example" {\n name = "example-tenant-configuration"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n basic_configuration {\n }\n brute_force_detection {\n }\n brute_force_detection_settings {\n }\n}',
|
|
1678
|
+
dependencies: {
|
|
1679
|
+
requires: [],
|
|
1680
|
+
},
|
|
1681
|
+
import_syntax: "terraform import xcsh_tenant_configuration.example namespace/name",
|
|
1682
|
+
},
|
|
1683
|
+
trusted_ca_list: {
|
|
1684
|
+
category: "certificates",
|
|
1685
|
+
description: "Trusted certificate authority list management",
|
|
1686
|
+
required: ["name", "namespace", "trusted_ca_url"],
|
|
1687
|
+
minimal_config:
|
|
1688
|
+
'resource "xcsh_trusted_ca_list" "example" {\n name = "example-trusted-ca-list"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n trusted_ca_url = "string:///LS0tLS1CRUdJTi..."\n}',
|
|
1689
|
+
dependencies: {
|
|
1690
|
+
requires: [],
|
|
1691
|
+
},
|
|
1692
|
+
import_syntax: "terraform import xcsh_trusted_ca_list.example namespace/name",
|
|
1693
|
+
},
|
|
1694
|
+
tunnel: {
|
|
1695
|
+
category: "networking",
|
|
1696
|
+
description: "Tunnel in a given namespace. If one already exist it will give a error",
|
|
1697
|
+
required: ["name", "namespace", "tunnel_type"],
|
|
1698
|
+
minimal_config:
|
|
1699
|
+
'resource "xcsh_tunnel" "example" {\n name = "example-tunnel"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n tunnel_type = "IPSEC_PSK"\n}',
|
|
1700
|
+
dependencies: {
|
|
1701
|
+
requires: [],
|
|
1702
|
+
},
|
|
1703
|
+
import_syntax: "terraform import xcsh_tunnel.example namespace/name",
|
|
1704
|
+
},
|
|
1705
|
+
udp_loadbalancer: {
|
|
1706
|
+
category: "load-balancing",
|
|
1707
|
+
description: "Load balancing UDP traffic across origin pools",
|
|
1708
|
+
required: ["name", "namespace", "dns_volterra_managed", "enable_per_packet_load_balancing", "idle_timeout"],
|
|
1709
|
+
minimal_config:
|
|
1710
|
+
'resource "xcsh_udp_loadbalancer" "example" {\n name = "example-udp-loadbalancer"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n domains = ["dns.example.com"]\n listen_port = 53\n idle_timeout = 30000\n enable_per_packet_load_balancing = true\n\n dns_volterra_managed = true\n\n advertise_on_public_default_vip {}\n}',
|
|
1711
|
+
dependencies: {
|
|
1712
|
+
requires: ["namespace", "origin_pool"],
|
|
1713
|
+
},
|
|
1714
|
+
import_syntax: "terraform import xcsh_udp_loadbalancer.example namespace/name",
|
|
1715
|
+
},
|
|
1716
|
+
usb_policy: {
|
|
1717
|
+
category: "security",
|
|
1718
|
+
description: "New USB policy object",
|
|
1719
|
+
required: ["name", "namespace"],
|
|
1720
|
+
minimal_config:
|
|
1721
|
+
'resource "xcsh_usb_policy" "example" {\n name = "example-usb-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n allowed_devices {\n }\n}',
|
|
1722
|
+
dependencies: {
|
|
1723
|
+
requires: [],
|
|
1724
|
+
},
|
|
1725
|
+
import_syntax: "terraform import xcsh_usb_policy.example namespace/name",
|
|
1726
|
+
},
|
|
1727
|
+
user_identification: {
|
|
1728
|
+
category: "security",
|
|
1729
|
+
description: "User_identification creates a new object in the storage backend for metadata.namespace",
|
|
1730
|
+
required: ["name", "namespace"],
|
|
1731
|
+
minimal_config:
|
|
1732
|
+
'resource "xcsh_user_identification" "example" {\n name = "example-user-identification"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n rules {\n client_ip {}\n }\n}',
|
|
1733
|
+
dependencies: {
|
|
1734
|
+
requires: [],
|
|
1735
|
+
},
|
|
1736
|
+
import_syntax: "terraform import xcsh_user_identification.example namespace/name",
|
|
1737
|
+
},
|
|
1738
|
+
virtual_host: {
|
|
1739
|
+
category: "load-balancing",
|
|
1740
|
+
description: "Virtual host in a given namespace",
|
|
1741
|
+
required: [
|
|
1742
|
+
"name",
|
|
1743
|
+
"namespace",
|
|
1744
|
+
"add_location",
|
|
1745
|
+
"connection_idle_timeout",
|
|
1746
|
+
"disable_default_error_pages",
|
|
1747
|
+
"disable_dns_resolve",
|
|
1748
|
+
"idle_timeout",
|
|
1749
|
+
"max_request_header_size",
|
|
1750
|
+
"proxy",
|
|
1751
|
+
],
|
|
1752
|
+
minimal_config:
|
|
1753
|
+
'resource "xcsh_virtual_host" "example" {\n name = "example-virtual-host"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n domains = ["app.example.com"]\n proxy = "DNS_PROXY"\n idle_timeout = 30000\n connection_idle_timeout = 120000\n max_request_header_size = 32768\n add_location = false\n disable_dns_resolve = false\n disable_default_error_pages = false\n request_headers_to_remove = []\n response_headers_to_remove = []\n request_cookies_to_remove = []\n response_cookies_to_remove = []\n}',
|
|
1754
|
+
dependencies: {
|
|
1755
|
+
requires: [],
|
|
1756
|
+
},
|
|
1757
|
+
import_syntax: "terraform import xcsh_virtual_host.example namespace/name",
|
|
1758
|
+
},
|
|
1759
|
+
virtual_k8s: {
|
|
1760
|
+
category: "kubernetes",
|
|
1761
|
+
description: "Virtual_k8s will create the object in the storage backend for namespace metadata.namespace",
|
|
1762
|
+
required: ["name", "namespace"],
|
|
1763
|
+
minimal_config:
|
|
1764
|
+
'resource "xcsh_virtual_k8s" "example" {\n name = "example-virtual-k8s"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n default_flavor_ref {\n }\n disabled {\n }\n isolated {\n }\n}',
|
|
1765
|
+
dependencies: {
|
|
1766
|
+
requires: [],
|
|
1767
|
+
},
|
|
1768
|
+
import_syntax: "terraform import xcsh_virtual_k8s.example namespace/name",
|
|
1769
|
+
},
|
|
1770
|
+
virtual_network: {
|
|
1771
|
+
category: "networking",
|
|
1772
|
+
description: "Virtual network in given namespace",
|
|
1773
|
+
required: ["name", "namespace", "legacy_type"],
|
|
1774
|
+
minimal_config:
|
|
1775
|
+
'resource "xcsh_virtual_network" "example" {\n name = "example-virtual-network"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n legacy_type = "VIRTUAL_NETWORK_SITE_LOCAL"\n}',
|
|
1776
|
+
dependencies: {
|
|
1777
|
+
requires: [],
|
|
1778
|
+
},
|
|
1779
|
+
import_syntax: "terraform import xcsh_virtual_network.example namespace/name",
|
|
1780
|
+
},
|
|
1781
|
+
virtual_site: {
|
|
1782
|
+
category: "sites",
|
|
1783
|
+
description: "Virtual site object in given namespace",
|
|
1784
|
+
required: ["name", "namespace", "site_type"],
|
|
1785
|
+
minimal_config:
|
|
1786
|
+
'resource "xcsh_virtual_site" "example" {\n name = "example-virtual-site"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n site_type = "CUSTOMER_EDGE"\n\n site_selector {\n expressions = ["region in (us-west-2, us-east-1)"]\n }\n}',
|
|
1787
|
+
dependencies: {
|
|
1788
|
+
requires: [],
|
|
1789
|
+
},
|
|
1790
|
+
import_syntax: "terraform import xcsh_virtual_site.example namespace/name",
|
|
1791
|
+
},
|
|
1792
|
+
voltstack_site: {
|
|
1793
|
+
category: "sites",
|
|
1794
|
+
description: "Deploying Volterra stack sites for edge computing",
|
|
1795
|
+
required: ["name", "namespace", "address", "volterra_certified_hw"],
|
|
1796
|
+
minimal_config:
|
|
1797
|
+
'resource "xcsh_voltstack_site" "example" {\n name = "example-voltstack-site"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n volterra_certified_hw = "kvm-voltstack-combo"\n worker_nodes = []\n address = "123 Main St, Example City, EX 12345"\n\n k8s_cluster {\n name = "example-k8s-cluster"\n namespace = "staging"\n }\n}',
|
|
1798
|
+
dependencies: {
|
|
1799
|
+
requires: [],
|
|
1800
|
+
},
|
|
1801
|
+
import_syntax: "terraform import xcsh_voltstack_site.example namespace/name",
|
|
1802
|
+
},
|
|
1803
|
+
waf_exclusion_policy: {
|
|
1804
|
+
category: "security",
|
|
1805
|
+
description: "WAF exclusion policy",
|
|
1806
|
+
required: ["name", "namespace"],
|
|
1807
|
+
oneof_groups: [
|
|
1808
|
+
{
|
|
1809
|
+
parent: "waf_exclusion_rules",
|
|
1810
|
+
fields: ["any_domain", "exact_value", "suffix_value"],
|
|
1811
|
+
},
|
|
1812
|
+
{
|
|
1813
|
+
parent: "waf_exclusion_rules",
|
|
1814
|
+
fields: ["any_path", "path_prefix", "path_regex"],
|
|
1815
|
+
},
|
|
1816
|
+
],
|
|
1817
|
+
minimal_config:
|
|
1818
|
+
'resource "xcsh_waf_exclusion_policy" "example" {\n name = "example-waf-exclusion-policy"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n waf_exclusion_rules {\n // One of the arguments from this list "any_domain exact_value suffix_value" must be set\n\n any_domain {}\n\n // One of the arguments from this list "any_path path_prefix path_regex" must be set\n\n any_path {}\n }\n}',
|
|
1819
|
+
dependencies: {
|
|
1820
|
+
requires: [],
|
|
1821
|
+
},
|
|
1822
|
+
import_syntax: "terraform import xcsh_waf_exclusion_policy.example namespace/name",
|
|
1823
|
+
},
|
|
1824
|
+
workload: {
|
|
1825
|
+
category: "kubernetes",
|
|
1826
|
+
description: "Workload. configuration",
|
|
1827
|
+
required: ["name", "namespace"],
|
|
1828
|
+
oneof_groups: [
|
|
1829
|
+
{
|
|
1830
|
+
fields: ["job", "service", "stateful_service"],
|
|
1831
|
+
},
|
|
1832
|
+
],
|
|
1833
|
+
minimal_config:
|
|
1834
|
+
'resource "xcsh_workload" "example" {\n name = "example-workload"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n // One of the arguments from this list "job service stateful_service" must be set\n\n service {\n containers {\n name = "web"\n image {\n name = "nginx"\n pull_policy = "IMAGE_PULL_POLICY_ALWAYS"\n public {}\n }\n }\n deploy_options {\n default_virtual_sites {}\n }\n }\n}',
|
|
1835
|
+
dependencies: {
|
|
1836
|
+
requires: [],
|
|
1837
|
+
},
|
|
1838
|
+
import_syntax: "terraform import xcsh_workload.example namespace/name",
|
|
1839
|
+
},
|
|
1840
|
+
workload_flavor: {
|
|
1841
|
+
category: "kubernetes",
|
|
1842
|
+
description: "Workload_flavor",
|
|
1843
|
+
required: ["name", "namespace", "ephemeral_storage", "memory", "vcpus"],
|
|
1844
|
+
minimal_config:
|
|
1845
|
+
'resource "xcsh_workload_flavor" "example" {\n name = "example-workload-flavor"\n namespace = "staging"\n\n labels = {\n environment = "production"\n managed_by = "terraform"\n }\n\n annotations = {\n "owner" = "platform-team"\n }\n\n vcpus = 1\n memory = "1024"\n ephemeral_storage = "1024"\n}',
|
|
1846
|
+
dependencies: {
|
|
1847
|
+
requires: [],
|
|
1848
|
+
},
|
|
1849
|
+
import_syntax: "terraform import xcsh_workload_flavor.example namespace/name",
|
|
1850
|
+
},
|
|
1851
|
+
},
|
|
1852
|
+
} as const;
|