@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.
Files changed (899) hide show
  1. package/CHANGELOG.md +7073 -0
  2. package/README.md +14 -0
  3. package/examples/README.md +21 -0
  4. package/examples/custom-tools/README.md +109 -0
  5. package/examples/custom-tools/hello/index.ts +20 -0
  6. package/examples/custom-tools/todo/index.ts +206 -0
  7. package/examples/extensions/README.md +143 -0
  8. package/examples/extensions/api-demo.ts +89 -0
  9. package/examples/extensions/chalk-logger.ts +25 -0
  10. package/examples/extensions/hello.ts +32 -0
  11. package/examples/extensions/pirate.ts +43 -0
  12. package/examples/extensions/plan-mode.ts +551 -0
  13. package/examples/extensions/reload-runtime.ts +37 -0
  14. package/examples/extensions/todo.ts +296 -0
  15. package/examples/extensions/tools.ts +145 -0
  16. package/examples/extensions/with-deps/index.ts +36 -0
  17. package/examples/extensions/with-deps/package-lock.json +31 -0
  18. package/examples/extensions/with-deps/package.json +16 -0
  19. package/examples/hooks/README.md +56 -0
  20. package/examples/hooks/auto-commit-on-exit.ts +48 -0
  21. package/examples/hooks/confirm-destructive.ts +58 -0
  22. package/examples/hooks/custom-compaction.ts +115 -0
  23. package/examples/hooks/dirty-repo-guard.ts +51 -0
  24. package/examples/hooks/file-trigger.ts +40 -0
  25. package/examples/hooks/git-checkpoint.ts +52 -0
  26. package/examples/hooks/handoff.ts +149 -0
  27. package/examples/hooks/permission-gate.ts +33 -0
  28. package/examples/hooks/protected-paths.ts +29 -0
  29. package/examples/hooks/qna.ts +118 -0
  30. package/examples/hooks/status-line.ts +39 -0
  31. package/examples/sdk/01-minimal.ts +21 -0
  32. package/examples/sdk/02-custom-model.ts +49 -0
  33. package/examples/sdk/03-custom-prompt.ts +43 -0
  34. package/examples/sdk/04-skills.ts +43 -0
  35. package/examples/sdk/06-extensions.ts +80 -0
  36. package/examples/sdk/06-hooks.ts +61 -0
  37. package/examples/sdk/07-context-files.ts +35 -0
  38. package/examples/sdk/08-prompt-templates.ts +41 -0
  39. package/examples/sdk/08-slash-commands.ts +46 -0
  40. package/examples/sdk/09-api-keys-and-oauth.ts +54 -0
  41. package/examples/sdk/11-sessions.ts +47 -0
  42. package/examples/sdk/README.md +172 -0
  43. package/package.json +539 -0
  44. package/scripts/build-info/resolvers.ts +51 -0
  45. package/scripts/capture-ax-fixture.ts +84 -0
  46. package/scripts/capture-login-fixture.ts +30 -0
  47. package/scripts/check-workflow-field-coverage.ts +101 -0
  48. package/scripts/extension-uat-harness.ts +340 -0
  49. package/scripts/format-prompts.ts +68 -0
  50. package/scripts/generate-api-spec-index.ts +580 -0
  51. package/scripts/generate-branding-index.ts +81 -0
  52. package/scripts/generate-build-info.ts +106 -0
  53. package/scripts/generate-console-catalog.ts +88 -0
  54. package/scripts/generate-console-field-metadata.ts +74 -0
  55. package/scripts/generate-docs-index.ts +40 -0
  56. package/scripts/generate-template.ts +32 -0
  57. package/scripts/generate-terraform-index.ts +81 -0
  58. package/scripts/mermaid-gallery.ts +132 -0
  59. package/scripts/uat-matrix-modalities.ts +451 -0
  60. package/scripts/uat-matrix-report.ts +175 -0
  61. package/scripts/uat-matrix.ts +353 -0
  62. package/src/async/index.ts +2 -0
  63. package/src/async/job-manager.ts +416 -0
  64. package/src/async/support.ts +5 -0
  65. package/src/autoresearch/apply-contract-to-state.ts +1 -0
  66. package/src/autoresearch/command-resume.md +17 -0
  67. package/src/autoresearch/contract.ts +205 -0
  68. package/src/autoresearch/dashboard.ts +374 -0
  69. package/src/autoresearch/git.ts +191 -0
  70. package/src/autoresearch/helpers.ts +328 -0
  71. package/src/autoresearch/index.ts +402 -0
  72. package/src/autoresearch/prompt.md +236 -0
  73. package/src/autoresearch/resume-message.md +16 -0
  74. package/src/autoresearch/state.ts +303 -0
  75. package/src/autoresearch/tools/init-experiment.ts +400 -0
  76. package/src/autoresearch/tools/log-experiment.ts +793 -0
  77. package/src/autoresearch/tools/run-experiment.ts +679 -0
  78. package/src/autoresearch/types.ts +114 -0
  79. package/src/browser/acquire.ts +249 -0
  80. package/src/browser/actions.ts +126 -0
  81. package/src/browser/auth.ts +176 -0
  82. package/src/browser/ax.ts +134 -0
  83. package/src/browser/cdp-core.ts +45 -0
  84. package/src/browser/cdp-page-actions.ts +51 -0
  85. package/src/browser/chrome-locate.ts +66 -0
  86. package/src/browser/dom-context.ts +89 -0
  87. package/src/browser/dt-context.ts +100 -0
  88. package/src/browser/extension-bridge.ts +182 -0
  89. package/src/browser/extension-page-actions.ts +397 -0
  90. package/src/browser/extension-provider.ts +373 -0
  91. package/src/browser/index.ts +17 -0
  92. package/src/browser/input-commit.ts +74 -0
  93. package/src/browser/native-messaging.ts +20 -0
  94. package/src/browser/page-actions.ts +18 -0
  95. package/src/browser/provider.ts +155 -0
  96. package/src/browser/resolver.ts +126 -0
  97. package/src/browser/selector.ts +40 -0
  98. package/src/bun-imports.d.ts +22 -0
  99. package/src/capability/context-file.ts +43 -0
  100. package/src/capability/extension-module.ts +34 -0
  101. package/src/capability/extension.ts +47 -0
  102. package/src/capability/fs.ts +107 -0
  103. package/src/capability/hook.ts +40 -0
  104. package/src/capability/index.ts +438 -0
  105. package/src/capability/instruction.ts +37 -0
  106. package/src/capability/mcp.ts +74 -0
  107. package/src/capability/prompt.ts +35 -0
  108. package/src/capability/rule.ts +224 -0
  109. package/src/capability/settings.ts +34 -0
  110. package/src/capability/skill.ts +50 -0
  111. package/src/capability/slash-command.ts +40 -0
  112. package/src/capability/ssh.ts +41 -0
  113. package/src/capability/system-prompt.ts +34 -0
  114. package/src/capability/tool.ts +38 -0
  115. package/src/capability/types.ts +168 -0
  116. package/src/cli/agents-cli.ts +138 -0
  117. package/src/cli/args.ts +286 -0
  118. package/src/cli/chrome-cli.ts +88 -0
  119. package/src/cli/classify-install-target.ts +50 -0
  120. package/src/cli/commands/init-xdg.ts +27 -0
  121. package/src/cli/config-cli.ts +418 -0
  122. package/src/cli/file-processor.ts +121 -0
  123. package/src/cli/grep-cli.ts +160 -0
  124. package/src/cli/grievances-cli.ts +78 -0
  125. package/src/cli/initial-message.ts +58 -0
  126. package/src/cli/jupyter-cli.ts +106 -0
  127. package/src/cli/list-models.ts +128 -0
  128. package/src/cli/plugin-cli.ts +964 -0
  129. package/src/cli/read-cli.ts +68 -0
  130. package/src/cli/session-picker.ts +52 -0
  131. package/src/cli/setup-cli.ts +479 -0
  132. package/src/cli/shell-cli.ts +174 -0
  133. package/src/cli/ssh-cli.ts +179 -0
  134. package/src/cli/stats-cli.ts +182 -0
  135. package/src/cli/update-cli.ts +446 -0
  136. package/src/cli/web-search-cli.ts +203 -0
  137. package/src/cli.ts +123 -0
  138. package/src/commands/agents.ts +57 -0
  139. package/src/commands/chrome-host.ts +71 -0
  140. package/src/commands/chrome.ts +28 -0
  141. package/src/commands/commit.ts +36 -0
  142. package/src/commands/config.ts +51 -0
  143. package/src/commands/grep.ts +48 -0
  144. package/src/commands/grievances.ts +20 -0
  145. package/src/commands/jupyter.ts +32 -0
  146. package/src/commands/launch.ts +144 -0
  147. package/src/commands/plugin.ts +78 -0
  148. package/src/commands/read.ts +33 -0
  149. package/src/commands/setup.ts +42 -0
  150. package/src/commands/shell.ts +29 -0
  151. package/src/commands/ssh.ts +60 -0
  152. package/src/commands/stats.ts +29 -0
  153. package/src/commands/update.ts +21 -0
  154. package/src/commands/web-search.ts +46 -0
  155. package/src/commit/agentic/agent.ts +314 -0
  156. package/src/commit/agentic/fallback.ts +96 -0
  157. package/src/commit/agentic/index.ts +354 -0
  158. package/src/commit/agentic/prompts/analyze-file.md +22 -0
  159. package/src/commit/agentic/prompts/session-user.md +25 -0
  160. package/src/commit/agentic/prompts/split-confirm.md +1 -0
  161. package/src/commit/agentic/prompts/system.md +38 -0
  162. package/src/commit/agentic/state.ts +60 -0
  163. package/src/commit/agentic/tools/analyze-file.ts +127 -0
  164. package/src/commit/agentic/tools/git-file-diff.ts +191 -0
  165. package/src/commit/agentic/tools/git-hunk.ts +50 -0
  166. package/src/commit/agentic/tools/git-overview.ts +81 -0
  167. package/src/commit/agentic/tools/index.ts +54 -0
  168. package/src/commit/agentic/tools/propose-changelog.ts +139 -0
  169. package/src/commit/agentic/tools/propose-commit.ts +122 -0
  170. package/src/commit/agentic/tools/recent-commits.ts +81 -0
  171. package/src/commit/agentic/tools/schemas.ts +31 -0
  172. package/src/commit/agentic/tools/split-commit.ts +251 -0
  173. package/src/commit/agentic/topo-sort.ts +44 -0
  174. package/src/commit/agentic/trivial.ts +51 -0
  175. package/src/commit/agentic/validation.ts +183 -0
  176. package/src/commit/analysis/conventional.ts +122 -0
  177. package/src/commit/analysis/index.ts +4 -0
  178. package/src/commit/analysis/scope.ts +242 -0
  179. package/src/commit/analysis/summary.ts +105 -0
  180. package/src/commit/analysis/validation.ts +66 -0
  181. package/src/commit/changelog/detect.ts +40 -0
  182. package/src/commit/changelog/generate.ts +101 -0
  183. package/src/commit/changelog/index.ts +234 -0
  184. package/src/commit/changelog/parse.ts +44 -0
  185. package/src/commit/cli.ts +85 -0
  186. package/src/commit/git/diff.ts +148 -0
  187. package/src/commit/index.ts +5 -0
  188. package/src/commit/map-reduce/index.ts +69 -0
  189. package/src/commit/map-reduce/map-phase.ts +193 -0
  190. package/src/commit/map-reduce/reduce-phase.ts +108 -0
  191. package/src/commit/map-reduce/utils.ts +9 -0
  192. package/src/commit/message.ts +11 -0
  193. package/src/commit/model-selection.ts +66 -0
  194. package/src/commit/pipeline.ts +242 -0
  195. package/src/commit/prompts/analysis-system.md +148 -0
  196. package/src/commit/prompts/analysis-user.md +38 -0
  197. package/src/commit/prompts/changelog-system.md +50 -0
  198. package/src/commit/prompts/changelog-user.md +18 -0
  199. package/src/commit/prompts/file-observer-system.md +24 -0
  200. package/src/commit/prompts/file-observer-user.md +8 -0
  201. package/src/commit/prompts/reduce-system.md +50 -0
  202. package/src/commit/prompts/reduce-user.md +17 -0
  203. package/src/commit/prompts/summary-retry.md +3 -0
  204. package/src/commit/prompts/summary-system.md +38 -0
  205. package/src/commit/prompts/summary-user.md +13 -0
  206. package/src/commit/prompts/types-description.md +2 -0
  207. package/src/commit/types.ts +118 -0
  208. package/src/commit/utils/exclusions.ts +42 -0
  209. package/src/commit/utils.ts +44 -0
  210. package/src/config/auto-config.ts +698 -0
  211. package/src/config/context-schema.json +115 -0
  212. package/src/config/file-lock.ts +121 -0
  213. package/src/config/keybindings.ts +493 -0
  214. package/src/config/mcp-schema.json +230 -0
  215. package/src/config/model-equivalence.ts +675 -0
  216. package/src/config/model-registry.ts +2265 -0
  217. package/src/config/model-resolver.ts +1289 -0
  218. package/src/config/prompt-templates.ts +271 -0
  219. package/src/config/resolve-config-value.ts +110 -0
  220. package/src/config/settings-schema.ts +2155 -0
  221. package/src/config/settings.ts +730 -0
  222. package/src/config.ts +418 -0
  223. package/src/cursor.ts +323 -0
  224. package/src/dap/client.ts +674 -0
  225. package/src/dap/config.ts +150 -0
  226. package/src/dap/defaults.json +211 -0
  227. package/src/dap/index.ts +4 -0
  228. package/src/dap/session.ts +1255 -0
  229. package/src/dap/types.ts +600 -0
  230. package/src/debug/index.ts +440 -0
  231. package/src/debug/log-formatting.ts +58 -0
  232. package/src/debug/log-viewer.ts +908 -0
  233. package/src/debug/profiler.ts +158 -0
  234. package/src/debug/report-bundle.ts +365 -0
  235. package/src/debug/system-info.ts +107 -0
  236. package/src/discovery/agents-md.ts +67 -0
  237. package/src/discovery/agents.ts +219 -0
  238. package/src/discovery/builtin.ts +851 -0
  239. package/src/discovery/claude-plugins.ts +297 -0
  240. package/src/discovery/claude.ts +543 -0
  241. package/src/discovery/cline.ts +83 -0
  242. package/src/discovery/codex.ts +535 -0
  243. package/src/discovery/cursor.ts +220 -0
  244. package/src/discovery/gemini.ts +396 -0
  245. package/src/discovery/github.ts +118 -0
  246. package/src/discovery/helpers.ts +934 -0
  247. package/src/discovery/index.ts +79 -0
  248. package/src/discovery/language.ts +46 -0
  249. package/src/discovery/mcp-json.ts +171 -0
  250. package/src/discovery/opencode.ts +393 -0
  251. package/src/discovery/plugin-dir-roots.ts +28 -0
  252. package/src/discovery/ssh.ts +153 -0
  253. package/src/discovery/substitute-plugin-root.ts +29 -0
  254. package/src/discovery/vscode.ts +105 -0
  255. package/src/discovery/windsurf.ts +147 -0
  256. package/src/edit/diff.ts +818 -0
  257. package/src/edit/index.ts +481 -0
  258. package/src/edit/line-hash.ts +67 -0
  259. package/src/edit/modes/chunk.ts +762 -0
  260. package/src/edit/modes/hashline.ts +1366 -0
  261. package/src/edit/modes/patch.ts +1791 -0
  262. package/src/edit/modes/replace.ts +1115 -0
  263. package/src/edit/normalize.ts +375 -0
  264. package/src/edit/renderer.ts +627 -0
  265. package/src/exa/factory.ts +61 -0
  266. package/src/exa/index.ts +27 -0
  267. package/src/exa/mcp-client.ts +293 -0
  268. package/src/exa/render.ts +232 -0
  269. package/src/exa/researcher.ts +47 -0
  270. package/src/exa/search.ts +86 -0
  271. package/src/exa/types.ts +166 -0
  272. package/src/exa/websets.ts +247 -0
  273. package/src/exec/bash-executor.ts +332 -0
  274. package/src/exec/exec.ts +53 -0
  275. package/src/exec/idle-timeout-watchdog.ts +126 -0
  276. package/src/exec/non-interactive-env.ts +48 -0
  277. package/src/export/custom-share.ts +65 -0
  278. package/src/export/html/index.ts +161 -0
  279. package/src/export/html/template.css +1001 -0
  280. package/src/export/html/template.generated.ts +2 -0
  281. package/src/export/html/template.html +46 -0
  282. package/src/export/html/template.js +1950 -0
  283. package/src/export/html/template.macro.ts +24 -0
  284. package/src/export/html/vendor/highlight.min.js +1213 -0
  285. package/src/export/html/vendor/marked.min.js +6 -0
  286. package/src/export/ttsr.ts +434 -0
  287. package/src/extensibility/custom-commands/bundled/ci-green/index.ts +25 -0
  288. package/src/extensibility/custom-commands/bundled/review/index.ts +456 -0
  289. package/src/extensibility/custom-commands/index.ts +2 -0
  290. package/src/extensibility/custom-commands/loader.ts +236 -0
  291. package/src/extensibility/custom-commands/types.ts +111 -0
  292. package/src/extensibility/custom-tools/index.ts +7 -0
  293. package/src/extensibility/custom-tools/loader.ts +238 -0
  294. package/src/extensibility/custom-tools/types.ts +251 -0
  295. package/src/extensibility/custom-tools/wrapper.ts +47 -0
  296. package/src/extensibility/extensions/index.ts +15 -0
  297. package/src/extensibility/extensions/loader.ts +572 -0
  298. package/src/extensibility/extensions/runner.ts +848 -0
  299. package/src/extensibility/extensions/types.ts +1394 -0
  300. package/src/extensibility/extensions/wrapper.ts +191 -0
  301. package/src/extensibility/hooks/index.ts +5 -0
  302. package/src/extensibility/hooks/loader.ts +255 -0
  303. package/src/extensibility/hooks/runner.ts +425 -0
  304. package/src/extensibility/hooks/tool-wrapper.ts +108 -0
  305. package/src/extensibility/hooks/types.ts +826 -0
  306. package/src/extensibility/plugins/doctor.ts +66 -0
  307. package/src/extensibility/plugins/git-url.ts +281 -0
  308. package/src/extensibility/plugins/index.ts +9 -0
  309. package/src/extensibility/plugins/installer.ts +192 -0
  310. package/src/extensibility/plugins/loader.ts +267 -0
  311. package/src/extensibility/plugins/manager.ts +731 -0
  312. package/src/extensibility/plugins/marketplace/cache.ts +136 -0
  313. package/src/extensibility/plugins/marketplace/fetcher.ts +318 -0
  314. package/src/extensibility/plugins/marketplace/index.ts +6 -0
  315. package/src/extensibility/plugins/marketplace/manager.ts +781 -0
  316. package/src/extensibility/plugins/marketplace/prerequisites.ts +255 -0
  317. package/src/extensibility/plugins/marketplace/registry.ts +196 -0
  318. package/src/extensibility/plugins/marketplace/source-resolver.ts +147 -0
  319. package/src/extensibility/plugins/marketplace/types.ts +201 -0
  320. package/src/extensibility/plugins/parser.ts +105 -0
  321. package/src/extensibility/plugins/types.ts +194 -0
  322. package/src/extensibility/skills.ts +269 -0
  323. package/src/extensibility/slash-commands.ts +246 -0
  324. package/src/extensibility/tool-proxy.ts +25 -0
  325. package/src/extensibility/utils.ts +38 -0
  326. package/src/index.ts +61 -0
  327. package/src/internal-urls/agent-protocol.ts +136 -0
  328. package/src/internal-urls/api-catalog-resolve.ts +495 -0
  329. package/src/internal-urls/api-catalog-types.ts +94 -0
  330. package/src/internal-urls/api-spec-resolve.ts +1036 -0
  331. package/src/internal-urls/api-spec-types.ts +239 -0
  332. package/src/internal-urls/artifact-protocol.ts +97 -0
  333. package/src/internal-urls/branding-index.generated.ts +88 -0
  334. package/src/internal-urls/build-info-runtime.ts +302 -0
  335. package/src/internal-urls/build-info.generated.ts +33 -0
  336. package/src/internal-urls/computer-profile.ts +692 -0
  337. package/src/internal-urls/console-catalog-types.ts +21 -0
  338. package/src/internal-urls/console-catalog.generated.ts +532 -0
  339. package/src/internal-urls/console-field-metadata-types.ts +59 -0
  340. package/src/internal-urls/console-field-metadata.generated.ts +4841 -0
  341. package/src/internal-urls/console-resolve.ts +178 -0
  342. package/src/internal-urls/docs-index.generated.ts +698 -0
  343. package/src/internal-urls/extension-api.md +147 -0
  344. package/src/internal-urls/index.ts +46 -0
  345. package/src/internal-urls/jobs-protocol.ts +119 -0
  346. package/src/internal-urls/json-query.ts +126 -0
  347. package/src/internal-urls/local-protocol.ts +206 -0
  348. package/src/internal-urls/mcp-protocol.ts +156 -0
  349. package/src/internal-urls/memory-protocol.ts +133 -0
  350. package/src/internal-urls/parse.ts +72 -0
  351. package/src/internal-urls/profile-collectors.ts +106 -0
  352. package/src/internal-urls/router.ts +55 -0
  353. package/src/internal-urls/rule-protocol.ts +55 -0
  354. package/src/internal-urls/skill-protocol.ts +111 -0
  355. package/src/internal-urls/terraform-index.generated.ts +1852 -0
  356. package/src/internal-urls/terraform-resolve.ts +184 -0
  357. package/src/internal-urls/terraform-types.ts +45 -0
  358. package/src/internal-urls/types.ts +52 -0
  359. package/src/internal-urls/user-profile.ts +363 -0
  360. package/src/internal-urls/xcsh-protocol.ts +644 -0
  361. package/src/ipy/cancellation.ts +28 -0
  362. package/src/ipy/executor.ts +1155 -0
  363. package/src/ipy/gateway-coordinator.ts +424 -0
  364. package/src/ipy/kernel.ts +1091 -0
  365. package/src/ipy/modules.ts +144 -0
  366. package/src/ipy/prelude.py +849 -0
  367. package/src/ipy/prelude.ts +3 -0
  368. package/src/ipy/runtime.ts +221 -0
  369. package/src/locales/ar.json +512 -0
  370. package/src/locales/de.json +512 -0
  371. package/src/locales/en.json +549 -0
  372. package/src/locales/es.json +512 -0
  373. package/src/locales/fr.json +512 -0
  374. package/src/locales/hi.json +512 -0
  375. package/src/locales/index.ts +29 -0
  376. package/src/locales/it.json +512 -0
  377. package/src/locales/ja.json +512 -0
  378. package/src/locales/ko.json +512 -0
  379. package/src/locales/pt-br.json +512 -0
  380. package/src/locales/th.json +512 -0
  381. package/src/locales/zh-cn.json +512 -0
  382. package/src/locales/zh-tw.json +512 -0
  383. package/src/lsp/client.ts +941 -0
  384. package/src/lsp/clients/biome-client.ts +202 -0
  385. package/src/lsp/clients/index.ts +50 -0
  386. package/src/lsp/clients/lsp-linter-client.ts +93 -0
  387. package/src/lsp/clients/swiftlint-client.ts +120 -0
  388. package/src/lsp/config.ts +418 -0
  389. package/src/lsp/defaults.json +999 -0
  390. package/src/lsp/edits.ts +109 -0
  391. package/src/lsp/index.ts +1746 -0
  392. package/src/lsp/lspmux.ts +233 -0
  393. package/src/lsp/render.ts +692 -0
  394. package/src/lsp/startup-events.ts +13 -0
  395. package/src/lsp/types.ts +444 -0
  396. package/src/lsp/utils.ts +691 -0
  397. package/src/main.ts +944 -0
  398. package/src/mcp/client.ts +482 -0
  399. package/src/mcp/config-writer.ts +225 -0
  400. package/src/mcp/config.ts +365 -0
  401. package/src/mcp/discoverable-tool-metadata.ts +202 -0
  402. package/src/mcp/index.ts +29 -0
  403. package/src/mcp/json-rpc.ts +84 -0
  404. package/src/mcp/loader.ts +124 -0
  405. package/src/mcp/manager.ts +1152 -0
  406. package/src/mcp/oauth-discovery.ts +349 -0
  407. package/src/mcp/oauth-flow.ts +387 -0
  408. package/src/mcp/render.ts +157 -0
  409. package/src/mcp/smithery-auth.ts +104 -0
  410. package/src/mcp/smithery-connect.ts +145 -0
  411. package/src/mcp/smithery-registry.ts +477 -0
  412. package/src/mcp/tool-bridge.ts +417 -0
  413. package/src/mcp/tool-cache.ts +117 -0
  414. package/src/mcp/transports/http.ts +475 -0
  415. package/src/mcp/transports/index.ts +6 -0
  416. package/src/mcp/transports/stdio.ts +325 -0
  417. package/src/mcp/types.ts +423 -0
  418. package/src/memories/index.ts +1115 -0
  419. package/src/memories/storage.ts +577 -0
  420. package/src/modes/acp/acp-agent.ts +1361 -0
  421. package/src/modes/acp/acp-event-mapper.ts +538 -0
  422. package/src/modes/acp/acp-mode.ts +15 -0
  423. package/src/modes/acp/index.ts +2 -0
  424. package/src/modes/components/agent-dashboard.ts +1124 -0
  425. package/src/modes/components/assistant-message.ts +213 -0
  426. package/src/modes/components/bash-execution.ts +345 -0
  427. package/src/modes/components/bordered-loader.ts +41 -0
  428. package/src/modes/components/branch-summary-message.ts +45 -0
  429. package/src/modes/components/btw-panel.ts +103 -0
  430. package/src/modes/components/compaction-summary-message.ts +51 -0
  431. package/src/modes/components/context-add-wizard.ts +534 -0
  432. package/src/modes/components/countdown-timer.ts +75 -0
  433. package/src/modes/components/custom-editor.ts +238 -0
  434. package/src/modes/components/custom-message.ts +91 -0
  435. package/src/modes/components/diff.ts +210 -0
  436. package/src/modes/components/dynamic-border.ts +25 -0
  437. package/src/modes/components/extensions/extension-dashboard.ts +326 -0
  438. package/src/modes/components/extensions/extension-list.ts +492 -0
  439. package/src/modes/components/extensions/index.ts +9 -0
  440. package/src/modes/components/extensions/inspector-panel.ts +317 -0
  441. package/src/modes/components/extensions/state-manager.ts +587 -0
  442. package/src/modes/components/extensions/types.ts +191 -0
  443. package/src/modes/components/footer.ts +262 -0
  444. package/src/modes/components/gutter-block.ts +315 -0
  445. package/src/modes/components/history-search.ts +158 -0
  446. package/src/modes/components/hook-editor.ts +151 -0
  447. package/src/modes/components/hook-input.ts +81 -0
  448. package/src/modes/components/hook-message.ts +100 -0
  449. package/src/modes/components/hook-selector.ts +192 -0
  450. package/src/modes/components/index.ts +36 -0
  451. package/src/modes/components/keybinding-hints.ts +65 -0
  452. package/src/modes/components/login-dialog.ts +164 -0
  453. package/src/modes/components/mcp-add-wizard.ts +1314 -0
  454. package/src/modes/components/model-selector.ts +946 -0
  455. package/src/modes/components/oauth-selector.ts +211 -0
  456. package/src/modes/components/plugin-selector.ts +95 -0
  457. package/src/modes/components/plugin-settings.ts +477 -0
  458. package/src/modes/components/plugins/index.ts +5 -0
  459. package/src/modes/components/plugins/plugin-dashboard.ts +523 -0
  460. package/src/modes/components/plugins/plugin-inspector-pane.ts +84 -0
  461. package/src/modes/components/plugins/plugin-list-pane.ts +109 -0
  462. package/src/modes/components/plugins/state-manager.ts +229 -0
  463. package/src/modes/components/plugins/types.ts +51 -0
  464. package/src/modes/components/plugins/utils.ts +6 -0
  465. package/src/modes/components/python-execution.ts +244 -0
  466. package/src/modes/components/queue-mode-selector.ts +56 -0
  467. package/src/modes/components/read-tool-group.ts +137 -0
  468. package/src/modes/components/session-observer-overlay.ts +483 -0
  469. package/src/modes/components/session-selector.ts +343 -0
  470. package/src/modes/components/settings-defs.ts +568 -0
  471. package/src/modes/components/settings-selector.ts +641 -0
  472. package/src/modes/components/show-images-selector.ts +45 -0
  473. package/src/modes/components/skill-message.ts +90 -0
  474. package/src/modes/components/status-line/context-gradient.ts +64 -0
  475. package/src/modes/components/status-line/git-utils.ts +42 -0
  476. package/src/modes/components/status-line/hex-ansi.ts +29 -0
  477. package/src/modes/components/status-line/index.ts +4 -0
  478. package/src/modes/components/status-line/presets.ts +174 -0
  479. package/src/modes/components/status-line/segments.ts +494 -0
  480. package/src/modes/components/status-line/separators.ts +55 -0
  481. package/src/modes/components/status-line/token-rate.ts +66 -0
  482. package/src/modes/components/status-line/types.ts +96 -0
  483. package/src/modes/components/status-line-segment-editor.ts +361 -0
  484. package/src/modes/components/status-line.ts +729 -0
  485. package/src/modes/components/theme-selector.ts +63 -0
  486. package/src/modes/components/thinking-selector.ts +52 -0
  487. package/src/modes/components/todo-reminder.ts +54 -0
  488. package/src/modes/components/tool-execution.ts +781 -0
  489. package/src/modes/components/tree-selector.ts +908 -0
  490. package/src/modes/components/ttsr-notification.ts +80 -0
  491. package/src/modes/components/user-message-selector.ts +141 -0
  492. package/src/modes/components/user-message.ts +100 -0
  493. package/src/modes/components/visual-truncate.ts +63 -0
  494. package/src/modes/components/welcome-checks.ts +313 -0
  495. package/src/modes/components/welcome.ts +270 -0
  496. package/src/modes/controllers/btw-controller.ts +193 -0
  497. package/src/modes/controllers/chord-routing.ts +37 -0
  498. package/src/modes/controllers/command-controller.ts +1293 -0
  499. package/src/modes/controllers/context-command-controller.ts +61 -0
  500. package/src/modes/controllers/event-controller.ts +743 -0
  501. package/src/modes/controllers/extension-ui-controller.ts +983 -0
  502. package/src/modes/controllers/input-controller.ts +877 -0
  503. package/src/modes/controllers/mcp-command-controller.ts +1940 -0
  504. package/src/modes/controllers/selector-controller.ts +1292 -0
  505. package/src/modes/controllers/ssh-command-controller.ts +421 -0
  506. package/src/modes/index.ts +34 -0
  507. package/src/modes/interactive-mode.ts +1781 -0
  508. package/src/modes/oauth-manual-input.ts +42 -0
  509. package/src/modes/print-mode.ts +196 -0
  510. package/src/modes/prompt-action-autocomplete.ts +231 -0
  511. package/src/modes/rpc/host-tools.ts +186 -0
  512. package/src/modes/rpc/rpc-client.ts +762 -0
  513. package/src/modes/rpc/rpc-mode.ts +877 -0
  514. package/src/modes/rpc/rpc-types.ts +322 -0
  515. package/src/modes/session-observer-registry.ts +146 -0
  516. package/src/modes/shared.ts +30 -0
  517. package/src/modes/theme/defaults/index.ts +7 -0
  518. package/src/modes/theme/defaults/xcsh-dark.json +113 -0
  519. package/src/modes/theme/defaults/xcsh-light.json +115 -0
  520. package/src/modes/theme/mermaid-cache.ts +151 -0
  521. package/src/modes/theme/mermaid-palette.ts +39 -0
  522. package/src/modes/theme/theme-schema.json +553 -0
  523. package/src/modes/theme/theme.ts +2563 -0
  524. package/src/modes/types.ts +273 -0
  525. package/src/modes/utils/hotkeys-markdown.ts +60 -0
  526. package/src/modes/utils/keybinding-matchers.ts +30 -0
  527. package/src/modes/utils/read-group-outcome-aggregator.ts +55 -0
  528. package/src/modes/utils/sanitize-error-message.ts +60 -0
  529. package/src/modes/utils/tools-markdown.ts +28 -0
  530. package/src/modes/utils/ui-helpers.ts +734 -0
  531. package/src/plan-mode/approved-plan.ts +55 -0
  532. package/src/plan-mode/state.ts +6 -0
  533. package/src/priority.json +37 -0
  534. package/src/prompts/agents/designer.md +67 -0
  535. package/src/prompts/agents/explore.md +61 -0
  536. package/src/prompts/agents/frontmatter.md +10 -0
  537. package/src/prompts/agents/init.md +36 -0
  538. package/src/prompts/agents/librarian.md +121 -0
  539. package/src/prompts/agents/plan.md +49 -0
  540. package/src/prompts/agents/reviewer.md +127 -0
  541. package/src/prompts/agents/task.md +16 -0
  542. package/src/prompts/ci-green-request.md +35 -0
  543. package/src/prompts/compaction/branch-summary-context.md +5 -0
  544. package/src/prompts/compaction/branch-summary-preamble.md +2 -0
  545. package/src/prompts/compaction/branch-summary.md +30 -0
  546. package/src/prompts/compaction/compaction-short-summary.md +9 -0
  547. package/src/prompts/compaction/compaction-summary-context.md +5 -0
  548. package/src/prompts/compaction/compaction-summary.md +38 -0
  549. package/src/prompts/compaction/compaction-turn-prefix.md +17 -0
  550. package/src/prompts/compaction/compaction-update-summary.md +45 -0
  551. package/src/prompts/memories/consolidation.md +30 -0
  552. package/src/prompts/memories/read-path.md +11 -0
  553. package/src/prompts/memories/stage_one_input.md +6 -0
  554. package/src/prompts/memories/stage_one_system.md +21 -0
  555. package/src/prompts/review-request.md +70 -0
  556. package/src/prompts/system/agent-creation-architect.md +65 -0
  557. package/src/prompts/system/agent-creation-user.md +6 -0
  558. package/src/prompts/system/auto-handoff-threshold-focus.md +1 -0
  559. package/src/prompts/system/btw-user.md +8 -0
  560. package/src/prompts/system/commit-message-system.md +2 -0
  561. package/src/prompts/system/custom-system-prompt.md +82 -0
  562. package/src/prompts/system/eager-todo.md +13 -0
  563. package/src/prompts/system/file-operations.md +10 -0
  564. package/src/prompts/system/handoff-document.md +48 -0
  565. package/src/prompts/system/plan-mode-active.md +114 -0
  566. package/src/prompts/system/plan-mode-approved.md +23 -0
  567. package/src/prompts/system/plan-mode-reference.md +14 -0
  568. package/src/prompts/system/plan-mode-subagent.md +34 -0
  569. package/src/prompts/system/plan-mode-tool-decision-reminder.md +9 -0
  570. package/src/prompts/system/subagent-submit-reminder.md +7 -0
  571. package/src/prompts/system/subagent-system-prompt.md +36 -0
  572. package/src/prompts/system/subagent-user-prompt.md +12 -0
  573. package/src/prompts/system/summarization-system.md +3 -0
  574. package/src/prompts/system/system-prompt.md +698 -0
  575. package/src/prompts/system/title-system.md +2 -0
  576. package/src/prompts/system/ttsr-interrupt.md +7 -0
  577. package/src/prompts/system/web-search.md +28 -0
  578. package/src/prompts/tools/ask.md +28 -0
  579. package/src/prompts/tools/ast-edit.md +48 -0
  580. package/src/prompts/tools/ast-grep.md +54 -0
  581. package/src/prompts/tools/async-result.md +5 -0
  582. package/src/prompts/tools/bash.md +67 -0
  583. package/src/prompts/tools/browser.md +26 -0
  584. package/src/prompts/tools/calculator.md +10 -0
  585. package/src/prompts/tools/cancel-job.md +5 -0
  586. package/src/prompts/tools/catalog-workflow-runner.md +13 -0
  587. package/src/prompts/tools/checkpoint.md +16 -0
  588. package/src/prompts/tools/chunk-edit.md +279 -0
  589. package/src/prompts/tools/debug.md +43 -0
  590. package/src/prompts/tools/display-image.md +23 -0
  591. package/src/prompts/tools/exit-plan-mode.md +41 -0
  592. package/src/prompts/tools/find.md +26 -0
  593. package/src/prompts/tools/gemini-image.md +7 -0
  594. package/src/prompts/tools/grep.md +29 -0
  595. package/src/prompts/tools/hashline.md +131 -0
  596. package/src/prompts/tools/inspect-image-system.md +20 -0
  597. package/src/prompts/tools/inspect-image.md +32 -0
  598. package/src/prompts/tools/lsp.md +33 -0
  599. package/src/prompts/tools/patch.md +77 -0
  600. package/src/prompts/tools/poll.md +5 -0
  601. package/src/prompts/tools/python.md +60 -0
  602. package/src/prompts/tools/read-chunk.md +35 -0
  603. package/src/prompts/tools/read.md +63 -0
  604. package/src/prompts/tools/render-mermaid.md +9 -0
  605. package/src/prompts/tools/replace.md +36 -0
  606. package/src/prompts/tools/resolve.md +8 -0
  607. package/src/prompts/tools/rewind.md +13 -0
  608. package/src/prompts/tools/search-tool-bm25.md +34 -0
  609. package/src/prompts/tools/ssh.md +44 -0
  610. package/src/prompts/tools/task-summary.md +28 -0
  611. package/src/prompts/tools/task.md +131 -0
  612. package/src/prompts/tools/todo-write.md +89 -0
  613. package/src/prompts/tools/vim.md +98 -0
  614. package/src/prompts/tools/web-search.md +10 -0
  615. package/src/prompts/tools/write.md +14 -0
  616. package/src/prompts/tools/xcsh-api.md +283 -0
  617. package/src/resource-management/index.ts +42 -0
  618. package/src/sdk.ts +2123 -0
  619. package/src/secrets/index.ts +146 -0
  620. package/src/secrets/obfuscator.ts +290 -0
  621. package/src/secrets/regex.ts +21 -0
  622. package/src/services/context-env.ts +102 -0
  623. package/src/services/xcsh-api-client.ts +230 -0
  624. package/src/services/xcsh-context-command.ts +803 -0
  625. package/src/services/xcsh-context-display.ts +49 -0
  626. package/src/services/xcsh-context-indicators.ts +17 -0
  627. package/src/services/xcsh-context-segment.ts +39 -0
  628. package/src/services/xcsh-context.ts +1410 -0
  629. package/src/services/xcsh-env.ts +107 -0
  630. package/src/services/xcsh-knowledge.ts +177 -0
  631. package/src/services/xcsh-table.ts +164 -0
  632. package/src/session/agent-session.ts +6690 -0
  633. package/src/session/agent-storage.ts +451 -0
  634. package/src/session/artifacts.ts +132 -0
  635. package/src/session/auth-storage.ts +17 -0
  636. package/src/session/blob-store.ts +135 -0
  637. package/src/session/compaction/branch-summarization.ts +322 -0
  638. package/src/session/compaction/compaction.ts +1388 -0
  639. package/src/session/compaction/index.ts +7 -0
  640. package/src/session/compaction/pruning.ts +91 -0
  641. package/src/session/compaction/utils.ts +184 -0
  642. package/src/session/history-storage.ts +253 -0
  643. package/src/session/messages.ts +597 -0
  644. package/src/session/session-dump-format.ts +203 -0
  645. package/src/session/session-manager.ts +2816 -0
  646. package/src/session/session-storage.ts +370 -0
  647. package/src/session/streaming-output.ts +770 -0
  648. package/src/session/tool-choice-queue.ts +213 -0
  649. package/src/slash-commands/builtin-registry.ts +1614 -0
  650. package/src/slash-commands/export-command.ts +178 -0
  651. package/src/slash-commands/marketplace-install-parser.ts +99 -0
  652. package/src/slash-commands/resource-commands.ts +250 -0
  653. package/src/ssh/config-writer.ts +183 -0
  654. package/src/ssh/connection-manager.ts +445 -0
  655. package/src/ssh/ssh-executor.ts +131 -0
  656. package/src/ssh/sshfs-mount.ts +137 -0
  657. package/src/ssh/utils.ts +8 -0
  658. package/src/stt/downloader.ts +71 -0
  659. package/src/stt/index.ts +3 -0
  660. package/src/stt/recorder.ts +351 -0
  661. package/src/stt/setup.ts +52 -0
  662. package/src/stt/stt-controller.ts +160 -0
  663. package/src/stt/transcribe.py +70 -0
  664. package/src/stt/transcriber.ts +91 -0
  665. package/src/system-prompt.ts +688 -0
  666. package/src/task/agents.ts +166 -0
  667. package/src/task/commands.ts +131 -0
  668. package/src/task/discovery.ts +126 -0
  669. package/src/task/executor.ts +1324 -0
  670. package/src/task/index.ts +1197 -0
  671. package/src/task/isolation-backend.ts +72 -0
  672. package/src/task/name-generator.ts +1577 -0
  673. package/src/task/output-manager.ts +107 -0
  674. package/src/task/parallel.ts +116 -0
  675. package/src/task/render.ts +1035 -0
  676. package/src/task/subprocess-tool-registry.ts +88 -0
  677. package/src/task/template.ts +33 -0
  678. package/src/task/types.ts +230 -0
  679. package/src/task/worktree.ts +580 -0
  680. package/src/task/xcsh-command.ts +26 -0
  681. package/src/thinking.ts +87 -0
  682. package/src/tools/action-renderer.ts +198 -0
  683. package/src/tools/archive-reader.ts +315 -0
  684. package/src/tools/ask.ts +791 -0
  685. package/src/tools/ast-edit.ts +492 -0
  686. package/src/tools/ast-grep.ts +453 -0
  687. package/src/tools/auto-generated-guard.ts +305 -0
  688. package/src/tools/bash-interactive.ts +383 -0
  689. package/src/tools/bash-interceptor.ts +67 -0
  690. package/src/tools/bash-normalize.ts +107 -0
  691. package/src/tools/bash-skill-urls.ts +246 -0
  692. package/src/tools/bash.ts +878 -0
  693. package/src/tools/browser-renderer.ts +129 -0
  694. package/src/tools/browser.ts +1366 -0
  695. package/src/tools/calculator.ts +543 -0
  696. package/src/tools/cancel-job.ts +100 -0
  697. package/src/tools/catalog-workflow-runner.ts +718 -0
  698. package/src/tools/checkpoint.ts +133 -0
  699. package/src/tools/context.ts +39 -0
  700. package/src/tools/debug.ts +1004 -0
  701. package/src/tools/display-image-renderer.ts +96 -0
  702. package/src/tools/display-image.ts +109 -0
  703. package/src/tools/exit-plan-mode.ts +101 -0
  704. package/src/tools/fetch.ts +1462 -0
  705. package/src/tools/find.ts +437 -0
  706. package/src/tools/fs-cache-invalidation.ts +33 -0
  707. package/src/tools/gemini-image.ts +1004 -0
  708. package/src/tools/grep.ts +705 -0
  709. package/src/tools/index.ts +442 -0
  710. package/src/tools/inspect-image-renderer.ts +101 -0
  711. package/src/tools/inspect-image.ts +176 -0
  712. package/src/tools/json-tree.ts +266 -0
  713. package/src/tools/jtd-to-json-schema.ts +199 -0
  714. package/src/tools/jtd-to-typescript.ts +136 -0
  715. package/src/tools/jtd-utils.ts +102 -0
  716. package/src/tools/list-limit.ts +40 -0
  717. package/src/tools/mermaid-renderer.ts +127 -0
  718. package/src/tools/notebook.ts +288 -0
  719. package/src/tools/output-meta.ts +588 -0
  720. package/src/tools/path-utils.ts +560 -0
  721. package/src/tools/plan-mode-guard.ts +41 -0
  722. package/src/tools/poll-tool.ts +177 -0
  723. package/src/tools/puppeteer/00_stealth_tampering.txt +63 -0
  724. package/src/tools/puppeteer/01_stealth_activity.txt +20 -0
  725. package/src/tools/puppeteer/02_stealth_hairline.txt +11 -0
  726. package/src/tools/puppeteer/03_stealth_botd.txt +384 -0
  727. package/src/tools/puppeteer/04_stealth_iframe.txt +81 -0
  728. package/src/tools/puppeteer/05_stealth_webgl.txt +75 -0
  729. package/src/tools/puppeteer/06_stealth_screen.txt +72 -0
  730. package/src/tools/puppeteer/07_stealth_fonts.txt +97 -0
  731. package/src/tools/puppeteer/08_stealth_audio.txt +51 -0
  732. package/src/tools/puppeteer/09_stealth_locale.txt +46 -0
  733. package/src/tools/puppeteer/10_stealth_plugins.txt +206 -0
  734. package/src/tools/puppeteer/11_stealth_hardware.txt +8 -0
  735. package/src/tools/puppeteer/12_stealth_codecs.txt +40 -0
  736. package/src/tools/puppeteer/13_stealth_worker.txt +74 -0
  737. package/src/tools/python.ts +1184 -0
  738. package/src/tools/read.ts +1591 -0
  739. package/src/tools/render-mermaid.ts +93 -0
  740. package/src/tools/render-utils.ts +677 -0
  741. package/src/tools/renderers.ts +82 -0
  742. package/src/tools/report-tool-issue.ts +80 -0
  743. package/src/tools/resolve.ts +196 -0
  744. package/src/tools/review.ts +238 -0
  745. package/src/tools/search-tool-bm25.ts +288 -0
  746. package/src/tools/sqlite-reader.ts +623 -0
  747. package/src/tools/ssh.ts +322 -0
  748. package/src/tools/submit-result.ts +229 -0
  749. package/src/tools/todo-render.ts +33 -0
  750. package/src/tools/todo-write.ts +440 -0
  751. package/src/tools/tool-errors.ts +62 -0
  752. package/src/tools/tool-result.ts +93 -0
  753. package/src/tools/tool-timeouts.ts +30 -0
  754. package/src/tools/vim.ts +981 -0
  755. package/src/tools/write.ts +671 -0
  756. package/src/tools/xcsh-api-renderer.ts +402 -0
  757. package/src/tools/xcsh-api.ts +887 -0
  758. package/src/tui/code-cell.ts +101 -0
  759. package/src/tui/file-list.ts +47 -0
  760. package/src/tui/index.ts +11 -0
  761. package/src/tui/output-block.ts +175 -0
  762. package/src/tui/status-line.ts +39 -0
  763. package/src/tui/tree-list.ts +84 -0
  764. package/src/tui/types.ts +15 -0
  765. package/src/tui/utils.ts +103 -0
  766. package/src/utils/changelog.ts +98 -0
  767. package/src/utils/clipboard.ts +80 -0
  768. package/src/utils/command-args.ts +76 -0
  769. package/src/utils/commit-message-generator.ts +137 -0
  770. package/src/utils/edit-mode.ts +50 -0
  771. package/src/utils/event-bus.ts +33 -0
  772. package/src/utils/external-editor.ts +65 -0
  773. package/src/utils/file-display-mode.ts +37 -0
  774. package/src/utils/file-mentions.ts +376 -0
  775. package/src/utils/fuzzy.ts +108 -0
  776. package/src/utils/git.ts +1495 -0
  777. package/src/utils/gitstatus.ts +140 -0
  778. package/src/utils/image-convert.ts +27 -0
  779. package/src/utils/image-loading.ts +98 -0
  780. package/src/utils/image-passthrough.ts +118 -0
  781. package/src/utils/image-resize.ts +272 -0
  782. package/src/utils/image-viewer.ts +17 -0
  783. package/src/utils/lang-from-path.ts +239 -0
  784. package/src/utils/markit.ts +81 -0
  785. package/src/utils/open.ts +20 -0
  786. package/src/utils/session-color.ts +55 -0
  787. package/src/utils/shell-snapshot.ts +188 -0
  788. package/src/utils/title-generator.ts +193 -0
  789. package/src/utils/tool-choice.ts +28 -0
  790. package/src/utils/tools-manager.ts +356 -0
  791. package/src/vim/buffer.ts +309 -0
  792. package/src/vim/commands.ts +382 -0
  793. package/src/vim/engine.ts +2426 -0
  794. package/src/vim/parser.ts +151 -0
  795. package/src/vim/render.ts +252 -0
  796. package/src/vim/types.ts +197 -0
  797. package/src/web/kagi.ts +174 -0
  798. package/src/web/parallel.ts +346 -0
  799. package/src/web/scrapers/artifacthub.ts +207 -0
  800. package/src/web/scrapers/arxiv.ts +83 -0
  801. package/src/web/scrapers/aur.ts +162 -0
  802. package/src/web/scrapers/biorxiv.ts +133 -0
  803. package/src/web/scrapers/bluesky.ts +262 -0
  804. package/src/web/scrapers/brew.ts +172 -0
  805. package/src/web/scrapers/cheatsh.ts +68 -0
  806. package/src/web/scrapers/chocolatey.ts +196 -0
  807. package/src/web/scrapers/choosealicense.ts +95 -0
  808. package/src/web/scrapers/cisa-kev.ts +87 -0
  809. package/src/web/scrapers/clojars.ts +154 -0
  810. package/src/web/scrapers/coingecko.ts +177 -0
  811. package/src/web/scrapers/crates-io.ts +110 -0
  812. package/src/web/scrapers/crossref.ts +136 -0
  813. package/src/web/scrapers/devto.ts +147 -0
  814. package/src/web/scrapers/discogs.ts +306 -0
  815. package/src/web/scrapers/discourse.ts +197 -0
  816. package/src/web/scrapers/dockerhub.ts +138 -0
  817. package/src/web/scrapers/docs-rs.ts +653 -0
  818. package/src/web/scrapers/fdroid.ts +134 -0
  819. package/src/web/scrapers/firefox-addons.ts +191 -0
  820. package/src/web/scrapers/flathub.ts +223 -0
  821. package/src/web/scrapers/github-gist.ts +58 -0
  822. package/src/web/scrapers/github.ts +452 -0
  823. package/src/web/scrapers/gitlab.ts +401 -0
  824. package/src/web/scrapers/go-pkg.ts +266 -0
  825. package/src/web/scrapers/hackage.ts +140 -0
  826. package/src/web/scrapers/hackernews.ts +189 -0
  827. package/src/web/scrapers/hex.ts +105 -0
  828. package/src/web/scrapers/huggingface.ts +321 -0
  829. package/src/web/scrapers/iacr.ts +89 -0
  830. package/src/web/scrapers/index.ts +252 -0
  831. package/src/web/scrapers/jetbrains-marketplace.ts +159 -0
  832. package/src/web/scrapers/lemmy.ts +203 -0
  833. package/src/web/scrapers/lobsters.ts +175 -0
  834. package/src/web/scrapers/mastodon.ts +292 -0
  835. package/src/web/scrapers/maven.ts +138 -0
  836. package/src/web/scrapers/mdn.ts +169 -0
  837. package/src/web/scrapers/metacpan.ts +222 -0
  838. package/src/web/scrapers/musicbrainz.ts +250 -0
  839. package/src/web/scrapers/npm.ts +98 -0
  840. package/src/web/scrapers/nuget.ts +183 -0
  841. package/src/web/scrapers/nvd.ts +222 -0
  842. package/src/web/scrapers/ollama.ts +239 -0
  843. package/src/web/scrapers/open-vsx.ts +106 -0
  844. package/src/web/scrapers/opencorporates.ts +292 -0
  845. package/src/web/scrapers/openlibrary.ts +336 -0
  846. package/src/web/scrapers/orcid.ts +286 -0
  847. package/src/web/scrapers/osv.ts +176 -0
  848. package/src/web/scrapers/packagist.ts +160 -0
  849. package/src/web/scrapers/pub-dev.ts +143 -0
  850. package/src/web/scrapers/pubmed.ts +211 -0
  851. package/src/web/scrapers/pypi.ts +112 -0
  852. package/src/web/scrapers/rawg.ts +110 -0
  853. package/src/web/scrapers/readthedocs.ts +120 -0
  854. package/src/web/scrapers/reddit.ts +95 -0
  855. package/src/web/scrapers/repology.ts +251 -0
  856. package/src/web/scrapers/rfc.ts +201 -0
  857. package/src/web/scrapers/rubygems.ts +103 -0
  858. package/src/web/scrapers/searchcode.ts +190 -0
  859. package/src/web/scrapers/sec-edgar.ts +261 -0
  860. package/src/web/scrapers/semantic-scholar.ts +171 -0
  861. package/src/web/scrapers/snapcraft.ts +187 -0
  862. package/src/web/scrapers/sourcegraph.ts +336 -0
  863. package/src/web/scrapers/spdx.ts +108 -0
  864. package/src/web/scrapers/spotify.ts +198 -0
  865. package/src/web/scrapers/stackoverflow.ts +120 -0
  866. package/src/web/scrapers/terraform.ts +277 -0
  867. package/src/web/scrapers/tldr.ts +47 -0
  868. package/src/web/scrapers/twitter.ts +93 -0
  869. package/src/web/scrapers/types.ts +267 -0
  870. package/src/web/scrapers/utils.ts +109 -0
  871. package/src/web/scrapers/vimeo.ts +133 -0
  872. package/src/web/scrapers/vscode-marketplace.ts +187 -0
  873. package/src/web/scrapers/w3c.ts +156 -0
  874. package/src/web/scrapers/wikidata.ts +344 -0
  875. package/src/web/scrapers/wikipedia.ts +84 -0
  876. package/src/web/scrapers/youtube.ts +313 -0
  877. package/src/web/search/errors.ts +120 -0
  878. package/src/web/search/index.ts +346 -0
  879. package/src/web/search/params.ts +129 -0
  880. package/src/web/search/provider.ts +97 -0
  881. package/src/web/search/providers/anthropic.ts +339 -0
  882. package/src/web/search/providers/base.ts +35 -0
  883. package/src/web/search/providers/brave.ts +150 -0
  884. package/src/web/search/providers/codex.ts +402 -0
  885. package/src/web/search/providers/exa.ts +264 -0
  886. package/src/web/search/providers/firecrawl.ts +115 -0
  887. package/src/web/search/providers/gemini.ts +566 -0
  888. package/src/web/search/providers/jina.ts +99 -0
  889. package/src/web/search/providers/kagi.ts +70 -0
  890. package/src/web/search/providers/kimi.ts +157 -0
  891. package/src/web/search/providers/parallel.ts +63 -0
  892. package/src/web/search/providers/perplexity.ts +546 -0
  893. package/src/web/search/providers/synthetic.ts +113 -0
  894. package/src/web/search/providers/tavily.ts +162 -0
  895. package/src/web/search/providers/utils.ts +36 -0
  896. package/src/web/search/providers/zai.ts +311 -0
  897. package/src/web/search/render.ts +348 -0
  898. package/src/web/search/types.ts +438 -0
  899. package/src/web/search/utils.ts +17 -0
@@ -0,0 +1,4841 @@
1
+ // Auto-generated by scripts/generate-console-field-metadata.ts - DO NOT EDIT
2
+ // Source of truth: api-specs-enriched/config/console_field_metadata.yaml
3
+
4
+ import type { ConsoleFieldMetadataData } from "./console-field-metadata-types";
5
+
6
+ export const CONSOLE_FIELD_METADATA: ConsoleFieldMetadataData = {
7
+ "version": "1.0.0",
8
+ "resources": {
9
+ "http_loadbalancer": {
10
+ "metadata.name": {
11
+ "widget_type": "textbox",
12
+ "label": "Name",
13
+ "required": true,
14
+ "form_section": "metadata",
15
+ "validation": {
16
+ "pattern": "^[a-z][a-z0-9-]*$",
17
+ "max_length": 64
18
+ }
19
+ },
20
+ "metadata.labels": {
21
+ "widget_type": "key-value-pairs",
22
+ "label": "Labels",
23
+ "required": false,
24
+ "add_action": "Add Label",
25
+ "form_section": "metadata"
26
+ },
27
+ "metadata.description": {
28
+ "widget_type": "textbox",
29
+ "label": "Description",
30
+ "required": false,
31
+ "form_section": "metadata"
32
+ },
33
+ "spec.domains": {
34
+ "widget_type": "table",
35
+ "label": "Domains",
36
+ "required": true,
37
+ "add_action": "Add Item",
38
+ "description": "One or more domains this load balancer serves",
39
+ "form_section": "domains-and-lb-type"
40
+ },
41
+ "spec.https_auto_cert": {
42
+ "widget_type": "listbox",
43
+ "label": "Load Balancer Type",
44
+ "required": true,
45
+ "default": "HTTPS with Automatic Certificate",
46
+ "options": [
47
+ "HTTP",
48
+ "HTTPS with Automatic Certificate",
49
+ "HTTPS with Custom Certificate"
50
+ ],
51
+ "form_section": "domains-and-lb-type",
52
+ "notes": "Selects between spec.http, spec.https, and spec.https_auto_cert",
53
+ "mutually_exclusive_with": [
54
+ "spec.http",
55
+ "spec.https"
56
+ ]
57
+ },
58
+ "spec.http": {
59
+ "widget_type": "listbox",
60
+ "label": "Load Balancer Type",
61
+ "form_section": "domains-and-lb-type",
62
+ "hidden": true,
63
+ "notes": "Active when LB Type is HTTP; mutually exclusive with https variants",
64
+ "mutually_exclusive_with": [
65
+ "spec.https_auto_cert",
66
+ "spec.https"
67
+ ]
68
+ },
69
+ "spec.https": {
70
+ "widget_type": "listbox",
71
+ "label": "Load Balancer Type",
72
+ "form_section": "domains-and-lb-type",
73
+ "hidden": true,
74
+ "notes": "Active when LB Type is HTTPS with Custom Certificate",
75
+ "mutually_exclusive_with": [
76
+ "spec.https_auto_cert",
77
+ "spec.http"
78
+ ]
79
+ },
80
+ "spec.default_route_pools": {
81
+ "widget_type": "nested-resource-list",
82
+ "label": "Origin Pools",
83
+ "required": false,
84
+ "add_action": "Add Item",
85
+ "nested_resource": "origin_pool",
86
+ "form_section": "origins"
87
+ },
88
+ "spec.default_pool": {
89
+ "widget_type": "resource-selector",
90
+ "label": "Default Pool",
91
+ "required": false,
92
+ "form_section": "origins",
93
+ "notes": "Alternative to default_route_pools for single pool"
94
+ },
95
+ "spec.default_pool_list": {
96
+ "widget_type": "nested-resource-list",
97
+ "label": "Default Pool List",
98
+ "required": false,
99
+ "form_section": "origins"
100
+ },
101
+ "spec.origin_server_subset_rule_list": {
102
+ "widget_type": "configurable",
103
+ "label": "Origin Server Subset Rules",
104
+ "required": false,
105
+ "default_state": "Not configured",
106
+ "configure_action": "Configure",
107
+ "form_section": "origins",
108
+ "show_advanced_fields": true
109
+ },
110
+ "spec.routes": {
111
+ "widget_type": "configurable",
112
+ "label": "Routes",
113
+ "required": false,
114
+ "default_state": "Not configured",
115
+ "configure_action": "Configure",
116
+ "form_section": "routes"
117
+ },
118
+ "spec.disable_caching": {
119
+ "widget_type": "listbox",
120
+ "label": "Caching",
121
+ "required": false,
122
+ "default": "Disable",
123
+ "options": [
124
+ "Disable",
125
+ "Enable"
126
+ ],
127
+ "form_section": "cdn",
128
+ "notes": "Empty object sentinel — presence means caching is disabled"
129
+ },
130
+ "spec.app_firewall": {
131
+ "widget_type": "resource-selector",
132
+ "label": "WAF",
133
+ "resource_type": "app_firewall",
134
+ "required": false,
135
+ "form_section": "waf",
136
+ "notes": "Enable WAF by selecting an App Firewall resource",
137
+ "mutually_exclusive_with": [
138
+ "spec.disable_waf"
139
+ ]
140
+ },
141
+ "spec.disable_waf": {
142
+ "widget_type": "listbox",
143
+ "label": "WAF",
144
+ "default": "Disable",
145
+ "form_section": "waf",
146
+ "notes": "Empty object sentinel — presence means WAF is disabled",
147
+ "mutually_exclusive_with": [
148
+ "spec.app_firewall"
149
+ ]
150
+ },
151
+ "spec.waf_exclusion": {
152
+ "widget_type": "listbox",
153
+ "label": "WAF Exclusion",
154
+ "required": false,
155
+ "default": "Inline Rules",
156
+ "options": [
157
+ "Inline Rules",
158
+ "Custom Rules"
159
+ ],
160
+ "form_section": "waf",
161
+ "depends_on": "spec.app_firewall"
162
+ },
163
+ "spec.data_guard_rules": {
164
+ "widget_type": "configurable",
165
+ "label": "Data Guard Rules",
166
+ "required": false,
167
+ "default_state": "Not configured",
168
+ "configure_action": "Configure",
169
+ "form_section": "waf"
170
+ },
171
+ "spec.csrf_policy": {
172
+ "widget_type": "configurable",
173
+ "label": "CSRF Protection",
174
+ "required": false,
175
+ "default_state": "Not configured",
176
+ "configure_action": "Configure",
177
+ "form_section": "waf"
178
+ },
179
+ "spec.graphql_rules": {
180
+ "widget_type": "configurable",
181
+ "label": "GraphQL Inspection",
182
+ "required": false,
183
+ "default_state": "Not configured",
184
+ "configure_action": "Configure",
185
+ "form_section": "waf"
186
+ },
187
+ "spec.protected_cookies": {
188
+ "widget_type": "configurable",
189
+ "label": "Cookie Protection",
190
+ "required": false,
191
+ "default_state": "Not configured",
192
+ "configure_action": "Configure",
193
+ "form_section": "waf"
194
+ },
195
+ "spec.bot_defense": {
196
+ "widget_type": "listbox",
197
+ "label": "Bot Defense",
198
+ "required": false,
199
+ "default": "Disable",
200
+ "options": [
201
+ "Disable",
202
+ "Enable"
203
+ ],
204
+ "form_section": "bot-protection",
205
+ "mutually_exclusive_with": [
206
+ "spec.disable_bot_defense"
207
+ ]
208
+ },
209
+ "spec.bot_defense_advanced": {
210
+ "widget_type": "configurable",
211
+ "label": "Bot Defense Advanced",
212
+ "required": false,
213
+ "form_section": "bot-protection",
214
+ "show_advanced_fields": true,
215
+ "depends_on": "spec.bot_defense"
216
+ },
217
+ "spec.disable_bot_defense": {
218
+ "widget_type": "listbox",
219
+ "label": "Bot Defense",
220
+ "default": "Disable",
221
+ "form_section": "bot-protection",
222
+ "notes": "Empty object sentinel — presence means bot defense is disabled",
223
+ "mutually_exclusive_with": [
224
+ "spec.bot_defense",
225
+ "spec.bot_defense_advanced"
226
+ ]
227
+ },
228
+ "spec.api_specification": {
229
+ "widget_type": "configurable",
230
+ "label": "API Definition",
231
+ "required": false,
232
+ "form_section": "api-protection",
233
+ "notes": "Upload or reference an API spec for schema enforcement",
234
+ "mutually_exclusive_with": [
235
+ "spec.disable_api_definition"
236
+ ]
237
+ },
238
+ "spec.disable_api_definition": {
239
+ "widget_type": "listbox",
240
+ "label": "API Definition",
241
+ "default": "Disable",
242
+ "form_section": "api-protection",
243
+ "notes": "Empty object sentinel — presence means API definition is disabled",
244
+ "mutually_exclusive_with": [
245
+ "spec.api_specification"
246
+ ]
247
+ },
248
+ "spec.api_protection_rules": {
249
+ "widget_type": "configurable",
250
+ "label": "API Protection Rules",
251
+ "required": false,
252
+ "default_state": "Not configured",
253
+ "configure_action": "Configure",
254
+ "form_section": "api-protection",
255
+ "depends_on": "spec.api_specification"
256
+ },
257
+ "spec.jwt_validation": {
258
+ "widget_type": "configurable",
259
+ "label": "JWT Validation",
260
+ "required": false,
261
+ "default_state": "Not configured",
262
+ "configure_action": "Configure",
263
+ "form_section": "api-protection"
264
+ },
265
+ "spec.enable_api_discovery": {
266
+ "widget_type": "listbox",
267
+ "label": "API Discovery",
268
+ "required": false,
269
+ "default": "Disable",
270
+ "options": [
271
+ "Disable",
272
+ "Enable"
273
+ ],
274
+ "form_section": "api-protection",
275
+ "mutually_exclusive_with": [
276
+ "spec.disable_api_discovery"
277
+ ]
278
+ },
279
+ "spec.disable_api_discovery": {
280
+ "widget_type": "listbox",
281
+ "label": "API Discovery",
282
+ "default": "Disable",
283
+ "form_section": "api-protection",
284
+ "notes": "Empty object sentinel — presence means API discovery is disabled",
285
+ "mutually_exclusive_with": [
286
+ "spec.enable_api_discovery"
287
+ ]
288
+ },
289
+ "spec.sensitive_data_policy": {
290
+ "widget_type": "listbox",
291
+ "label": "Sensitive Data Discovery",
292
+ "required": false,
293
+ "default": "Default",
294
+ "options": [
295
+ "Default",
296
+ "Custom"
297
+ ],
298
+ "form_section": "api-protection",
299
+ "mutually_exclusive_with": [
300
+ "spec.default_sensitive_data_policy"
301
+ ]
302
+ },
303
+ "spec.default_sensitive_data_policy": {
304
+ "widget_type": "listbox",
305
+ "label": "Sensitive Data Discovery",
306
+ "default": "Default",
307
+ "form_section": "api-protection",
308
+ "notes": "Empty object sentinel — uses default sensitive data policy",
309
+ "mutually_exclusive_with": [
310
+ "spec.sensitive_data_policy"
311
+ ]
312
+ },
313
+ "spec.api_rate_limit": {
314
+ "widget_type": "configurable",
315
+ "label": "API Rate Limit",
316
+ "required": false,
317
+ "default_state": "Not configured",
318
+ "configure_action": "Configure",
319
+ "form_section": "api-protection"
320
+ },
321
+ "spec.api_testing": {
322
+ "widget_type": "listbox",
323
+ "label": "API Testing",
324
+ "required": false,
325
+ "default": "Disable",
326
+ "options": [
327
+ "Disable",
328
+ "Enable"
329
+ ],
330
+ "form_section": "api-protection",
331
+ "mutually_exclusive_with": [
332
+ "spec.disable_api_testing"
333
+ ]
334
+ },
335
+ "spec.disable_api_testing": {
336
+ "widget_type": "listbox",
337
+ "label": "API Testing",
338
+ "default": "Disable",
339
+ "form_section": "api-protection",
340
+ "notes": "Empty object sentinel — presence means API testing is disabled",
341
+ "mutually_exclusive_with": [
342
+ "spec.api_testing"
343
+ ]
344
+ },
345
+ "spec.sensitive_data_disclosure_rules": {
346
+ "widget_type": "configurable",
347
+ "label": "Sensitive Data Exposure Rules",
348
+ "required": false,
349
+ "default_state": "Not configured",
350
+ "configure_action": "Configure",
351
+ "form_section": "api-protection"
352
+ },
353
+ "spec.l7_ddos_protection": {
354
+ "widget_type": "configurable",
355
+ "label": "DDoS Protection",
356
+ "required": false,
357
+ "form_section": "dos-settings",
358
+ "notes": "Contains mitigation_action, rps_threshold, and client_side_challenge settings"
359
+ },
360
+ "spec.l7_ddos_action_block": {
361
+ "widget_type": "listbox",
362
+ "label": "Mitigation Action",
363
+ "default": "Block",
364
+ "form_section": "dos-settings",
365
+ "notes": "Empty object sentinel — block mitigation action",
366
+ "mutually_exclusive_with": [
367
+ "spec.l7_ddos_action_default",
368
+ "spec.l7_ddos_action_js_challenge"
369
+ ]
370
+ },
371
+ "spec.l7_ddos_action_default": {
372
+ "widget_type": "listbox",
373
+ "label": "Mitigation Action",
374
+ "default": "None",
375
+ "form_section": "dos-settings",
376
+ "notes": "Empty object sentinel — no mitigation action",
377
+ "mutually_exclusive_with": [
378
+ "spec.l7_ddos_action_block",
379
+ "spec.l7_ddos_action_js_challenge"
380
+ ]
381
+ },
382
+ "spec.l7_ddos_action_js_challenge": {
383
+ "widget_type": "listbox",
384
+ "label": "Mitigation Action",
385
+ "default": "JavaScript Challenge",
386
+ "form_section": "dos-settings",
387
+ "mutually_exclusive_with": [
388
+ "spec.l7_ddos_action_block",
389
+ "spec.l7_ddos_action_default"
390
+ ]
391
+ },
392
+ "spec.ddos_mitigation_rules": {
393
+ "widget_type": "configurable",
394
+ "label": "DDoS Mitigation Rules",
395
+ "required": false,
396
+ "default_state": "Not configured",
397
+ "configure_action": "Configure",
398
+ "form_section": "dos-settings"
399
+ },
400
+ "spec.slow_ddos_mitigation": {
401
+ "widget_type": "listbox",
402
+ "label": "Slow DDoS Mitigation",
403
+ "required": false,
404
+ "default": "Default",
405
+ "options": [
406
+ "Default",
407
+ "Custom"
408
+ ],
409
+ "form_section": "dos-settings"
410
+ },
411
+ "spec.captcha_challenge": {
412
+ "widget_type": "configurable",
413
+ "label": "Captcha Challenge",
414
+ "required": false,
415
+ "form_section": "dos-settings",
416
+ "mutually_exclusive_with": [
417
+ "spec.js_challenge",
418
+ "spec.no_challenge",
419
+ "spec.policy_based_challenge"
420
+ ]
421
+ },
422
+ "spec.js_challenge": {
423
+ "widget_type": "configurable",
424
+ "label": "JavaScript Challenge",
425
+ "required": false,
426
+ "form_section": "dos-settings",
427
+ "mutually_exclusive_with": [
428
+ "spec.captcha_challenge",
429
+ "spec.no_challenge",
430
+ "spec.policy_based_challenge"
431
+ ]
432
+ },
433
+ "spec.no_challenge": {
434
+ "widget_type": "listbox",
435
+ "label": "Client-Side Challenge",
436
+ "default": "None",
437
+ "form_section": "dos-settings",
438
+ "notes": "Empty object sentinel — no client-side challenge",
439
+ "mutually_exclusive_with": [
440
+ "spec.captcha_challenge",
441
+ "spec.js_challenge",
442
+ "spec.policy_based_challenge"
443
+ ]
444
+ },
445
+ "spec.policy_based_challenge": {
446
+ "widget_type": "configurable",
447
+ "label": "Policy-Based Challenge",
448
+ "required": false,
449
+ "form_section": "dos-settings",
450
+ "mutually_exclusive_with": [
451
+ "spec.captcha_challenge",
452
+ "spec.js_challenge",
453
+ "spec.no_challenge"
454
+ ]
455
+ },
456
+ "spec.enable_challenge": {
457
+ "widget_type": "configurable",
458
+ "label": "Challenge Settings",
459
+ "required": false,
460
+ "form_section": "dos-settings"
461
+ },
462
+ "spec.service_policies_from_namespace": {
463
+ "widget_type": "listbox",
464
+ "label": "Service Policies",
465
+ "required": false,
466
+ "default": "Apply Namespace Service Policies",
467
+ "form_section": "common-security-controls",
468
+ "notes": "Empty object sentinel — applies namespace-level service policies",
469
+ "mutually_exclusive_with": [
470
+ "spec.active_service_policies",
471
+ "spec.no_service_policies"
472
+ ]
473
+ },
474
+ "spec.active_service_policies": {
475
+ "widget_type": "configurable",
476
+ "label": "Service Policies",
477
+ "required": false,
478
+ "form_section": "common-security-controls",
479
+ "notes": "Apply specified service policies",
480
+ "mutually_exclusive_with": [
481
+ "spec.service_policies_from_namespace",
482
+ "spec.no_service_policies"
483
+ ]
484
+ },
485
+ "spec.no_service_policies": {
486
+ "widget_type": "listbox",
487
+ "label": "Service Policies",
488
+ "form_section": "common-security-controls",
489
+ "notes": "Empty object sentinel — do not apply service policies",
490
+ "mutually_exclusive_with": [
491
+ "spec.service_policies_from_namespace",
492
+ "spec.active_service_policies"
493
+ ]
494
+ },
495
+ "spec.enable_ip_reputation": {
496
+ "widget_type": "listbox",
497
+ "label": "IP Reputation",
498
+ "required": false,
499
+ "default": "Disable",
500
+ "options": [
501
+ "Disable",
502
+ "Enable"
503
+ ],
504
+ "form_section": "common-security-controls",
505
+ "mutually_exclusive_with": [
506
+ "spec.disable_ip_reputation"
507
+ ]
508
+ },
509
+ "spec.disable_ip_reputation": {
510
+ "widget_type": "listbox",
511
+ "label": "IP Reputation",
512
+ "default": "Disable",
513
+ "form_section": "common-security-controls",
514
+ "notes": "Empty object sentinel — IP reputation disabled",
515
+ "mutually_exclusive_with": [
516
+ "spec.enable_ip_reputation"
517
+ ]
518
+ },
519
+ "spec.enable_threat_mesh": {
520
+ "widget_type": "listbox",
521
+ "label": "Threat Mesh",
522
+ "required": false,
523
+ "default": "Disable",
524
+ "options": [
525
+ "Disable",
526
+ "Enable"
527
+ ],
528
+ "form_section": "common-security-controls",
529
+ "mutually_exclusive_with": [
530
+ "spec.disable_threat_mesh"
531
+ ]
532
+ },
533
+ "spec.disable_threat_mesh": {
534
+ "widget_type": "listbox",
535
+ "label": "Threat Mesh",
536
+ "default": "Disable",
537
+ "form_section": "common-security-controls",
538
+ "notes": "Empty object sentinel — threat mesh disabled",
539
+ "mutually_exclusive_with": [
540
+ "spec.enable_threat_mesh"
541
+ ]
542
+ },
543
+ "spec.user_id_client_ip": {
544
+ "widget_type": "listbox",
545
+ "label": "User Identifier",
546
+ "required": false,
547
+ "default": "Client IP Address",
548
+ "form_section": "common-security-controls",
549
+ "notes": "Empty object sentinel — use client IP as user identifier",
550
+ "mutually_exclusive_with": [
551
+ "spec.user_identification"
552
+ ]
553
+ },
554
+ "spec.user_identification": {
555
+ "widget_type": "resource-selector",
556
+ "label": "User Identifier",
557
+ "required": false,
558
+ "form_section": "common-security-controls",
559
+ "notes": "Custom user identification policy (TLS fingerprint or custom)",
560
+ "mutually_exclusive_with": [
561
+ "spec.user_id_client_ip"
562
+ ]
563
+ },
564
+ "spec.enable_malicious_user_detection": {
565
+ "widget_type": "listbox",
566
+ "label": "Malicious User Detection",
567
+ "required": false,
568
+ "default": "Disable",
569
+ "options": [
570
+ "Disable",
571
+ "Enable"
572
+ ],
573
+ "form_section": "common-security-controls",
574
+ "mutually_exclusive_with": [
575
+ "spec.disable_malicious_user_detection"
576
+ ]
577
+ },
578
+ "spec.disable_malicious_user_detection": {
579
+ "widget_type": "listbox",
580
+ "label": "Malicious User Detection",
581
+ "default": "Disable",
582
+ "form_section": "common-security-controls",
583
+ "notes": "Empty object sentinel — malicious user detection disabled",
584
+ "mutually_exclusive_with": [
585
+ "spec.enable_malicious_user_detection"
586
+ ]
587
+ },
588
+ "spec.rate_limit": {
589
+ "widget_type": "configurable",
590
+ "label": "Rate Limiting",
591
+ "required": false,
592
+ "default_state": "Not configured",
593
+ "form_section": "common-security-controls",
594
+ "notes": "Enable and configure rate limiting rules",
595
+ "mutually_exclusive_with": [
596
+ "spec.disable_rate_limit"
597
+ ]
598
+ },
599
+ "spec.disable_rate_limit": {
600
+ "widget_type": "listbox",
601
+ "label": "Rate Limiting",
602
+ "default": "Disable",
603
+ "form_section": "common-security-controls",
604
+ "notes": "Empty object sentinel — rate limiting disabled",
605
+ "mutually_exclusive_with": [
606
+ "spec.rate_limit"
607
+ ]
608
+ },
609
+ "spec.trusted_clients": {
610
+ "widget_type": "configurable",
611
+ "label": "Trusted Client Rules",
612
+ "required": false,
613
+ "default_state": "Not configured",
614
+ "configure_action": "Configure",
615
+ "form_section": "common-security-controls"
616
+ },
617
+ "spec.blocked_clients": {
618
+ "widget_type": "configurable",
619
+ "label": "Client Blocking Rules",
620
+ "required": false,
621
+ "default_state": "Not configured",
622
+ "configure_action": "Configure",
623
+ "form_section": "common-security-controls"
624
+ },
625
+ "spec.cors_policy": {
626
+ "widget_type": "configurable",
627
+ "label": "CORS Policy",
628
+ "required": false,
629
+ "default_state": "Not configured",
630
+ "configure_action": "Configure",
631
+ "form_section": "common-security-controls"
632
+ },
633
+ "spec.advertise_on_public": {
634
+ "widget_type": "listbox",
635
+ "label": "VIP Advertisement",
636
+ "required": false,
637
+ "default": "Internet",
638
+ "options": [
639
+ "Internet",
640
+ "Internet with VIP on RE",
641
+ "Custom"
642
+ ],
643
+ "form_section": "other-settings",
644
+ "mutually_exclusive_with": [
645
+ "spec.advertise_on_public_default_vip",
646
+ "spec.advertise_custom",
647
+ "spec.do_not_advertise"
648
+ ]
649
+ },
650
+ "spec.advertise_on_public_default_vip": {
651
+ "widget_type": "listbox",
652
+ "label": "VIP Advertisement",
653
+ "form_section": "other-settings",
654
+ "notes": "Empty object sentinel — advertise on public with default VIP",
655
+ "mutually_exclusive_with": [
656
+ "spec.advertise_on_public",
657
+ "spec.advertise_custom",
658
+ "spec.do_not_advertise"
659
+ ]
660
+ },
661
+ "spec.advertise_custom": {
662
+ "widget_type": "configurable",
663
+ "label": "VIP Advertisement",
664
+ "form_section": "other-settings",
665
+ "notes": "Custom advertisement configuration",
666
+ "mutually_exclusive_with": [
667
+ "spec.advertise_on_public",
668
+ "spec.advertise_on_public_default_vip",
669
+ "spec.do_not_advertise"
670
+ ]
671
+ },
672
+ "spec.do_not_advertise": {
673
+ "widget_type": "listbox",
674
+ "label": "VIP Advertisement",
675
+ "form_section": "other-settings",
676
+ "notes": "Empty object sentinel — do not advertise",
677
+ "mutually_exclusive_with": [
678
+ "spec.advertise_on_public",
679
+ "spec.advertise_on_public_default_vip",
680
+ "spec.advertise_custom"
681
+ ]
682
+ },
683
+ "spec.round_robin": {
684
+ "widget_type": "listbox",
685
+ "label": "LB Algorithm",
686
+ "required": false,
687
+ "default": "Round Robin",
688
+ "form_section": "other-settings",
689
+ "notes": "Empty object sentinel — round-robin load balancing",
690
+ "mutually_exclusive_with": [
691
+ "spec.least_active",
692
+ "spec.random",
693
+ "spec.ring_hash",
694
+ "spec.source_ip_stickiness",
695
+ "spec.cookie_stickiness"
696
+ ]
697
+ },
698
+ "spec.least_active": {
699
+ "widget_type": "listbox",
700
+ "label": "LB Algorithm",
701
+ "form_section": "other-settings",
702
+ "notes": "Empty object sentinel — least active request",
703
+ "mutually_exclusive_with": [
704
+ "spec.round_robin",
705
+ "spec.random",
706
+ "spec.ring_hash",
707
+ "spec.source_ip_stickiness",
708
+ "spec.cookie_stickiness"
709
+ ]
710
+ },
711
+ "spec.random": {
712
+ "widget_type": "listbox",
713
+ "label": "LB Algorithm",
714
+ "form_section": "other-settings",
715
+ "notes": "Empty object sentinel — random selection",
716
+ "mutually_exclusive_with": [
717
+ "spec.round_robin",
718
+ "spec.least_active",
719
+ "spec.ring_hash",
720
+ "spec.source_ip_stickiness",
721
+ "spec.cookie_stickiness"
722
+ ]
723
+ },
724
+ "spec.ring_hash": {
725
+ "widget_type": "configurable",
726
+ "label": "LB Algorithm",
727
+ "form_section": "other-settings",
728
+ "notes": "Ring hash with configurable hash policy",
729
+ "mutually_exclusive_with": [
730
+ "spec.round_robin",
731
+ "spec.least_active",
732
+ "spec.random",
733
+ "spec.source_ip_stickiness",
734
+ "spec.cookie_stickiness"
735
+ ]
736
+ },
737
+ "spec.source_ip_stickiness": {
738
+ "widget_type": "listbox",
739
+ "label": "LB Algorithm",
740
+ "form_section": "other-settings",
741
+ "notes": "Empty object sentinel — source IP stickiness",
742
+ "mutually_exclusive_with": [
743
+ "spec.round_robin",
744
+ "spec.least_active",
745
+ "spec.random",
746
+ "spec.ring_hash",
747
+ "spec.cookie_stickiness"
748
+ ]
749
+ },
750
+ "spec.cookie_stickiness": {
751
+ "widget_type": "configurable",
752
+ "label": "LB Algorithm",
753
+ "form_section": "other-settings",
754
+ "notes": "Cookie-based stickiness with configurable cookie",
755
+ "mutually_exclusive_with": [
756
+ "spec.round_robin",
757
+ "spec.least_active",
758
+ "spec.random",
759
+ "spec.ring_hash",
760
+ "spec.source_ip_stickiness"
761
+ ]
762
+ },
763
+ "spec.disable_trust_client_ip_headers": {
764
+ "widget_type": "listbox",
765
+ "label": "Trusted Client IP Headers",
766
+ "required": false,
767
+ "default": "Disable",
768
+ "form_section": "other-settings",
769
+ "notes": "Empty object sentinel — trusted client IP headers disabled",
770
+ "mutually_exclusive_with": [
771
+ "spec.enable_trust_client_ip_headers"
772
+ ]
773
+ },
774
+ "spec.enable_trust_client_ip_headers": {
775
+ "widget_type": "configurable",
776
+ "label": "Trusted Client IP Headers",
777
+ "required": false,
778
+ "form_section": "other-settings",
779
+ "notes": "Configure which headers to trust for client IP",
780
+ "mutually_exclusive_with": [
781
+ "spec.disable_trust_client_ip_headers"
782
+ ]
783
+ },
784
+ "spec.add_location": {
785
+ "widget_type": "checkbox",
786
+ "label": "Add Location",
787
+ "required": false,
788
+ "default": true,
789
+ "form_section": "other-settings"
790
+ },
791
+ "spec.more_option": {
792
+ "widget_type": "expandable",
793
+ "label": "More Options",
794
+ "required": false,
795
+ "form_section": "other-settings",
796
+ "notes": "Expands to reveal advanced configuration options"
797
+ },
798
+ "spec.multi_lb_app": {
799
+ "widget_type": "listbox",
800
+ "label": "Multi-LB Application",
801
+ "form_section": "other-settings",
802
+ "notes": "Empty object sentinel — multi load balancer application mode",
803
+ "mutually_exclusive_with": [
804
+ "spec.single_lb_app"
805
+ ]
806
+ },
807
+ "spec.single_lb_app": {
808
+ "widget_type": "configurable",
809
+ "label": "Single-LB Application",
810
+ "form_section": "other-settings",
811
+ "notes": "Single load balancer application settings",
812
+ "mutually_exclusive_with": [
813
+ "spec.multi_lb_app"
814
+ ]
815
+ },
816
+ "spec.system_default_timeouts": {
817
+ "widget_type": "listbox",
818
+ "label": "Timeouts",
819
+ "form_section": "other-settings",
820
+ "default": "Default",
821
+ "notes": "Empty object sentinel — use system default timeout values"
822
+ },
823
+ "spec.malware_protection_settings": {
824
+ "widget_type": "configurable",
825
+ "label": "Malware Protection",
826
+ "form_section": "malware-protection",
827
+ "disabled": true,
828
+ "disabled_reason": "Upgrade required",
829
+ "mutually_exclusive_with": [
830
+ "spec.disable_malware_protection"
831
+ ]
832
+ },
833
+ "spec.disable_malware_protection": {
834
+ "widget_type": "listbox",
835
+ "label": "Malware Protection",
836
+ "form_section": "malware-protection",
837
+ "disabled": true,
838
+ "disabled_reason": "Upgrade required",
839
+ "mutually_exclusive_with": [
840
+ "spec.malware_protection_settings"
841
+ ]
842
+ },
843
+ "spec.client_side_defense": {
844
+ "widget_type": "configurable",
845
+ "label": "Client-Side Defense",
846
+ "form_section": "client-side-defense",
847
+ "disabled": true,
848
+ "disabled_reason": "Upgrade required",
849
+ "mutually_exclusive_with": [
850
+ "spec.disable_client_side_defense"
851
+ ]
852
+ },
853
+ "spec.disable_client_side_defense": {
854
+ "widget_type": "listbox",
855
+ "label": "Client-Side Defense",
856
+ "form_section": "client-side-defense",
857
+ "disabled": true,
858
+ "disabled_reason": "Upgrade required",
859
+ "mutually_exclusive_with": [
860
+ "spec.client_side_defense"
861
+ ]
862
+ }
863
+ },
864
+ "origin_pool": {
865
+ "metadata.name": {
866
+ "widget_type": "textbox",
867
+ "label": "Name",
868
+ "required": true,
869
+ "form_section": "metadata",
870
+ "validation": {
871
+ "pattern": "^[a-z][a-z0-9-]*$",
872
+ "max_length": 64
873
+ }
874
+ },
875
+ "metadata.labels": {
876
+ "widget_type": "key-value-pairs",
877
+ "label": "Labels",
878
+ "required": false,
879
+ "add_action": "Add Label",
880
+ "form_section": "metadata"
881
+ },
882
+ "metadata.description": {
883
+ "widget_type": "textbox",
884
+ "label": "Description",
885
+ "required": false,
886
+ "form_section": "metadata"
887
+ },
888
+ "spec.origin_servers": {
889
+ "widget_type": "nested-resource-list",
890
+ "label": "Origin Servers",
891
+ "required": true,
892
+ "add_action": "Add Item",
893
+ "form_section": "origin-servers",
894
+ "sub_field_label": "DNS Name",
895
+ "description": "Default type: Public DNS Name. The sub-form requires \"DNS Name\" (FQDN of the origin).",
896
+ "item_types": {
897
+ "public_name": {
898
+ "label": "Public DNS Name",
899
+ "fields": [
900
+ "dns_name",
901
+ "refresh_interval"
902
+ ]
903
+ },
904
+ "public_ip": {
905
+ "label": "Public IP",
906
+ "fields": [
907
+ "ip"
908
+ ]
909
+ },
910
+ "private_ip": {
911
+ "label": "Private IP",
912
+ "fields": [
913
+ "ip",
914
+ "site_locator",
915
+ "inside_network",
916
+ "outside_network",
917
+ "segment",
918
+ "snat_pool"
919
+ ]
920
+ },
921
+ "private_name": {
922
+ "label": "Private DNS Name",
923
+ "fields": [
924
+ "dns_name",
925
+ "refresh_interval",
926
+ "site_locator",
927
+ "inside_network",
928
+ "outside_network",
929
+ "segment",
930
+ "snat_pool"
931
+ ]
932
+ },
933
+ "k8s_service": {
934
+ "label": "K8s Service",
935
+ "fields": [
936
+ "service_name",
937
+ "site_locator",
938
+ "inside_network",
939
+ "outside_network",
940
+ "protocol",
941
+ "snat_pool",
942
+ "vk8s_networks"
943
+ ]
944
+ },
945
+ "consul_service": {
946
+ "label": "Consul Service",
947
+ "fields": [
948
+ "service_name",
949
+ "site_locator",
950
+ "inside_network",
951
+ "outside_network",
952
+ "snat_pool"
953
+ ]
954
+ },
955
+ "custom_endpoint_object": {
956
+ "label": "Custom Endpoint",
957
+ "fields": [
958
+ "endpoint"
959
+ ]
960
+ },
961
+ "vn_private_ip": {
962
+ "label": "Virtual Network Private IP",
963
+ "fields": [
964
+ "ip",
965
+ "virtual_network"
966
+ ]
967
+ },
968
+ "vn_private_name": {
969
+ "label": "Virtual Network Private Name",
970
+ "fields": [
971
+ "dns_name",
972
+ "private_network"
973
+ ]
974
+ }
975
+ }
976
+ },
977
+ "spec.port": {
978
+ "widget_type": "spinbutton",
979
+ "label": "Port",
980
+ "required": true,
981
+ "default": 443,
982
+ "form_section": "origin-servers"
983
+ },
984
+ "spec.healthcheck": {
985
+ "widget_type": "resource-selector",
986
+ "label": "Health Checks",
987
+ "resource_type": "healthcheck",
988
+ "required": false,
989
+ "form_section": "health-checks"
990
+ },
991
+ "spec.use_tls": {
992
+ "widget_type": "configurable",
993
+ "label": "TLS",
994
+ "form_section": "tls",
995
+ "nested_properties": 13,
996
+ "notes": "Contains tls_config, mTLS, server verification, SNI, session caching"
997
+ },
998
+ "spec.advanced_options": {
999
+ "widget_type": "configurable",
1000
+ "label": "Other Settings",
1001
+ "form_section": "other-settings",
1002
+ "nested_properties": 21,
1003
+ "notes": "Circuit breaker, outlier detection, connection timeouts, proxy protocol, subsets"
1004
+ }
1005
+ },
1006
+ "app_firewall": {
1007
+ "metadata.name": {
1008
+ "widget_type": "textbox",
1009
+ "label": "Name",
1010
+ "required": true,
1011
+ "form_section": "metadata",
1012
+ "validation": {
1013
+ "pattern": "^[a-z][a-z0-9-]*$",
1014
+ "max_length": 64
1015
+ }
1016
+ },
1017
+ "metadata.labels": {
1018
+ "widget_type": "key-value-pairs",
1019
+ "label": "Labels",
1020
+ "required": false,
1021
+ "add_action": "Add Label",
1022
+ "form_section": "metadata"
1023
+ },
1024
+ "metadata.description": {
1025
+ "widget_type": "textbox",
1026
+ "label": "Description",
1027
+ "required": false,
1028
+ "form_section": "metadata"
1029
+ },
1030
+ "spec.enforcement_mode": {
1031
+ "widget_type": "listbox",
1032
+ "label": "Enforcement Mode",
1033
+ "required": true,
1034
+ "default": "Blocking",
1035
+ "options": [
1036
+ "Monitoring",
1037
+ "Blocking"
1038
+ ],
1039
+ "form_section": "enforcement-mode"
1040
+ },
1041
+ "spec.detection_settings": {
1042
+ "widget_type": "configurable",
1043
+ "label": "Detection Settings",
1044
+ "required": false,
1045
+ "default_state": "Not configured",
1046
+ "configure_action": "Configure",
1047
+ "form_section": "security-policy-settings"
1048
+ }
1049
+ },
1050
+ "tcp_loadbalancer": {
1051
+ "metadata.name": {
1052
+ "widget_type": "textbox",
1053
+ "label": "Name",
1054
+ "required": true,
1055
+ "form_section": "metadata"
1056
+ },
1057
+ "domains": {
1058
+ "widget_type": "table",
1059
+ "label": "Domains",
1060
+ "required": true,
1061
+ "add_item_first": true,
1062
+ "form_section": "basic-configuration",
1063
+ "description": "TCP LB Domains table starts EMPTY (0 items) — needs Add Item click before filling. Fills via ngx-datatable grid real-typing after row creation."
1064
+ },
1065
+ "listen_port": {
1066
+ "widget_type": "spinbutton",
1067
+ "label": "Listen Port",
1068
+ "required": true,
1069
+ "form_section": "basic-configuration"
1070
+ },
1071
+ "no_sni": {
1072
+ "widget_type": "listbox",
1073
+ "label": "No SNI",
1074
+ "form_section": "basic-configuration",
1075
+ "mutually_exclusive_with": [
1076
+ "sni"
1077
+ ]
1078
+ },
1079
+ "origin_pools_weights": {
1080
+ "widget_type": "nested-resource-list",
1081
+ "label": "Origin Pools",
1082
+ "add_action": "Add Item",
1083
+ "form_section": "basic-configuration"
1084
+ },
1085
+ "advertise_on_public": {
1086
+ "widget_type": "listbox",
1087
+ "label": "Advertise On Public",
1088
+ "default": "Advertise On Public",
1089
+ "form_section": "basic-configuration"
1090
+ },
1091
+ "tcp": {
1092
+ "widget_type": "listbox",
1093
+ "label": "TCP",
1094
+ "default": "TCP",
1095
+ "form_section": "load-balancing-control",
1096
+ "mutually_exclusive_with": [
1097
+ "tcp_proxy",
1098
+ "sni_based"
1099
+ ]
1100
+ },
1101
+ "round_robin": {
1102
+ "widget_type": "listbox",
1103
+ "label": "Round Robin",
1104
+ "default": "Round Robin",
1105
+ "form_section": "load-balancing-control"
1106
+ },
1107
+ "service_policies_from_namespace": {
1108
+ "widget_type": "listbox",
1109
+ "label": "Apply Namespace Service Policies",
1110
+ "form_section": "service-policies"
1111
+ },
1112
+ "spec.port_choice": {
1113
+ "required": true,
1114
+ "label": "Listen Port",
1115
+ "form_section": "basic-configuration",
1116
+ "default": "Listen Port",
1117
+ "options": [
1118
+ "Listen Port",
1119
+ "Port Ranges"
1120
+ ],
1121
+ "description": "vsui listbox dropdown. Verified from live form screenshot.",
1122
+ "widget_type": "listbox"
1123
+ }
1124
+ },
1125
+ "healthcheck": {
1126
+ "http_health_check": {
1127
+ "widget_type": "configurable",
1128
+ "label": "HTTP HealthCheck",
1129
+ "form_section": "health-check-parameters",
1130
+ "mutually_exclusive_with": [
1131
+ "tcp_health_check"
1132
+ ]
1133
+ },
1134
+ "timeout": {
1135
+ "widget_type": "spinbutton",
1136
+ "label": "Timeout",
1137
+ "default": 3,
1138
+ "form_section": "health-check-parameters"
1139
+ },
1140
+ "interval": {
1141
+ "widget_type": "spinbutton",
1142
+ "label": "Interval",
1143
+ "default": 15,
1144
+ "form_section": "health-check-parameters"
1145
+ },
1146
+ "unhealthy_threshold": {
1147
+ "widget_type": "spinbutton",
1148
+ "label": "Unhealthy Threshold",
1149
+ "default": 1,
1150
+ "form_section": "health-check-parameters"
1151
+ },
1152
+ "healthy_threshold": {
1153
+ "widget_type": "spinbutton",
1154
+ "label": "Healthy Threshold",
1155
+ "default": 3,
1156
+ "form_section": "health-check-parameters"
1157
+ },
1158
+ "spec.health_check": {
1159
+ "required": true,
1160
+ "label": "Health Check",
1161
+ "form_section": "basic-configuration",
1162
+ "description": "Server-required: Field should be not nil",
1163
+ "widget_type": "configurable"
1164
+ }
1165
+ },
1166
+ "service_policy": {
1167
+ "metadata.name": {
1168
+ "widget_type": "textbox",
1169
+ "label": "Name",
1170
+ "required": true,
1171
+ "form_section": "metadata"
1172
+ },
1173
+ "metadata.labels": {
1174
+ "widget_type": "key-value-pairs",
1175
+ "label": "Labels",
1176
+ "form_section": "metadata"
1177
+ },
1178
+ "metadata.description": {
1179
+ "widget_type": "textbox",
1180
+ "label": "Description",
1181
+ "form_section": "metadata"
1182
+ },
1183
+ "spec.any_server": {
1184
+ "widget_type": "listbox",
1185
+ "label": "Any Server",
1186
+ "default": "Any Server",
1187
+ "form_section": "servers",
1188
+ "mutually_exclusive_with": [
1189
+ "spec.server_name",
1190
+ "spec.server_name_matcher",
1191
+ "spec.server_selector"
1192
+ ]
1193
+ },
1194
+ "spec.rule_list": {
1195
+ "widget_type": "configurable",
1196
+ "label": "Custom Rule List",
1197
+ "form_section": "rules",
1198
+ "mutually_exclusive_with": [
1199
+ "spec.allow_all_requests",
1200
+ "spec.deny_all_requests",
1201
+ "spec.allow_list",
1202
+ "spec.deny_list"
1203
+ ],
1204
+ "notes": "Opens nested rule editor with match conditions and actions"
1205
+ },
1206
+ "spec.rule_choice": {
1207
+ "required": true,
1208
+ "label": "Rule Choice",
1209
+ "form_section": "basic-configuration",
1210
+ "description": "Server-required: Field should be not nil",
1211
+ "widget_type": "configurable",
1212
+ "console_preselected": true
1213
+ }
1214
+ },
1215
+ "virtual_host": {
1216
+ "metadata.name": {
1217
+ "widget_type": "textbox",
1218
+ "label": "Name",
1219
+ "required": true,
1220
+ "form_section": "metadata"
1221
+ },
1222
+ "metadata.labels": {
1223
+ "widget_type": "key-value-pairs",
1224
+ "label": "Labels",
1225
+ "form_section": "metadata"
1226
+ },
1227
+ "metadata.description": {
1228
+ "widget_type": "textbox",
1229
+ "label": "Description",
1230
+ "form_section": "metadata"
1231
+ },
1232
+ "spec.domains": {
1233
+ "widget_type": "table",
1234
+ "label": "Domains",
1235
+ "required": true,
1236
+ "add_action": "Add Item",
1237
+ "form_section": "basic"
1238
+ },
1239
+ "spec.routes": {
1240
+ "widget_type": "nested-resource-list",
1241
+ "label": "Routes",
1242
+ "add_action": "Add Item",
1243
+ "form_section": "routes"
1244
+ },
1245
+ "spec.proxy": {
1246
+ "widget_type": "configurable",
1247
+ "label": "Proxy",
1248
+ "form_section": "proxy",
1249
+ "notes": "Proxy settings including connection and routing behavior",
1250
+ "required": true,
1251
+ "description": "Server-required: Must be SMA_PROXY or UDP_PROXY"
1252
+ },
1253
+ "spec.tls_parameters": {
1254
+ "widget_type": "configurable",
1255
+ "label": "TLS Parameters",
1256
+ "form_section": "tls",
1257
+ "notes": "Downstream TLS configuration"
1258
+ },
1259
+ "spec.cors_policy": {
1260
+ "widget_type": "configurable",
1261
+ "label": "CORS Policy",
1262
+ "form_section": "security"
1263
+ },
1264
+ "spec.csrf_policy": {
1265
+ "widget_type": "configurable",
1266
+ "label": "CSRF Policy",
1267
+ "form_section": "security"
1268
+ },
1269
+ "spec.waf_type": {
1270
+ "widget_type": "configurable",
1271
+ "label": "WAF Type",
1272
+ "form_section": "security"
1273
+ },
1274
+ "spec.buffer_policy": {
1275
+ "widget_type": "configurable",
1276
+ "label": "Buffer Policy",
1277
+ "form_section": "advanced"
1278
+ },
1279
+ "spec.compression_params": {
1280
+ "widget_type": "configurable",
1281
+ "label": "Compression",
1282
+ "form_section": "advanced"
1283
+ },
1284
+ "spec.retry_policy": {
1285
+ "widget_type": "configurable",
1286
+ "label": "Retry Policy",
1287
+ "form_section": "advanced"
1288
+ }
1289
+ },
1290
+ "namespace": {
1291
+ "metadata.name": {
1292
+ "widget_type": "textbox",
1293
+ "label": "Namespace Name",
1294
+ "required": true,
1295
+ "form_section": "metadata",
1296
+ "notes": "System-level resource — no namespace scope",
1297
+ "description": "Live form uses aria-label \"Namespace Name\" (not standard \"Name\")"
1298
+ },
1299
+ "metadata.description": {
1300
+ "widget_type": "textbox",
1301
+ "label": "Description",
1302
+ "form_section": "metadata"
1303
+ }
1304
+ },
1305
+ "cdn_loadbalancer": {
1306
+ "metadata.name": {
1307
+ "widget_type": "textbox",
1308
+ "label": "Name",
1309
+ "required": true,
1310
+ "form_section": "metadata"
1311
+ },
1312
+ "metadata.labels": {
1313
+ "widget_type": "key-value-pairs",
1314
+ "label": "Labels",
1315
+ "form_section": "metadata"
1316
+ },
1317
+ "metadata.description": {
1318
+ "widget_type": "textbox",
1319
+ "label": "Description",
1320
+ "form_section": "metadata"
1321
+ },
1322
+ "spec.domains": {
1323
+ "widget_type": "table",
1324
+ "label": "Domains",
1325
+ "required": true,
1326
+ "add_action": "Add Item",
1327
+ "form_section": "basic"
1328
+ },
1329
+ "spec.https_auto_cert": {
1330
+ "widget_type": "listbox",
1331
+ "label": "Load Balancer Type",
1332
+ "required": true,
1333
+ "default": "HTTPS with Automatic Certificate",
1334
+ "form_section": "basic"
1335
+ },
1336
+ "spec.app_firewall": {
1337
+ "widget_type": "resource-selector",
1338
+ "label": "WAF",
1339
+ "form_section": "waf"
1340
+ }
1341
+ },
1342
+ "aws_vpc_site": {
1343
+ "metadata.name": {
1344
+ "widget_type": "textbox",
1345
+ "label": "Name",
1346
+ "required": true,
1347
+ "form_section": "metadata"
1348
+ },
1349
+ "metadata.labels": {
1350
+ "widget_type": "key-value-pairs",
1351
+ "label": "Labels",
1352
+ "form_section": "metadata"
1353
+ },
1354
+ "metadata.description": {
1355
+ "widget_type": "textbox",
1356
+ "label": "Description",
1357
+ "form_section": "metadata"
1358
+ },
1359
+ "spec.aws_region": {
1360
+ "widget_type": "listbox",
1361
+ "label": "AWS Region",
1362
+ "required": true,
1363
+ "form_section": "basic"
1364
+ },
1365
+ "spec.aws_cred": {
1366
+ "widget_type": "resource-selector",
1367
+ "label": "AWS Credentials",
1368
+ "required": true,
1369
+ "form_section": "basic"
1370
+ },
1371
+ "spec.instance_type": {
1372
+ "widget_type": "listbox",
1373
+ "label": "Instance Type",
1374
+ "form_section": "basic"
1375
+ },
1376
+ "spec.deployment": {
1377
+ "required": true,
1378
+ "label": "Deployment",
1379
+ "form_section": "basic-configuration",
1380
+ "description": "Server-required: Field should be not nil",
1381
+ "widget_type": "configurable"
1382
+ }
1383
+ },
1384
+ "azure_vnet_site": {
1385
+ "metadata.name": {
1386
+ "widget_type": "textbox",
1387
+ "label": "Name",
1388
+ "required": true,
1389
+ "form_section": "metadata"
1390
+ },
1391
+ "metadata.labels": {
1392
+ "widget_type": "key-value-pairs",
1393
+ "label": "Labels",
1394
+ "form_section": "metadata"
1395
+ },
1396
+ "metadata.description": {
1397
+ "widget_type": "textbox",
1398
+ "label": "Description",
1399
+ "form_section": "metadata"
1400
+ },
1401
+ "spec.azure_region": {
1402
+ "widget_type": "listbox",
1403
+ "label": "Azure Region",
1404
+ "required": true,
1405
+ "form_section": "basic"
1406
+ },
1407
+ "spec.azure_cred": {
1408
+ "widget_type": "resource-selector",
1409
+ "label": "Azure Credentials",
1410
+ "required": true,
1411
+ "form_section": "basic"
1412
+ },
1413
+ "spec.machine_type": {
1414
+ "widget_type": "listbox",
1415
+ "label": "Machine Type",
1416
+ "form_section": "basic"
1417
+ },
1418
+ "spec.deployment": {
1419
+ "required": true,
1420
+ "label": "Deployment",
1421
+ "form_section": "basic-configuration",
1422
+ "description": "Server-required: Field should be not nil",
1423
+ "widget_type": "configurable"
1424
+ }
1425
+ },
1426
+ "gcp_vpc_site": {
1427
+ "metadata.name": {
1428
+ "widget_type": "textbox",
1429
+ "label": "Name",
1430
+ "required": true,
1431
+ "form_section": "metadata"
1432
+ },
1433
+ "metadata.labels": {
1434
+ "widget_type": "key-value-pairs",
1435
+ "label": "Labels",
1436
+ "form_section": "metadata"
1437
+ },
1438
+ "metadata.description": {
1439
+ "widget_type": "textbox",
1440
+ "label": "Description",
1441
+ "form_section": "metadata"
1442
+ },
1443
+ "spec.cloud_credentials": {
1444
+ "widget_type": "resource-selector",
1445
+ "label": "GCP Credentials",
1446
+ "required": true,
1447
+ "form_section": "basic"
1448
+ },
1449
+ "spec.gcp_region": {
1450
+ "widget_type": "listbox",
1451
+ "label": "GCP Region",
1452
+ "form_section": "basic"
1453
+ },
1454
+ "spec.deployment": {
1455
+ "required": true,
1456
+ "label": "Deployment",
1457
+ "form_section": "basic-configuration",
1458
+ "description": "Server-required: Field should be not nil",
1459
+ "widget_type": "configurable"
1460
+ }
1461
+ },
1462
+ "dns_zone": {
1463
+ "metadata.name": {
1464
+ "widget_type": "textbox",
1465
+ "label": "Name",
1466
+ "required": true,
1467
+ "form_section": "metadata"
1468
+ },
1469
+ "metadata.labels": {
1470
+ "widget_type": "key-value-pairs",
1471
+ "label": "Labels",
1472
+ "form_section": "metadata"
1473
+ },
1474
+ "metadata.description": {
1475
+ "widget_type": "textbox",
1476
+ "label": "Description",
1477
+ "form_section": "metadata"
1478
+ },
1479
+ "spec.primary": {
1480
+ "widget_type": "configurable",
1481
+ "label": "Primary DNS Zone",
1482
+ "form_section": "zone-type"
1483
+ },
1484
+ "spec.domain": {
1485
+ "widget_type": "textbox",
1486
+ "label": "Domain",
1487
+ "required": true,
1488
+ "form_section": "basic"
1489
+ }
1490
+ },
1491
+ "dns_load_balancer": {
1492
+ "metadata.name": {
1493
+ "widget_type": "textbox",
1494
+ "label": "Name",
1495
+ "required": true,
1496
+ "form_section": "metadata"
1497
+ },
1498
+ "metadata.labels": {
1499
+ "widget_type": "key-value-pairs",
1500
+ "label": "Labels",
1501
+ "form_section": "metadata"
1502
+ },
1503
+ "metadata.description": {
1504
+ "widget_type": "textbox",
1505
+ "label": "Description",
1506
+ "form_section": "metadata"
1507
+ },
1508
+ "spec.record_type": {
1509
+ "widget_type": "listbox",
1510
+ "label": "Record Type",
1511
+ "required": true,
1512
+ "form_section": "basic"
1513
+ },
1514
+ "spec.dns_lb_pool": {
1515
+ "widget_type": "resource-selector",
1516
+ "label": "DNS LB Pool",
1517
+ "form_section": "basic"
1518
+ },
1519
+ "spec.load_balancing_rules": {
1520
+ "widget_type": "nested-resource-list",
1521
+ "label": "Load Balancing Rules",
1522
+ "required": true,
1523
+ "add_action": "Add Item",
1524
+ "sub_select_label": "Pool",
1525
+ "sub_resource_type": "dns_lb_pool",
1526
+ "form_section": "load-balancing-rules",
1527
+ "description": "At least one Load Balancing Rule. Each rule selects a Pool (references an existing dns_lb_pool — dependency; create one first)."
1528
+ }
1529
+ },
1530
+ "global_log_receiver": {
1531
+ "metadata.name": {
1532
+ "widget_type": "textbox",
1533
+ "label": "Name",
1534
+ "required": true,
1535
+ "form_section": "metadata"
1536
+ },
1537
+ "metadata.labels": {
1538
+ "widget_type": "key-value-pairs",
1539
+ "label": "Labels",
1540
+ "form_section": "metadata"
1541
+ },
1542
+ "metadata.description": {
1543
+ "widget_type": "textbox",
1544
+ "label": "Description",
1545
+ "form_section": "metadata"
1546
+ },
1547
+ "spec.filter": {
1548
+ "widget_type": "configurable",
1549
+ "label": "Log Filter",
1550
+ "form_section": "basic"
1551
+ },
1552
+ "spec.receiver": {
1553
+ "widget_type": "configurable",
1554
+ "label": "Receiver Configuration",
1555
+ "required": true,
1556
+ "form_section": "basic"
1557
+ },
1558
+ "spec.log_type": {
1559
+ "required": true,
1560
+ "label": "Log Type",
1561
+ "form_section": "basic-configuration",
1562
+ "description": "Server-required: Field should be not nil",
1563
+ "widget_type": "configurable"
1564
+ }
1565
+ },
1566
+ "k8s_cluster": {
1567
+ "metadata.name": {
1568
+ "widget_type": "textbox",
1569
+ "label": "Name",
1570
+ "required": true,
1571
+ "form_section": "metadata"
1572
+ },
1573
+ "metadata.labels": {
1574
+ "widget_type": "key-value-pairs",
1575
+ "label": "Labels",
1576
+ "form_section": "metadata"
1577
+ },
1578
+ "metadata.description": {
1579
+ "widget_type": "textbox",
1580
+ "label": "Description",
1581
+ "form_section": "metadata"
1582
+ },
1583
+ "spec.cluster_wide_app_list": {
1584
+ "widget_type": "configurable",
1585
+ "label": "Cluster-Wide Apps",
1586
+ "form_section": "basic"
1587
+ }
1588
+ },
1589
+ "v1_http_monitor": {
1590
+ "metadata.name": {
1591
+ "widget_type": "textbox",
1592
+ "label": "Name",
1593
+ "required": true,
1594
+ "form_section": "metadata"
1595
+ },
1596
+ "metadata.labels": {
1597
+ "widget_type": "key-value-pairs",
1598
+ "label": "Labels",
1599
+ "form_section": "metadata"
1600
+ },
1601
+ "metadata.description": {
1602
+ "widget_type": "textbox",
1603
+ "label": "Description",
1604
+ "form_section": "metadata"
1605
+ },
1606
+ "spec.url": {
1607
+ "widget_type": "textbox",
1608
+ "label": "URL",
1609
+ "required": true,
1610
+ "form_section": "basic"
1611
+ },
1612
+ "spec.interval": {
1613
+ "widget_type": "spinbutton",
1614
+ "label": "Interval",
1615
+ "form_section": "basic"
1616
+ }
1617
+ },
1618
+ "v1_dns_monitor": {
1619
+ "metadata.name": {
1620
+ "widget_type": "textbox",
1621
+ "label": "Name",
1622
+ "required": true,
1623
+ "form_section": "metadata"
1624
+ },
1625
+ "metadata.labels": {
1626
+ "widget_type": "key-value-pairs",
1627
+ "label": "Labels",
1628
+ "form_section": "metadata"
1629
+ },
1630
+ "metadata.description": {
1631
+ "widget_type": "textbox",
1632
+ "label": "Description",
1633
+ "form_section": "metadata"
1634
+ },
1635
+ "spec.domain": {
1636
+ "widget_type": "textbox",
1637
+ "label": "Domain",
1638
+ "required": true,
1639
+ "form_section": "basic"
1640
+ },
1641
+ "spec.interval": {
1642
+ "widget_type": "spinbutton",
1643
+ "label": "Interval",
1644
+ "form_section": "basic"
1645
+ }
1646
+ },
1647
+ "aws_tgw_site": {
1648
+ "metadata.name": {
1649
+ "widget_type": "textbox",
1650
+ "label": "Name",
1651
+ "required": true,
1652
+ "form_section": "metadata"
1653
+ },
1654
+ "metadata.labels": {
1655
+ "widget_type": "key-value-pairs",
1656
+ "label": "Labels",
1657
+ "form_section": "metadata"
1658
+ },
1659
+ "metadata.description": {
1660
+ "widget_type": "textbox",
1661
+ "label": "Description",
1662
+ "form_section": "metadata"
1663
+ },
1664
+ "spec.aws_parameters": {
1665
+ "widget_type": "configurable",
1666
+ "label": "AWS Parameters",
1667
+ "required": true,
1668
+ "form_section": "basic"
1669
+ }
1670
+ },
1671
+ "voltstack_site": {
1672
+ "metadata.name": {
1673
+ "widget_type": "textbox",
1674
+ "label": "Name",
1675
+ "required": true,
1676
+ "form_section": "metadata"
1677
+ },
1678
+ "metadata.labels": {
1679
+ "widget_type": "key-value-pairs",
1680
+ "label": "Labels",
1681
+ "form_section": "metadata"
1682
+ },
1683
+ "metadata.description": {
1684
+ "widget_type": "textbox",
1685
+ "label": "Description",
1686
+ "form_section": "metadata"
1687
+ },
1688
+ "spec.master_nodes": {
1689
+ "widget_type": "configurable",
1690
+ "label": "Master Nodes",
1691
+ "form_section": "basic"
1692
+ },
1693
+ "spec.volterra_certified_hw": {
1694
+ "required": true,
1695
+ "label": "Volterra Certified Hw",
1696
+ "form_section": "basic-configuration",
1697
+ "description": "Server-required: Minimum length of 1",
1698
+ "widget_type": "configurable"
1699
+ }
1700
+ },
1701
+ "udp_loadbalancer": {
1702
+ "metadata.name": {
1703
+ "widget_type": "textbox",
1704
+ "label": "Name",
1705
+ "required": true,
1706
+ "form_section": "metadata"
1707
+ },
1708
+ "metadata.labels": {
1709
+ "widget_type": "key-value-pairs",
1710
+ "label": "Labels",
1711
+ "form_section": "metadata"
1712
+ },
1713
+ "metadata.description": {
1714
+ "widget_type": "textbox",
1715
+ "label": "Description",
1716
+ "form_section": "metadata"
1717
+ },
1718
+ "spec.domains": {
1719
+ "widget_type": "table",
1720
+ "label": "Domains",
1721
+ "add_action": "Add Item",
1722
+ "form_section": "basic"
1723
+ },
1724
+ "spec.listen_port": {
1725
+ "widget_type": "spinbutton",
1726
+ "label": "Listen Port",
1727
+ "form_section": "basic"
1728
+ }
1729
+ },
1730
+ "forward_proxy_policy": {
1731
+ "metadata.name": {
1732
+ "widget_type": "textbox",
1733
+ "label": "Name",
1734
+ "required": true,
1735
+ "form_section": "metadata"
1736
+ },
1737
+ "metadata.labels": {
1738
+ "widget_type": "key-value-pairs",
1739
+ "label": "Labels",
1740
+ "form_section": "metadata"
1741
+ },
1742
+ "metadata.description": {
1743
+ "widget_type": "textbox",
1744
+ "label": "Description",
1745
+ "form_section": "metadata"
1746
+ },
1747
+ "spec.any_proxy": {
1748
+ "widget_type": "listbox",
1749
+ "label": "Proxy",
1750
+ "default": "Any Proxy",
1751
+ "form_section": "basic"
1752
+ }
1753
+ },
1754
+ "network_policy": {
1755
+ "metadata.name": {
1756
+ "widget_type": "textbox",
1757
+ "label": "Name",
1758
+ "required": true,
1759
+ "form_section": "metadata"
1760
+ },
1761
+ "metadata.labels": {
1762
+ "widget_type": "key-value-pairs",
1763
+ "label": "Labels",
1764
+ "form_section": "metadata"
1765
+ },
1766
+ "metadata.description": {
1767
+ "widget_type": "textbox",
1768
+ "label": "Description",
1769
+ "form_section": "metadata"
1770
+ },
1771
+ "spec.endpoint": {
1772
+ "widget_type": "configurable",
1773
+ "label": "Endpoint",
1774
+ "form_section": "basic",
1775
+ "required": true,
1776
+ "description": "Server-required: Field should be not nil"
1777
+ }
1778
+ },
1779
+ "rate_limiter_policy": {
1780
+ "metadata.name": {
1781
+ "widget_type": "textbox",
1782
+ "label": "Name",
1783
+ "required": true,
1784
+ "form_section": "metadata"
1785
+ },
1786
+ "metadata.labels": {
1787
+ "widget_type": "key-value-pairs",
1788
+ "label": "Labels",
1789
+ "form_section": "metadata"
1790
+ },
1791
+ "metadata.description": {
1792
+ "widget_type": "textbox",
1793
+ "label": "Description",
1794
+ "form_section": "metadata"
1795
+ },
1796
+ "spec.rules": {
1797
+ "widget_type": "configurable",
1798
+ "label": "Rate Limit Rules",
1799
+ "form_section": "basic"
1800
+ }
1801
+ },
1802
+ "waf_exclusion_policy": {
1803
+ "metadata.name": {
1804
+ "widget_type": "textbox",
1805
+ "label": "Name",
1806
+ "required": true,
1807
+ "form_section": "metadata"
1808
+ },
1809
+ "metadata.labels": {
1810
+ "widget_type": "key-value-pairs",
1811
+ "label": "Labels",
1812
+ "form_section": "metadata"
1813
+ },
1814
+ "metadata.description": {
1815
+ "widget_type": "textbox",
1816
+ "label": "Description",
1817
+ "form_section": "metadata"
1818
+ },
1819
+ "spec.waf_exclusion_rules": {
1820
+ "widget_type": "configurable",
1821
+ "label": "Exclusion Rules",
1822
+ "form_section": "basic"
1823
+ }
1824
+ },
1825
+ "api_discovery": {
1826
+ "metadata.name": {
1827
+ "widget_type": "textbox",
1828
+ "label": "Name",
1829
+ "required": true,
1830
+ "form_section": "metadata"
1831
+ },
1832
+ "metadata.labels": {
1833
+ "widget_type": "key-value-pairs",
1834
+ "label": "Labels",
1835
+ "form_section": "metadata"
1836
+ },
1837
+ "metadata.description": {
1838
+ "widget_type": "textbox",
1839
+ "label": "Description",
1840
+ "form_section": "metadata"
1841
+ },
1842
+ "spec.discovered_api_settings": {
1843
+ "widget_type": "configurable",
1844
+ "label": "Discovery Settings",
1845
+ "form_section": "basic"
1846
+ }
1847
+ },
1848
+ "sensitive_data_policy": {
1849
+ "metadata.name": {
1850
+ "widget_type": "textbox",
1851
+ "label": "Name",
1852
+ "required": true,
1853
+ "form_section": "metadata"
1854
+ },
1855
+ "metadata.labels": {
1856
+ "widget_type": "key-value-pairs",
1857
+ "label": "Labels",
1858
+ "form_section": "metadata"
1859
+ },
1860
+ "metadata.description": {
1861
+ "widget_type": "textbox",
1862
+ "label": "Description",
1863
+ "form_section": "metadata"
1864
+ },
1865
+ "spec.sensitive_data_detection_rules": {
1866
+ "widget_type": "configurable",
1867
+ "label": "Detection Rules",
1868
+ "form_section": "basic"
1869
+ }
1870
+ },
1871
+ "data_type": {
1872
+ "metadata.name": {
1873
+ "widget_type": "textbox",
1874
+ "label": "Name",
1875
+ "required": true,
1876
+ "form_section": "metadata"
1877
+ },
1878
+ "metadata.labels": {
1879
+ "widget_type": "key-value-pairs",
1880
+ "label": "Labels",
1881
+ "form_section": "metadata"
1882
+ },
1883
+ "metadata.description": {
1884
+ "widget_type": "textbox",
1885
+ "label": "Description",
1886
+ "form_section": "metadata"
1887
+ },
1888
+ "spec.rules": {
1889
+ "widget_type": "configurable",
1890
+ "label": "Data Type Rules",
1891
+ "form_section": "basic",
1892
+ "required": true,
1893
+ "description": "Server-required: Minimum items of 1"
1894
+ }
1895
+ },
1896
+ "virtual_site": {
1897
+ "metadata.name": {
1898
+ "widget_type": "textbox",
1899
+ "label": "Name",
1900
+ "required": true,
1901
+ "form_section": "metadata"
1902
+ },
1903
+ "metadata.labels": {
1904
+ "widget_type": "key-value-pairs",
1905
+ "label": "Labels",
1906
+ "form_section": "metadata"
1907
+ },
1908
+ "metadata.description": {
1909
+ "widget_type": "textbox",
1910
+ "label": "Description",
1911
+ "form_section": "metadata"
1912
+ },
1913
+ "spec.site_selector": {
1914
+ "widget_type": "label-selector",
1915
+ "label": "Site Selector Expression",
1916
+ "form_section": "selector",
1917
+ "required": true,
1918
+ "add_action": "Add Label",
1919
+ "description": "CDK-portal label-selector: Add Label → type key prefix (e.g. \"ves\") → select from portal → operator → value. Verified live via label_select tool."
1920
+ },
1921
+ "spec.site_type": {
1922
+ "widget_type": "listbox",
1923
+ "label": "Site Type",
1924
+ "form_section": "basic",
1925
+ "required": true,
1926
+ "description": "Required: Site Type (RE = Regional Edge, CE = Customer Edge). Select from the listbox.",
1927
+ "options": [
1928
+ "RE",
1929
+ "CE"
1930
+ ],
1931
+ "default": "RE"
1932
+ }
1933
+ },
1934
+ "alert_policy": {
1935
+ "metadata.name": {
1936
+ "widget_type": "textbox",
1937
+ "label": "Name",
1938
+ "required": true,
1939
+ "form_section": "metadata"
1940
+ },
1941
+ "metadata.labels": {
1942
+ "widget_type": "key-value-pairs",
1943
+ "label": "Labels",
1944
+ "form_section": "metadata"
1945
+ },
1946
+ "metadata.description": {
1947
+ "widget_type": "textbox",
1948
+ "label": "Description",
1949
+ "form_section": "metadata"
1950
+ },
1951
+ "spec.receivers": {
1952
+ "widget_type": "resource-selector",
1953
+ "label": "Alert Receivers",
1954
+ "required": true,
1955
+ "form_section": "basic",
1956
+ "resource_type": "alert_receiver",
1957
+ "description": "Server-required: at least one Alert Receiver reference. Depends on an existing alert_receiver object (create one first)."
1958
+ },
1959
+ "spec.routes": {
1960
+ "widget_type": "nested-resource-list",
1961
+ "label": "Policy Rules",
1962
+ "required": true,
1963
+ "add_action": "Add Item",
1964
+ "form_section": "basic",
1965
+ "description": "Server-required: at least one alert policy rule (Field Policy Rules in Spec is required)."
1966
+ }
1967
+ },
1968
+ "secret_policy": {
1969
+ "metadata.name": {
1970
+ "widget_type": "textbox",
1971
+ "label": "Name",
1972
+ "required": true,
1973
+ "form_section": "metadata"
1974
+ },
1975
+ "metadata.labels": {
1976
+ "widget_type": "key-value-pairs",
1977
+ "label": "Labels",
1978
+ "form_section": "metadata"
1979
+ },
1980
+ "metadata.description": {
1981
+ "widget_type": "textbox",
1982
+ "label": "Description",
1983
+ "form_section": "metadata"
1984
+ },
1985
+ "spec.rules": {
1986
+ "widget_type": "configurable",
1987
+ "label": "Policy Rules",
1988
+ "form_section": "basic"
1989
+ }
1990
+ },
1991
+ "alert_receiver": {
1992
+ "metadata.name": {
1993
+ "widget_type": "textbox",
1994
+ "label": "Name",
1995
+ "required": true,
1996
+ "form_section": "metadata"
1997
+ },
1998
+ "metadata.labels": {
1999
+ "widget_type": "key-value-pairs",
2000
+ "label": "Labels",
2001
+ "form_section": "metadata"
2002
+ },
2003
+ "metadata.description": {
2004
+ "widget_type": "textbox",
2005
+ "label": "Description",
2006
+ "form_section": "metadata"
2007
+ },
2008
+ "spec.receiver": {
2009
+ "widget_type": "configurable",
2010
+ "label": "Receiver Configuration",
2011
+ "required": true,
2012
+ "form_section": "basic"
2013
+ }
2014
+ },
2015
+ "dns_lb_pool": {
2016
+ "metadata.name": {
2017
+ "widget_type": "textbox",
2018
+ "label": "Name",
2019
+ "required": true,
2020
+ "form_section": "metadata"
2021
+ },
2022
+ "metadata.labels": {
2023
+ "widget_type": "key-value-pairs",
2024
+ "label": "Labels",
2025
+ "form_section": "metadata"
2026
+ },
2027
+ "metadata.description": {
2028
+ "widget_type": "textbox",
2029
+ "label": "Description",
2030
+ "form_section": "metadata"
2031
+ },
2032
+ "spec.members": {
2033
+ "widget_type": "nested-resource-list",
2034
+ "label": "Pool Members",
2035
+ "form_section": "basic",
2036
+ "required": true,
2037
+ "add_action": "Add Item",
2038
+ "sub_field_label": "Public IP",
2039
+ "description": "Pool Members is a nested-resource-list (Add Item, NOT Configure — verified from live form). Default A record member needs a Public IP."
2040
+ }
2041
+ },
2042
+ "site_mesh_group": {
2043
+ "metadata.name": {
2044
+ "widget_type": "textbox",
2045
+ "label": "Name",
2046
+ "required": true,
2047
+ "form_section": "metadata"
2048
+ },
2049
+ "metadata.labels": {
2050
+ "widget_type": "key-value-pairs",
2051
+ "label": "Labels",
2052
+ "form_section": "metadata"
2053
+ },
2054
+ "metadata.description": {
2055
+ "widget_type": "textbox",
2056
+ "label": "Description",
2057
+ "form_section": "metadata"
2058
+ },
2059
+ "spec.type": {
2060
+ "widget_type": "listbox",
2061
+ "label": "Mesh Type",
2062
+ "form_section": "basic"
2063
+ },
2064
+ "spec.bfd_choice": {
2065
+ "required": true,
2066
+ "label": "Bfd Choice",
2067
+ "form_section": "basic-configuration",
2068
+ "description": "Server-required: Field should be not nil",
2069
+ "widget_type": "configurable"
2070
+ }
2071
+ },
2072
+ "ike_gateway": {
2073
+ "metadata.name": {
2074
+ "widget_type": "textbox",
2075
+ "label": "Name",
2076
+ "required": true,
2077
+ "form_section": "metadata"
2078
+ },
2079
+ "metadata.labels": {
2080
+ "widget_type": "key-value-pairs",
2081
+ "label": "Labels",
2082
+ "form_section": "metadata"
2083
+ },
2084
+ "metadata.description": {
2085
+ "widget_type": "textbox",
2086
+ "label": "Description",
2087
+ "form_section": "metadata"
2088
+ },
2089
+ "spec.remote_address": {
2090
+ "widget_type": "textbox",
2091
+ "label": "Remote Address",
2092
+ "form_section": "basic"
2093
+ }
2094
+ },
2095
+ "route": {
2096
+ "metadata.name": {
2097
+ "widget_type": "textbox",
2098
+ "label": "Name",
2099
+ "required": true,
2100
+ "form_section": "metadata"
2101
+ },
2102
+ "metadata.labels": {
2103
+ "widget_type": "key-value-pairs",
2104
+ "label": "Labels",
2105
+ "form_section": "metadata"
2106
+ },
2107
+ "metadata.description": {
2108
+ "widget_type": "textbox",
2109
+ "label": "Description",
2110
+ "form_section": "metadata"
2111
+ },
2112
+ "spec.simple_static_route": {
2113
+ "widget_type": "configurable",
2114
+ "label": "Static Route",
2115
+ "form_section": "basic"
2116
+ }
2117
+ },
2118
+ "address_allocator": {
2119
+ "metadata.name": {
2120
+ "widget_type": "textbox",
2121
+ "label": "Name",
2122
+ "required": true,
2123
+ "form_section": "metadata"
2124
+ },
2125
+ "metadata.labels": {
2126
+ "widget_type": "key-value-pairs",
2127
+ "label": "Labels",
2128
+ "form_section": "metadata"
2129
+ },
2130
+ "metadata.description": {
2131
+ "widget_type": "textbox",
2132
+ "label": "Description",
2133
+ "form_section": "metadata"
2134
+ },
2135
+ "spec.address_allocator_mode": {
2136
+ "widget_type": "listbox",
2137
+ "label": "Address Allocator Mode",
2138
+ "required": true,
2139
+ "form_section": "address-allocation-scheme"
2140
+ },
2141
+ "spec.allocation_unit": {
2142
+ "widget_type": "spinbutton",
2143
+ "label": "Allocation Unit",
2144
+ "required": true,
2145
+ "default": 0,
2146
+ "form_section": "address-allocation-scheme"
2147
+ },
2148
+ "spec.local_interface_address_type": {
2149
+ "widget_type": "listbox",
2150
+ "label": "Local Interface Address Type",
2151
+ "form_section": "address-allocation-scheme"
2152
+ },
2153
+ "spec.local_interface_address_offset": {
2154
+ "widget_type": "spinbutton",
2155
+ "label": "Local Interface Address Offset",
2156
+ "default": 0,
2157
+ "form_section": "address-allocation-scheme"
2158
+ },
2159
+ "spec.address_pool": {
2160
+ "widget_type": "table",
2161
+ "label": "Address Pool",
2162
+ "required": true,
2163
+ "form_section": "address-pool"
2164
+ },
2165
+ "spec.address_allocation_scheme": {
2166
+ "required": true,
2167
+ "label": "Address Allocation Scheme",
2168
+ "form_section": "basic-configuration",
2169
+ "description": "Server-required: Field should be not nil",
2170
+ "widget_type": "configurable"
2171
+ }
2172
+ },
2173
+ "advertise_policy": {
2174
+ "metadata.name": {
2175
+ "widget_type": "textbox",
2176
+ "label": "Name",
2177
+ "required": true,
2178
+ "form_section": "metadata"
2179
+ },
2180
+ "metadata.labels": {
2181
+ "widget_type": "key-value-pairs",
2182
+ "label": "Labels",
2183
+ "form_section": "metadata"
2184
+ },
2185
+ "metadata.description": {
2186
+ "widget_type": "textbox",
2187
+ "label": "Description",
2188
+ "form_section": "metadata"
2189
+ },
2190
+ "spec.virtual-site_or_site_or_network": {
2191
+ "widget_type": "listbox",
2192
+ "label": "Virtual-Site or Site or Network",
2193
+ "required": true,
2194
+ "default": "Virtual Site",
2195
+ "form_section": "advertise-policy"
2196
+ },
2197
+ "spec.reference": {
2198
+ "widget_type": "listbox",
2199
+ "label": "Reference",
2200
+ "required": true,
2201
+ "form_section": "advertise-policy"
2202
+ },
2203
+ "spec.network_type": {
2204
+ "widget_type": "listbox",
2205
+ "label": "Network Type",
2206
+ "form_section": "advertise-policy"
2207
+ },
2208
+ "spec.internet_vip_choice": {
2209
+ "widget_type": "listbox",
2210
+ "label": "Internet VIP Choice",
2211
+ "required": true,
2212
+ "default": "Disable advertise on internet vip",
2213
+ "form_section": "advertise-policy"
2214
+ },
2215
+ "spec.tcp_udp_port": {
2216
+ "widget_type": "listbox",
2217
+ "label": "TCP/UDP Port",
2218
+ "required": true,
2219
+ "default": "TCP/UDP Port",
2220
+ "form_section": "advertise-policy"
2221
+ },
2222
+ "spec.tcp_udp_port_value": {
2223
+ "widget_type": "spinbutton",
2224
+ "label": "TCP/UDP Port (value)",
2225
+ "required": true,
2226
+ "default": 80,
2227
+ "form_section": "advertise-policy"
2228
+ },
2229
+ "spec.port_choice": {
2230
+ "required": true,
2231
+ "label": "Port Choice",
2232
+ "form_section": "basic-configuration",
2233
+ "description": "Server-required: Field should be not nil",
2234
+ "widget_type": "configurable"
2235
+ }
2236
+ },
2237
+ "api_credential": {
2238
+ "metadata.name": {
2239
+ "widget_type": "textbox",
2240
+ "label": "Credential Name",
2241
+ "required": true,
2242
+ "form_section": "metadata",
2243
+ "description": "Form uses aria-label \"Credential Name\" (not standard \"Name\")"
2244
+ },
2245
+ "spec.credential_name": {
2246
+ "widget_type": "textbox",
2247
+ "label": "Credential Name",
2248
+ "required": true,
2249
+ "form_section": "credential-form"
2250
+ },
2251
+ "spec.credential_type": {
2252
+ "widget_type": "listbox",
2253
+ "label": "Credential Type",
2254
+ "required": true,
2255
+ "default": "API Certificate",
2256
+ "form_section": "credential-form"
2257
+ },
2258
+ "spec.password": {
2259
+ "widget_type": "textbox",
2260
+ "label": "Password",
2261
+ "required": true,
2262
+ "form_section": "credential-form"
2263
+ },
2264
+ "spec.confirm_password": {
2265
+ "widget_type": "textbox",
2266
+ "label": "Confirm Password",
2267
+ "required": true,
2268
+ "form_section": "credential-form"
2269
+ },
2270
+ "spec.expiry_date": {
2271
+ "widget_type": "textbox",
2272
+ "label": "Expiry Date",
2273
+ "required": true,
2274
+ "form_section": "credential-form"
2275
+ }
2276
+ },
2277
+ "api_definition": {
2278
+ "metadata.name": {
2279
+ "widget_type": "textbox",
2280
+ "label": "Name",
2281
+ "required": true,
2282
+ "form_section": "metadata"
2283
+ },
2284
+ "metadata.labels": {
2285
+ "widget_type": "key-value-pairs",
2286
+ "label": "Labels",
2287
+ "form_section": "metadata"
2288
+ },
2289
+ "metadata.description": {
2290
+ "widget_type": "textbox",
2291
+ "label": "Description",
2292
+ "form_section": "metadata"
2293
+ },
2294
+ "spec.swagger_specs": {
2295
+ "widget_type": "table",
2296
+ "label": "Swagger Specs",
2297
+ "form_section": "openapi-specification-files"
2298
+ },
2299
+ "spec.api_inventory_inclusion_list": {
2300
+ "widget_type": "configurable",
2301
+ "label": "API Inventory Inclusion List",
2302
+ "form_section": "api-endpoints-management"
2303
+ }
2304
+ },
2305
+ "app_api_group": {
2306
+ "metadata.name": {
2307
+ "widget_type": "textbox",
2308
+ "label": "Name",
2309
+ "required": true,
2310
+ "form_section": "metadata"
2311
+ },
2312
+ "metadata.description": {
2313
+ "widget_type": "textbox",
2314
+ "label": "Description",
2315
+ "form_section": "metadata"
2316
+ },
2317
+ "spec.scope": {
2318
+ "widget_type": "listbox",
2319
+ "label": "Scope",
2320
+ "required": true,
2321
+ "default": "HTTP Load Balancer",
2322
+ "form_section": "api-endpoints"
2323
+ },
2324
+ "spec.http_loadbalancer": {
2325
+ "widget_type": "listbox",
2326
+ "label": "HTTP Load Balancer",
2327
+ "required": true,
2328
+ "form_section": "api-endpoints",
2329
+ "resource_type": "http_loadbalancer",
2330
+ "description": "Server-required (feedback loop: \"Field HTTP Load Balancer is required\"). A direct listbox that selects an EXISTING http_loadbalancer — dependency, create an http-lb first. (Removed the duplicate spec.http_load_balancer: the real API field is http_loadbalancer, and the console form shows a single listbox, not a resource-selector.)"
2331
+ }
2332
+ },
2333
+ "app_setting": {
2334
+ "metadata.name": {
2335
+ "widget_type": "textbox",
2336
+ "label": "Name",
2337
+ "required": true,
2338
+ "form_section": "metadata"
2339
+ },
2340
+ "metadata.labels": {
2341
+ "widget_type": "key-value-pairs",
2342
+ "label": "Labels",
2343
+ "form_section": "metadata"
2344
+ },
2345
+ "metadata.description": {
2346
+ "widget_type": "textbox",
2347
+ "label": "Description",
2348
+ "form_section": "metadata"
2349
+ },
2350
+ "spec.apptype_customizations": {
2351
+ "widget_type": "table",
2352
+ "label": "AppType Customizations",
2353
+ "form_section": "customize-apptype"
2354
+ },
2355
+ "spec.app_type_settings": {
2356
+ "required": true,
2357
+ "label": "App Type Settings",
2358
+ "form_section": "basic-configuration",
2359
+ "description": "Server-required: Minimum items of 1",
2360
+ "widget_type": "configurable"
2361
+ }
2362
+ },
2363
+ "app_type": {
2364
+ "metadata.name": {
2365
+ "widget_type": "textbox",
2366
+ "label": "Name",
2367
+ "required": true,
2368
+ "form_section": "metadata"
2369
+ },
2370
+ "metadata.labels": {
2371
+ "widget_type": "key-value-pairs",
2372
+ "label": "Labels",
2373
+ "form_section": "metadata"
2374
+ },
2375
+ "metadata.description": {
2376
+ "widget_type": "textbox",
2377
+ "label": "Description",
2378
+ "form_section": "metadata"
2379
+ },
2380
+ "spec.ai_ml_feature_type": {
2381
+ "widget_type": "table",
2382
+ "label": "AI/ML Feature Type",
2383
+ "form_section": "features",
2384
+ "description": "Not a top-level required field — the AI/ML Feature Type listbox lives inside the App Type Settings Add Item sub-form (see spec.app_type_settings)."
2385
+ },
2386
+ "spec.learn_from_traffic_with_redirect_response": {
2387
+ "widget_type": "listbox",
2388
+ "label": "Learn from Traffic with Redirect Response",
2389
+ "default": "Disable",
2390
+ "form_section": "api-discovery-settings"
2391
+ },
2392
+ "spec.purge_duration_for_inactive_discovered_apis_from_traffic_d": {
2393
+ "widget_type": "spinbutton",
2394
+ "label": "Purge Duration for Inactive Discovered APIs from Traffic (d)",
2395
+ "default": 2,
2396
+ "form_section": "api-discovery-settings"
2397
+ },
2398
+ "spec.app_type_settings": {
2399
+ "label": "App Type Settings",
2400
+ "widget_type": "nested-resource-list",
2401
+ "add_action": "Add Item",
2402
+ "form_section": "app-type-settings",
2403
+ "description": "Optional advanced settings. The required AI/ML Feature Type is the Features-row listbox (spec.feature_type), which ships with one row — no Add Item needed."
2404
+ },
2405
+ "spec.feature_type": {
2406
+ "required": true,
2407
+ "label": "AI/ML Feature Type",
2408
+ "widget_type": "listbox",
2409
+ "resource_type": "ai_feature_type",
2410
+ "form_section": "features",
2411
+ "description": "Required Select-item listbox in the Features section (ships with one row). Verified from live form screenshot."
2412
+ }
2413
+ },
2414
+ "authorization_server": {
2415
+ "metadata.name": {
2416
+ "widget_type": "textbox",
2417
+ "label": "Name",
2418
+ "required": true,
2419
+ "form_section": "metadata"
2420
+ },
2421
+ "metadata.labels": {
2422
+ "widget_type": "key-value-pairs",
2423
+ "label": "Labels",
2424
+ "form_section": "metadata"
2425
+ },
2426
+ "metadata.description": {
2427
+ "widget_type": "textbox",
2428
+ "label": "Description",
2429
+ "form_section": "metadata"
2430
+ },
2431
+ "spec.jwks_uri": {
2432
+ "widget_type": "textbox",
2433
+ "label": "JWKS URI",
2434
+ "required": true,
2435
+ "form_section": "spec",
2436
+ "description": "Feedback loop: 'Field JWKS URI in Spec must be a valid absolute URI'"
2437
+ }
2438
+ },
2439
+ "bgp": {
2440
+ "metadata.name": {
2441
+ "widget_type": "textbox",
2442
+ "label": "Name",
2443
+ "required": true,
2444
+ "form_section": "metadata"
2445
+ },
2446
+ "metadata.labels": {
2447
+ "widget_type": "key-value-pairs",
2448
+ "label": "Labels",
2449
+ "form_section": "metadata"
2450
+ },
2451
+ "metadata.description": {
2452
+ "widget_type": "textbox",
2453
+ "label": "Description",
2454
+ "form_section": "metadata"
2455
+ },
2456
+ "spec.where": {
2457
+ "widget_type": "listbox",
2458
+ "label": "Where",
2459
+ "required": true,
2460
+ "default": "Site",
2461
+ "form_section": "where"
2462
+ },
2463
+ "spec.reference": {
2464
+ "widget_type": "listbox",
2465
+ "label": "Reference",
2466
+ "required": true,
2467
+ "form_section": "where"
2468
+ },
2469
+ "spec.asn": {
2470
+ "widget_type": "spinbutton",
2471
+ "label": "ASN",
2472
+ "required": true,
2473
+ "default": 0,
2474
+ "form_section": "parameters"
2475
+ },
2476
+ "spec.router_id": {
2477
+ "widget_type": "listbox",
2478
+ "label": "Router ID",
2479
+ "required": true,
2480
+ "default": "From Interface Address",
2481
+ "form_section": "parameters"
2482
+ },
2483
+ "spec.peers": {
2484
+ "widget_type": "table",
2485
+ "label": "Peers",
2486
+ "form_section": "peers"
2487
+ },
2488
+ "spec.bgp_parameters": {
2489
+ "required": true,
2490
+ "label": "Bgp Parameters",
2491
+ "form_section": "basic-configuration",
2492
+ "description": "Server-required: Field should be not nil",
2493
+ "widget_type": "configurable"
2494
+ }
2495
+ },
2496
+ "bgp_asn_set": {
2497
+ "metadata.name": {
2498
+ "widget_type": "textbox",
2499
+ "label": "Name",
2500
+ "required": true,
2501
+ "form_section": "metadata"
2502
+ },
2503
+ "metadata.labels": {
2504
+ "widget_type": "key-value-pairs",
2505
+ "label": "Labels",
2506
+ "form_section": "metadata"
2507
+ },
2508
+ "metadata.description": {
2509
+ "widget_type": "textbox",
2510
+ "label": "Description",
2511
+ "form_section": "metadata"
2512
+ },
2513
+ "spec.as_numbers": {
2514
+ "widget_type": "table",
2515
+ "label": "AS Numbers",
2516
+ "form_section": "spec",
2517
+ "required": true,
2518
+ "description": "List of AS Numbers — a row pre-exists with value 0; fill it with a valid ASN (e.g. 64512). Uses ngx-datatable input.",
2519
+ "add_action": "Add Item",
2520
+ "default": null
2521
+ }
2522
+ },
2523
+ "cdn_cache_rule": {
2524
+ "metadata.name": {
2525
+ "widget_type": "textbox",
2526
+ "label": "Name",
2527
+ "required": true,
2528
+ "form_section": "metadata"
2529
+ },
2530
+ "metadata.labels": {
2531
+ "widget_type": "key-value-pairs",
2532
+ "label": "Labels",
2533
+ "form_section": "metadata"
2534
+ },
2535
+ "metadata.description": {
2536
+ "widget_type": "textbox",
2537
+ "label": "Description",
2538
+ "form_section": "metadata"
2539
+ },
2540
+ "spec.rule_name": {
2541
+ "widget_type": "textbox",
2542
+ "label": "Rule Name",
2543
+ "required": true,
2544
+ "form_section": "cache-rule"
2545
+ },
2546
+ "spec.expressions": {
2547
+ "widget_type": "table",
2548
+ "label": "Expressions",
2549
+ "required": true,
2550
+ "add_item_first": true,
2551
+ "form_section": "cache-rule",
2552
+ "description": "Expressions table starts empty — needs Add Item before filling the inline cell."
2553
+ },
2554
+ "spec.cache_actions": {
2555
+ "widget_type": "listbox",
2556
+ "label": "Cache Actions",
2557
+ "required": true,
2558
+ "default": "Bypass Cache",
2559
+ "form_section": "cache-rule"
2560
+ }
2561
+ },
2562
+ "certificate": {
2563
+ "metadata.name": {
2564
+ "widget_type": "textbox",
2565
+ "label": "Name",
2566
+ "required": true,
2567
+ "form_section": "metadata"
2568
+ },
2569
+ "metadata.labels": {
2570
+ "widget_type": "key-value-pairs",
2571
+ "label": "Labels",
2572
+ "form_section": "metadata"
2573
+ },
2574
+ "metadata.description": {
2575
+ "widget_type": "textbox",
2576
+ "label": "Description",
2577
+ "form_section": "metadata"
2578
+ },
2579
+ "spec.certificate": {
2580
+ "widget_type": "file-import-button",
2581
+ "label": "Certificate",
2582
+ "form_section": "certificate"
2583
+ },
2584
+ "spec.ocsp_stapling": {
2585
+ "widget_type": "listbox",
2586
+ "label": "OCSP Stapling",
2587
+ "default": "Disable",
2588
+ "form_section": "ocsp-stapling"
2589
+ },
2590
+ "spec.intermediate_certificate_chain": {
2591
+ "widget_type": "listbox",
2592
+ "label": "Intermediate Certificate Chain",
2593
+ "default": "",
2594
+ "form_section": "intermediate-certificate-chain"
2595
+ },
2596
+ "spec.certificate_url": {
2597
+ "required": true,
2598
+ "label": "Certificate Url",
2599
+ "form_section": "basic-configuration",
2600
+ "description": "Server-required: Minimum bytes of 1",
2601
+ "widget_type": "configurable"
2602
+ }
2603
+ },
2604
+ "cloud_connect": {
2605
+ "metadata.name": {
2606
+ "widget_type": "textbox",
2607
+ "label": "Name",
2608
+ "required": true,
2609
+ "form_section": "metadata"
2610
+ },
2611
+ "metadata.labels": {
2612
+ "widget_type": "key-value-pairs",
2613
+ "label": "Labels",
2614
+ "form_section": "metadata"
2615
+ },
2616
+ "metadata.description": {
2617
+ "widget_type": "textbox",
2618
+ "label": "Description",
2619
+ "form_section": "metadata"
2620
+ },
2621
+ "spec.provider": {
2622
+ "widget_type": "listbox",
2623
+ "label": "Provider",
2624
+ "required": true,
2625
+ "default": "AWS",
2626
+ "form_section": "provider"
2627
+ },
2628
+ "spec.site_reference": {
2629
+ "widget_type": "listbox",
2630
+ "label": "Site Reference",
2631
+ "required": true,
2632
+ "form_section": "provider"
2633
+ },
2634
+ "spec.credential_reference": {
2635
+ "widget_type": "listbox",
2636
+ "label": "Credential Reference",
2637
+ "required": true,
2638
+ "form_section": "provider"
2639
+ },
2640
+ "spec.spoke_vpcs": {
2641
+ "widget_type": "configurable",
2642
+ "label": "Spoke VPCs",
2643
+ "required": true,
2644
+ "form_section": "provider"
2645
+ },
2646
+ "spec.segment": {
2647
+ "widget_type": "listbox",
2648
+ "label": "Segment",
2649
+ "required": true,
2650
+ "form_section": "segment"
2651
+ },
2652
+ "spec.cloud": {
2653
+ "required": true,
2654
+ "label": "Cloud",
2655
+ "form_section": "basic-configuration",
2656
+ "description": "Server-required: Field should be not nil",
2657
+ "widget_type": "configurable"
2658
+ }
2659
+ },
2660
+ "cloud_credentials": {
2661
+ "metadata.name": {
2662
+ "widget_type": "textbox",
2663
+ "label": "Name",
2664
+ "required": true,
2665
+ "form_section": "metadata"
2666
+ },
2667
+ "metadata.labels": {
2668
+ "widget_type": "key-value-pairs",
2669
+ "label": "Labels",
2670
+ "form_section": "metadata"
2671
+ },
2672
+ "metadata.description": {
2673
+ "widget_type": "textbox",
2674
+ "label": "Description",
2675
+ "form_section": "metadata"
2676
+ },
2677
+ "spec.select_cloud_credential_type": {
2678
+ "widget_type": "listbox",
2679
+ "label": "Select Cloud Credential Type",
2680
+ "required": true,
2681
+ "default": "AWS Programmatic Access Credentials",
2682
+ "form_section": "cloud-credentials"
2683
+ },
2684
+ "spec.access_key_id": {
2685
+ "widget_type": "textbox",
2686
+ "label": "Access Key ID",
2687
+ "required": true,
2688
+ "form_section": "cloud-credentials"
2689
+ },
2690
+ "spec.secret_access_key": {
2691
+ "widget_type": "configurable",
2692
+ "label": "Secret Access Key",
2693
+ "required": true,
2694
+ "form_section": "cloud-credentials"
2695
+ },
2696
+ "spec.cloud": {
2697
+ "required": true,
2698
+ "label": "Cloud",
2699
+ "form_section": "basic-configuration",
2700
+ "description": "Server-required: Field should be not nil",
2701
+ "widget_type": "configurable"
2702
+ }
2703
+ },
2704
+ "cloud_elastic_ip": {
2705
+ "metadata.name": {
2706
+ "widget_type": "textbox",
2707
+ "label": "Name",
2708
+ "required": true,
2709
+ "form_section": "metadata"
2710
+ },
2711
+ "metadata.labels": {
2712
+ "widget_type": "key-value-pairs",
2713
+ "label": "Labels",
2714
+ "form_section": "metadata"
2715
+ },
2716
+ "metadata.description": {
2717
+ "widget_type": "textbox",
2718
+ "label": "Description",
2719
+ "form_section": "metadata"
2720
+ },
2721
+ "spec.site_reference": {
2722
+ "widget_type": "listbox",
2723
+ "label": "Site Reference",
2724
+ "required": true,
2725
+ "form_section": "site-reference"
2726
+ },
2727
+ "spec.elastic_ip_count_per_node": {
2728
+ "widget_type": "spinbutton",
2729
+ "label": "Elastic IP Count Per Node",
2730
+ "default": 0,
2731
+ "form_section": "elastic-ip-count"
2732
+ },
2733
+ "spec.count": {
2734
+ "required": true,
2735
+ "label": "Count",
2736
+ "form_section": "basic-configuration",
2737
+ "description": "Server-required: Must be >= 1",
2738
+ "widget_type": "configurable"
2739
+ }
2740
+ },
2741
+ "cloud_link": {
2742
+ "metadata.name": {
2743
+ "widget_type": "textbox",
2744
+ "label": "Name",
2745
+ "required": true,
2746
+ "form_section": "metadata"
2747
+ },
2748
+ "metadata.labels": {
2749
+ "widget_type": "key-value-pairs",
2750
+ "label": "Labels",
2751
+ "form_section": "metadata"
2752
+ },
2753
+ "metadata.description": {
2754
+ "widget_type": "textbox",
2755
+ "label": "Description",
2756
+ "form_section": "metadata"
2757
+ },
2758
+ "spec.type": {
2759
+ "widget_type": "listbox",
2760
+ "label": "Type",
2761
+ "required": true,
2762
+ "default": "Amazon Web Services(AWS)",
2763
+ "form_section": "cloud-option"
2764
+ },
2765
+ "spec.bring_your_own_connections": {
2766
+ "widget_type": "table",
2767
+ "label": "Bring Your Own Connections",
2768
+ "required": true,
2769
+ "form_section": "cloud-option"
2770
+ },
2771
+ "spec.account_credential": {
2772
+ "widget_type": "listbox",
2773
+ "label": "Account Credential",
2774
+ "required": true,
2775
+ "form_section": "cloud-option"
2776
+ },
2777
+ "spec.direct_connect_gateway_asn": {
2778
+ "widget_type": "listbox",
2779
+ "label": "Direct Connect Gateway ASN",
2780
+ "required": true,
2781
+ "default": "Custom ASN",
2782
+ "form_section": "cloud-option"
2783
+ },
2784
+ "spec.custom_asn": {
2785
+ "widget_type": "spinbutton",
2786
+ "label": "Custom ASN",
2787
+ "required": true,
2788
+ "default": 0,
2789
+ "form_section": "cloud-option"
2790
+ },
2791
+ "spec.private_connectivity_via_regional_edge_re": {
2792
+ "widget_type": "listbox",
2793
+ "label": "Private Connectivity via Regional Edge (RE)",
2794
+ "required": true,
2795
+ "default": "Disable",
2796
+ "form_section": "private-connectivity"
2797
+ },
2798
+ "spec.cloud_provider": {
2799
+ "required": true,
2800
+ "label": "Cloud Provider",
2801
+ "form_section": "basic-configuration",
2802
+ "description": "Server-required: Field should be not nil",
2803
+ "widget_type": "configurable"
2804
+ }
2805
+ },
2806
+ "cluster": {
2807
+ "metadata.name": {
2808
+ "widget_type": "textbox",
2809
+ "label": "Name",
2810
+ "required": true,
2811
+ "form_section": "metadata"
2812
+ },
2813
+ "metadata.labels": {
2814
+ "widget_type": "key-value-pairs",
2815
+ "label": "Labels",
2816
+ "form_section": "metadata"
2817
+ },
2818
+ "metadata.description": {
2819
+ "widget_type": "textbox",
2820
+ "label": "Description",
2821
+ "form_section": "metadata"
2822
+ },
2823
+ "spec.endpoints": {
2824
+ "widget_type": "table",
2825
+ "label": "Endpoints",
2826
+ "form_section": "origin-servers"
2827
+ },
2828
+ "spec.loadbalancer_algorithm": {
2829
+ "widget_type": "listbox",
2830
+ "label": "LoadBalancer Algorithm",
2831
+ "default": "Load Balancer Override",
2832
+ "form_section": "origin-pool-parameters"
2833
+ },
2834
+ "spec.health_checks": {
2835
+ "widget_type": "table",
2836
+ "label": "Health Checks",
2837
+ "form_section": "origin-pool-parameters"
2838
+ },
2839
+ "spec.select_upstream_connection_pool_reuse_state": {
2840
+ "widget_type": "listbox",
2841
+ "label": "Select upstream connection pool reuse state",
2842
+ "required": true,
2843
+ "default": "Enable Connection Pool Reuse",
2844
+ "form_section": "origin-pool-parameters"
2845
+ },
2846
+ "spec.endpoint_selection": {
2847
+ "widget_type": "listbox",
2848
+ "label": "Endpoint Selection",
2849
+ "default": "Local Endpoints Preferred",
2850
+ "form_section": "origin-pool-parameters"
2851
+ },
2852
+ "spec.tls_parameters": {
2853
+ "widget_type": "configurable",
2854
+ "label": "TLS Parameters",
2855
+ "form_section": "origin-pool-parameters"
2856
+ },
2857
+ "spec.maximum_requests_per_connection": {
2858
+ "widget_type": "listbox",
2859
+ "label": "Maximum Requests Per Connection",
2860
+ "form_section": "origin-pool-parameters"
2861
+ }
2862
+ },
2863
+ "code_base_integration": {
2864
+ "metadata.name": {
2865
+ "widget_type": "textbox",
2866
+ "label": "Name",
2867
+ "required": true,
2868
+ "form_section": "metadata"
2869
+ },
2870
+ "metadata.labels": {
2871
+ "widget_type": "key-value-pairs",
2872
+ "label": "Labels",
2873
+ "form_section": "metadata"
2874
+ },
2875
+ "metadata.description": {
2876
+ "widget_type": "textbox",
2877
+ "label": "Description",
2878
+ "form_section": "metadata"
2879
+ },
2880
+ "spec.code_base": {
2881
+ "widget_type": "listbox",
2882
+ "label": "Code Base",
2883
+ "required": true,
2884
+ "form_section": "integration-data",
2885
+ "resource_type": "code_base",
2886
+ "description": "A vsui \"Select item\" listbox (not a configurable). Selects an existing code-base integration. Verified from live form screenshot."
2887
+ }
2888
+ },
2889
+ "container_registry": {
2890
+ "metadata.name": {
2891
+ "widget_type": "textbox",
2892
+ "label": "Name",
2893
+ "required": true,
2894
+ "form_section": "metadata"
2895
+ },
2896
+ "metadata.labels": {
2897
+ "widget_type": "key-value-pairs",
2898
+ "label": "Labels",
2899
+ "form_section": "metadata"
2900
+ },
2901
+ "metadata.description": {
2902
+ "widget_type": "textbox",
2903
+ "label": "Description",
2904
+ "form_section": "metadata"
2905
+ },
2906
+ "spec.server_fqdn": {
2907
+ "widget_type": "textbox",
2908
+ "label": "Server FQDN",
2909
+ "required": true,
2910
+ "form_section": "server-fqdn"
2911
+ },
2912
+ "spec.user_name": {
2913
+ "widget_type": "textbox",
2914
+ "label": "User Name",
2915
+ "required": true,
2916
+ "form_section": "user-name"
2917
+ },
2918
+ "spec.password": {
2919
+ "widget_type": "configurable",
2920
+ "label": "Password",
2921
+ "required": true,
2922
+ "form_section": "password",
2923
+ "secret": true,
2924
+ "description": "Secret field: click Configure (a link), enter the value in the secret TEXTAREA (Secret Type defaults are fine), then Apply. Verified live: create 200."
2925
+ },
2926
+ "spec.email": {
2927
+ "widget_type": "textbox",
2928
+ "label": "Email",
2929
+ "form_section": "email"
2930
+ }
2931
+ },
2932
+ "crl": {
2933
+ "metadata.name": {
2934
+ "widget_type": "textbox",
2935
+ "label": "Name",
2936
+ "required": true,
2937
+ "form_section": "metadata"
2938
+ },
2939
+ "metadata.labels": {
2940
+ "widget_type": "key-value-pairs",
2941
+ "label": "Labels",
2942
+ "form_section": "metadata"
2943
+ },
2944
+ "metadata.description": {
2945
+ "widget_type": "textbox",
2946
+ "label": "Description",
2947
+ "form_section": "metadata"
2948
+ },
2949
+ "spec.crl_server_address": {
2950
+ "widget_type": "textbox",
2951
+ "label": "CRL Server address",
2952
+ "required": true,
2953
+ "form_section": "crl-server-address"
2954
+ },
2955
+ "spec.crl_server_port": {
2956
+ "widget_type": "spinbutton",
2957
+ "label": "CRL Server Port",
2958
+ "default": 80,
2959
+ "form_section": "crl-server-address"
2960
+ },
2961
+ "spec.crl_refresh_interval_h": {
2962
+ "widget_type": "spinbutton",
2963
+ "label": "CRL Refresh interval (h)",
2964
+ "default": 24,
2965
+ "form_section": "refresh-interval"
2966
+ },
2967
+ "spec.crl_download_timeout_s": {
2968
+ "widget_type": "spinbutton",
2969
+ "label": "CRL download timeout (s)",
2970
+ "default": 10,
2971
+ "form_section": "crl-download-timeout"
2972
+ },
2973
+ "spec.crl_access_information": {
2974
+ "widget_type": "listbox",
2975
+ "label": "CRL Access information",
2976
+ "default": "Use HTTP to download the CRL",
2977
+ "form_section": "crl-access-information"
2978
+ },
2979
+ "spec.crl_file_path": {
2980
+ "widget_type": "textbox",
2981
+ "label": "CRL File path",
2982
+ "form_section": "crl-access-information"
2983
+ },
2984
+ "spec.refresh_interval": {
2985
+ "required": true,
2986
+ "label": "Refresh Interval",
2987
+ "form_section": "basic-configuration",
2988
+ "description": "Server-required: Must be >= 6",
2989
+ "widget_type": "configurable"
2990
+ }
2991
+ },
2992
+ "dc_cluster_group": {
2993
+ "metadata.name": {
2994
+ "widget_type": "textbox",
2995
+ "label": "Name",
2996
+ "required": true,
2997
+ "form_section": "metadata"
2998
+ },
2999
+ "metadata.labels": {
3000
+ "widget_type": "key-value-pairs",
3001
+ "label": "Labels",
3002
+ "form_section": "metadata"
3003
+ },
3004
+ "metadata.description": {
3005
+ "widget_type": "textbox",
3006
+ "label": "Description",
3007
+ "form_section": "metadata"
3008
+ },
3009
+ "spec.mesh_type": {
3010
+ "widget_type": "listbox",
3011
+ "label": "Mesh Type",
3012
+ "default": "Data Plane Mesh",
3013
+ "form_section": "mesh-type"
3014
+ }
3015
+ },
3016
+ "discovery": {
3017
+ "metadata.name": {
3018
+ "widget_type": "textbox",
3019
+ "label": "Name",
3020
+ "required": true,
3021
+ "form_section": "metadata"
3022
+ },
3023
+ "metadata.labels": {
3024
+ "widget_type": "key-value-pairs",
3025
+ "label": "Labels",
3026
+ "form_section": "metadata"
3027
+ },
3028
+ "metadata.description": {
3029
+ "widget_type": "textbox",
3030
+ "label": "Description",
3031
+ "form_section": "metadata"
3032
+ },
3033
+ "spec.virtual-site_or_site_or_network": {
3034
+ "widget_type": "listbox",
3035
+ "label": "Virtual-Site or Site or Network",
3036
+ "required": true,
3037
+ "default": "Virtual Site",
3038
+ "form_section": "where"
3039
+ },
3040
+ "spec.reference": {
3041
+ "widget_type": "listbox",
3042
+ "label": "Reference",
3043
+ "required": true,
3044
+ "form_section": "where"
3045
+ },
3046
+ "spec.network_type": {
3047
+ "widget_type": "listbox",
3048
+ "label": "Network Type",
3049
+ "form_section": "where"
3050
+ },
3051
+ "spec.select_kubernetes_credentials": {
3052
+ "widget_type": "listbox",
3053
+ "label": "Select Kubernetes Credentials",
3054
+ "required": true,
3055
+ "default": "Kubeconfig",
3056
+ "form_section": "discovery-configuration"
3057
+ },
3058
+ "spec.kubeconfig": {
3059
+ "widget_type": "configurable",
3060
+ "label": "Kubeconfig",
3061
+ "required": true,
3062
+ "form_section": "discovery-configuration"
3063
+ },
3064
+ "spec.kubernetes_pod_network_reachability": {
3065
+ "widget_type": "listbox",
3066
+ "label": "Kubernetes POD network reachability",
3067
+ "required": true,
3068
+ "default": "Kubernetes POD is isolated",
3069
+ "form_section": "discovery-configuration"
3070
+ },
3071
+ "spec.select_vip_publishing_or_dns_delegation": {
3072
+ "widget_type": "listbox",
3073
+ "label": "Select VIP Publishing or DNS Delegation",
3074
+ "required": true,
3075
+ "default": "Disable VIP Publishing and DNS Delegation",
3076
+ "form_section": "discovery-configuration"
3077
+ },
3078
+ "spec.mapping_preference": {
3079
+ "widget_type": "listbox",
3080
+ "label": "Mapping Preference",
3081
+ "required": true,
3082
+ "default": "Custom",
3083
+ "form_section": "discovery-configuration"
3084
+ },
3085
+ "spec.regex_matching": {
3086
+ "widget_type": "table",
3087
+ "label": "Regex Matching",
3088
+ "required": true,
3089
+ "form_section": "discovery-configuration"
3090
+ },
3091
+ "spec.select_discovery_cluster_identifier": {
3092
+ "widget_type": "listbox",
3093
+ "label": "Select Discovery Cluster Identifier",
3094
+ "required": true,
3095
+ "default": "No cluster identifier",
3096
+ "form_section": "discovery-cluster-identifier"
3097
+ },
3098
+ "spec.discovery_choice": {
3099
+ "required": true,
3100
+ "label": "Discovery Choice",
3101
+ "form_section": "basic-configuration",
3102
+ "description": "Server-required: Field should be not nil",
3103
+ "widget_type": "configurable"
3104
+ }
3105
+ },
3106
+ "dns_domain": {
3107
+ "metadata.domain_name": {
3108
+ "widget_type": "textbox",
3109
+ "label": "Domain Name",
3110
+ "required": true,
3111
+ "form_section": "metadata"
3112
+ },
3113
+ "metadata.labels": {
3114
+ "widget_type": "key-value-pairs",
3115
+ "label": "Labels",
3116
+ "form_section": "metadata"
3117
+ },
3118
+ "metadata.description": {
3119
+ "widget_type": "textbox",
3120
+ "label": "Description",
3121
+ "form_section": "metadata"
3122
+ },
3123
+ "spec.domain_method": {
3124
+ "widget_type": "listbox",
3125
+ "label": "Domain Method",
3126
+ "required": true,
3127
+ "default": "Managed by Distributed Cloud",
3128
+ "form_section": "domain-configuration"
3129
+ },
3130
+ "spec.dnssec_mode": {
3131
+ "widget_type": "listbox",
3132
+ "label": "DNSSEC Mode",
3133
+ "form_section": "dnssec-mode"
3134
+ }
3135
+ },
3136
+ "dns_lb_health_check": {
3137
+ "metadata.name": {
3138
+ "widget_type": "textbox",
3139
+ "label": "Name",
3140
+ "required": true,
3141
+ "form_section": "metadata"
3142
+ },
3143
+ "metadata.labels": {
3144
+ "widget_type": "key-value-pairs",
3145
+ "label": "Labels",
3146
+ "form_section": "metadata"
3147
+ },
3148
+ "metadata.description": {
3149
+ "widget_type": "textbox",
3150
+ "label": "Description",
3151
+ "form_section": "metadata"
3152
+ },
3153
+ "metadata.disable": {
3154
+ "widget_type": "checkbox",
3155
+ "label": "Disable",
3156
+ "form_section": "metadata"
3157
+ },
3158
+ "spec.health_check_type": {
3159
+ "widget_type": "listbox",
3160
+ "label": "Health Check Type",
3161
+ "required": true,
3162
+ "default": "HTTP Health Check",
3163
+ "form_section": "health-check-type"
3164
+ },
3165
+ "spec.send_string": {
3166
+ "widget_type": "textbox",
3167
+ "label": "Send String",
3168
+ "default": "HEAD / HTTP/1.0\r\n\r\n",
3169
+ "form_section": "health-check-type"
3170
+ },
3171
+ "spec.receive_string": {
3172
+ "widget_type": "textbox",
3173
+ "label": "Receive String",
3174
+ "default": "HTTP/1.",
3175
+ "form_section": "health-check-type"
3176
+ },
3177
+ "spec.health_check_port": {
3178
+ "widget_type": "listbox",
3179
+ "label": "Health Check Port",
3180
+ "required": true,
3181
+ "default": "0",
3182
+ "form_section": "health-check-type"
3183
+ },
3184
+ "spec.health_check_secondary_port": {
3185
+ "widget_type": "listbox",
3186
+ "label": "Health Check Secondary Port",
3187
+ "default": "0",
3188
+ "form_section": "health-check-type"
3189
+ },
3190
+ "spec.virtual_host": {
3191
+ "widget_type": "listbox",
3192
+ "label": "Virtual Host",
3193
+ "required": true,
3194
+ "default": "Disable Virtual Host",
3195
+ "form_section": "health-check-type"
3196
+ }
3197
+ },
3198
+ "endpoint": {
3199
+ "metadata.name": {
3200
+ "widget_type": "textbox",
3201
+ "label": "Name",
3202
+ "required": true,
3203
+ "form_section": "metadata"
3204
+ },
3205
+ "metadata.labels": {
3206
+ "widget_type": "key-value-pairs",
3207
+ "label": "Labels",
3208
+ "form_section": "metadata"
3209
+ },
3210
+ "metadata.description": {
3211
+ "widget_type": "textbox",
3212
+ "label": "Description",
3213
+ "form_section": "metadata"
3214
+ },
3215
+ "spec.endpoint_specifier": {
3216
+ "widget_type": "listbox",
3217
+ "label": "Endpoint Specifier",
3218
+ "default": "Endpoint IP Address",
3219
+ "form_section": "origin-server"
3220
+ },
3221
+ "spec.endpoint_ip_address": {
3222
+ "widget_type": "textbox",
3223
+ "label": "Endpoint IP Address",
3224
+ "form_section": "origin-server"
3225
+ },
3226
+ "spec.protocol": {
3227
+ "widget_type": "listbox",
3228
+ "label": "Protocol",
3229
+ "default": "TCP",
3230
+ "form_section": "origin-server",
3231
+ "required": true,
3232
+ "description": "Server-required: Must be TCP or UDP"
3233
+ },
3234
+ "spec.port": {
3235
+ "widget_type": "spinbutton",
3236
+ "label": "Port",
3237
+ "default": 0,
3238
+ "form_section": "origin-server"
3239
+ },
3240
+ "spec.virtual-site_or_site_or_network": {
3241
+ "widget_type": "listbox",
3242
+ "label": "Virtual-Site or Site or Network",
3243
+ "required": true,
3244
+ "default": "Virtual Site",
3245
+ "form_section": "origin-server"
3246
+ },
3247
+ "spec.reference": {
3248
+ "widget_type": "listbox",
3249
+ "label": "Reference",
3250
+ "required": true,
3251
+ "resource_type": "virtual_site",
3252
+ "form_section": "spec",
3253
+ "description": "vsui autocomplete dropdown (VSUI-AUTOCOMPLETE-DROPDOWN) selecting a virtual-site, site, or network. Dependency resource."
3254
+ },
3255
+ "spec.network_type": {
3256
+ "widget_type": "listbox",
3257
+ "label": "Network Type",
3258
+ "form_section": "origin-server"
3259
+ },
3260
+ "spec.select_snat_pool_choice": {
3261
+ "widget_type": "listbox",
3262
+ "label": "Select SNAT Pool Choice",
3263
+ "form_section": "snat-pool"
3264
+ }
3265
+ },
3266
+ "enhanced_firewall_policy": {
3267
+ "metadata.name": {
3268
+ "widget_type": "textbox",
3269
+ "label": "Name",
3270
+ "required": true,
3271
+ "form_section": "metadata"
3272
+ },
3273
+ "metadata.labels": {
3274
+ "widget_type": "key-value-pairs",
3275
+ "label": "Labels",
3276
+ "form_section": "metadata"
3277
+ },
3278
+ "metadata.description": {
3279
+ "widget_type": "textbox",
3280
+ "label": "Description",
3281
+ "form_section": "metadata"
3282
+ },
3283
+ "spec.select_enhanced_firewall_policy_rule_type": {
3284
+ "widget_type": "listbox",
3285
+ "label": "Select Enhanced Firewall Policy Rule Type",
3286
+ "required": true,
3287
+ "default": "Allow all connections",
3288
+ "form_section": "rule"
3289
+ },
3290
+ "spec.source_segments": {
3291
+ "widget_type": "listbox",
3292
+ "label": "Source Segments",
3293
+ "default": "Any",
3294
+ "form_section": "segment-selector"
3295
+ },
3296
+ "spec.destination_segments": {
3297
+ "widget_type": "listbox",
3298
+ "label": "Destination Segments",
3299
+ "default": "Any",
3300
+ "form_section": "segment-selector"
3301
+ }
3302
+ },
3303
+ "external_connector": {
3304
+ "metadata.name": {
3305
+ "widget_type": "textbox",
3306
+ "label": "Name",
3307
+ "required": true,
3308
+ "form_section": "metadata"
3309
+ },
3310
+ "metadata.labels": {
3311
+ "widget_type": "key-value-pairs",
3312
+ "label": "Labels",
3313
+ "form_section": "metadata"
3314
+ },
3315
+ "metadata.description": {
3316
+ "widget_type": "textbox",
3317
+ "label": "Description",
3318
+ "form_section": "metadata"
3319
+ },
3320
+ "spec.ce_site_reference": {
3321
+ "widget_type": "listbox",
3322
+ "label": "CE Site Reference",
3323
+ "required": true,
3324
+ "form_section": "ce-site-reference"
3325
+ },
3326
+ "spec.connection_type": {
3327
+ "widget_type": "listbox",
3328
+ "label": "Connection Type",
3329
+ "required": true,
3330
+ "default": "IPSec",
3331
+ "form_section": "connection-details"
3332
+ }
3333
+ },
3334
+ "fast_acl": {
3335
+ "metadata.name": {
3336
+ "widget_type": "textbox",
3337
+ "label": "Name",
3338
+ "required": true,
3339
+ "form_section": "metadata"
3340
+ },
3341
+ "metadata.labels": {
3342
+ "widget_type": "key-value-pairs",
3343
+ "label": "Labels",
3344
+ "form_section": "metadata"
3345
+ },
3346
+ "metadata.description": {
3347
+ "widget_type": "textbox",
3348
+ "label": "Description",
3349
+ "form_section": "metadata"
3350
+ },
3351
+ "spec.select_site_type_for_acl": {
3352
+ "widget_type": "listbox",
3353
+ "label": "Select Site Type For acl",
3354
+ "required": true,
3355
+ "default": "Site Type Regional Edge",
3356
+ "form_section": "fast-acl-type"
3357
+ },
3358
+ "spec.site_type_regional_edge": {
3359
+ "widget_type": "configurable",
3360
+ "label": "Site Type Regional Edge",
3361
+ "required": true,
3362
+ "form_section": "fast-acl-type"
3363
+ },
3364
+ "spec.default_protocol_policer": {
3365
+ "widget_type": "listbox",
3366
+ "label": "Default Protocol Policer",
3367
+ "form_section": "fast-acl-protocol-policer"
3368
+ },
3369
+ "spec.site_choice": {
3370
+ "required": true,
3371
+ "label": "Site Choice",
3372
+ "form_section": "basic-configuration",
3373
+ "description": "Server-required: Field should be not nil",
3374
+ "widget_type": "configurable"
3375
+ }
3376
+ },
3377
+ "fleet": {
3378
+ "metadata.name": {
3379
+ "widget_type": "textbox",
3380
+ "label": "Name",
3381
+ "required": true,
3382
+ "form_section": "metadata"
3383
+ },
3384
+ "metadata.labels": {
3385
+ "widget_type": "key-value-pairs",
3386
+ "label": "Labels",
3387
+ "form_section": "metadata"
3388
+ },
3389
+ "metadata.description": {
3390
+ "widget_type": "textbox",
3391
+ "label": "Description",
3392
+ "form_section": "metadata"
3393
+ },
3394
+ "spec.fleet_label_value": {
3395
+ "widget_type": "textbox",
3396
+ "label": "Fleet Label Value",
3397
+ "required": true,
3398
+ "form_section": "fleet-configuration"
3399
+ },
3400
+ "spec.outside_site_local_virtual_network": {
3401
+ "widget_type": "listbox",
3402
+ "label": "Outside (Site Local) Virtual Network",
3403
+ "form_section": "fleet-configuration"
3404
+ },
3405
+ "spec.site_local_inside_virtual_network": {
3406
+ "widget_type": "listbox",
3407
+ "label": "Site Local Inside Virtual Network",
3408
+ "form_section": "fleet-configuration"
3409
+ },
3410
+ "spec.software_version": {
3411
+ "widget_type": "textbox",
3412
+ "label": "Software Version",
3413
+ "form_section": "fleet-configuration"
3414
+ },
3415
+ "spec.operating_system_version": {
3416
+ "widget_type": "textbox",
3417
+ "label": "Operating System Version",
3418
+ "form_section": "fleet-configuration"
3419
+ },
3420
+ "spec.select_bond_configuration": {
3421
+ "widget_type": "listbox",
3422
+ "label": "Select Bond Configuration",
3423
+ "required": true,
3424
+ "default": "No Bond Devices",
3425
+ "form_section": "network-interfaces"
3426
+ },
3427
+ "spec.select_interface_config": {
3428
+ "widget_type": "listbox",
3429
+ "label": "Select Interface Config",
3430
+ "required": true,
3431
+ "default": "Default Interface Config",
3432
+ "form_section": "network-interfaces"
3433
+ },
3434
+ "spec.network_connectors": {
3435
+ "widget_type": "table",
3436
+ "label": "Network Connectors",
3437
+ "form_section": "network-connectors"
3438
+ },
3439
+ "spec.network_firewall": {
3440
+ "widget_type": "listbox",
3441
+ "label": "Network Firewall",
3442
+ "form_section": "network-firewall"
3443
+ },
3444
+ "spec.select_storage_interface_configuration": {
3445
+ "widget_type": "listbox",
3446
+ "label": "Select Storage Interface Configuration",
3447
+ "required": true,
3448
+ "default": "No Storage Interfaces",
3449
+ "form_section": "storage-configuration"
3450
+ },
3451
+ "spec.select_storage_device_configuration": {
3452
+ "widget_type": "listbox",
3453
+ "label": "Select Storage Device Configuration",
3454
+ "required": true,
3455
+ "default": "No Storage Devices",
3456
+ "form_section": "storage-configuration"
3457
+ },
3458
+ "spec.select_configuration_for_storage_classes": {
3459
+ "widget_type": "listbox",
3460
+ "label": "Select Configuration for Storage Classes",
3461
+ "required": true,
3462
+ "default": "Default Storage Class",
3463
+ "form_section": "storage-configuration"
3464
+ },
3465
+ "spec.select_storage_static_routes": {
3466
+ "widget_type": "listbox",
3467
+ "label": "Select Storage Static Routes",
3468
+ "required": true,
3469
+ "default": "No Storage Static Routes",
3470
+ "form_section": "advanced-configuration"
3471
+ },
3472
+ "spec.node_by_node_upgrade": {
3473
+ "widget_type": "listbox",
3474
+ "label": "Node by Node Upgrade",
3475
+ "required": true,
3476
+ "default": "Enable",
3477
+ "form_section": "advanced-configuration"
3478
+ },
3479
+ "spec.upgrade_wait_time": {
3480
+ "widget_type": "spinbutton",
3481
+ "label": "Upgrade Wait Time",
3482
+ "required": true,
3483
+ "default": 300,
3484
+ "form_section": "advanced-configuration"
3485
+ },
3486
+ "spec.node_batch_size": {
3487
+ "widget_type": "listbox",
3488
+ "label": "Node Batch Size",
3489
+ "required": true,
3490
+ "default": "Node Batch Size Count",
3491
+ "form_section": "advanced-configuration"
3492
+ },
3493
+ "spec.node_batch_size_count": {
3494
+ "widget_type": "spinbutton",
3495
+ "label": "Node Batch Size Count",
3496
+ "required": true,
3497
+ "default": 1,
3498
+ "form_section": "advanced-configuration"
3499
+ },
3500
+ "spec.disable_node_local_services": {
3501
+ "widget_type": "table",
3502
+ "label": "Disable Node Local Services",
3503
+ "form_section": "advanced-configuration"
3504
+ },
3505
+ "spec.sr-iov_interfaces": {
3506
+ "widget_type": "listbox",
3507
+ "label": "SR-IOV interfaces",
3508
+ "required": true,
3509
+ "default": "Disable SR-IOV interfaces",
3510
+ "form_section": "advanced-configuration"
3511
+ }
3512
+ },
3513
+ "geo_location_set": {
3514
+ "metadata.name": {
3515
+ "widget_type": "textbox",
3516
+ "label": "Name",
3517
+ "required": true,
3518
+ "form_section": "metadata"
3519
+ },
3520
+ "metadata.labels": {
3521
+ "widget_type": "key-value-pairs",
3522
+ "label": "Labels",
3523
+ "form_section": "metadata"
3524
+ },
3525
+ "metadata.description": {
3526
+ "widget_type": "textbox",
3527
+ "label": "Description",
3528
+ "form_section": "metadata"
3529
+ },
3530
+ "spec.geolocation_label_selector": {
3531
+ "widget_type": "listbox",
3532
+ "label": "Geolocation Label Selector",
3533
+ "required": true,
3534
+ "default": "Global Geolocation",
3535
+ "form_section": "geolocation-label-selector"
3536
+ }
3537
+ },
3538
+ "ip_prefix_set": {
3539
+ "metadata.name": {
3540
+ "widget_type": "textbox",
3541
+ "label": "Name",
3542
+ "required": true,
3543
+ "form_section": "metadata"
3544
+ },
3545
+ "metadata.labels": {
3546
+ "widget_type": "key-value-pairs",
3547
+ "label": "Labels",
3548
+ "form_section": "metadata"
3549
+ },
3550
+ "metadata.description": {
3551
+ "widget_type": "textbox",
3552
+ "label": "Description",
3553
+ "form_section": "metadata"
3554
+ },
3555
+ "spec.ipv4_prefix": {
3556
+ "widget_type": "table",
3557
+ "label": "IPv4 Prefix",
3558
+ "form_section": "ipv4-prefixes"
3559
+ },
3560
+ "spec.ipv6_prefix": {
3561
+ "widget_type": "table",
3562
+ "label": "IPv6 Prefix",
3563
+ "form_section": "ipv6-prefixes"
3564
+ },
3565
+ "spec.prefix": {
3566
+ "required": true,
3567
+ "label": "Prefix",
3568
+ "widget_type": "nested-resource-list",
3569
+ "add_action": "Add Item",
3570
+ "form_section": "prefix",
3571
+ "description": "IP prefixes — Add Item creates an inline row (NO Apply button). Fill IPv4 Prefix directly.",
3572
+ "sub_field_label": "IPv4 Prefix",
3573
+ "no_apply": true
3574
+ }
3575
+ },
3576
+ "log_receiver": {
3577
+ "metadata.name": {
3578
+ "widget_type": "textbox",
3579
+ "label": "Name",
3580
+ "required": true,
3581
+ "form_section": "metadata"
3582
+ },
3583
+ "metadata.labels": {
3584
+ "widget_type": "key-value-pairs",
3585
+ "label": "Labels",
3586
+ "form_section": "metadata"
3587
+ },
3588
+ "metadata.description": {
3589
+ "widget_type": "textbox",
3590
+ "label": "Description",
3591
+ "form_section": "metadata"
3592
+ },
3593
+ "spec.log_receiver": {
3594
+ "widget_type": "listbox",
3595
+ "label": "Log Receiver",
3596
+ "required": true,
3597
+ "default": "Syslog Server",
3598
+ "form_section": "log-receiver"
3599
+ },
3600
+ "spec.syslog_transport_mode": {
3601
+ "widget_type": "listbox",
3602
+ "label": "Syslog Transport Mode",
3603
+ "required": true,
3604
+ "default": "Mode UDP",
3605
+ "form_section": "log-receiver"
3606
+ },
3607
+ "spec.server_name": {
3608
+ "widget_type": "textbox",
3609
+ "label": "Server name",
3610
+ "required": true,
3611
+ "form_section": "log-receiver"
3612
+ },
3613
+ "spec.port_number": {
3614
+ "widget_type": "spinbutton",
3615
+ "label": "Port Number",
3616
+ "required": true,
3617
+ "default": 514,
3618
+ "form_section": "log-receiver"
3619
+ },
3620
+ "spec.log_receiver_choice": {
3621
+ "required": true,
3622
+ "label": "Log Receiver Choice",
3623
+ "form_section": "basic-configuration",
3624
+ "description": "Server-required: Field should be not nil",
3625
+ "widget_type": "configurable"
3626
+ }
3627
+ },
3628
+ "malicious_user_mitigation": {
3629
+ "metadata.name": {
3630
+ "widget_type": "textbox",
3631
+ "label": "Name",
3632
+ "required": true,
3633
+ "form_section": "metadata"
3634
+ },
3635
+ "metadata.labels": {
3636
+ "widget_type": "key-value-pairs",
3637
+ "label": "Labels",
3638
+ "form_section": "metadata"
3639
+ },
3640
+ "metadata.description": {
3641
+ "widget_type": "textbox",
3642
+ "label": "Description",
3643
+ "form_section": "metadata"
3644
+ },
3645
+ "spec.rules": {
3646
+ "widget_type": "table",
3647
+ "label": "Rules",
3648
+ "form_section": "rules"
3649
+ },
3650
+ "spec.mitigation_rules": {
3651
+ "required": true,
3652
+ "label": "Rules",
3653
+ "form_section": "rules",
3654
+ "widget_type": "nested-resource-list",
3655
+ "add_action": "Add Item",
3656
+ "description": "At least one mitigation rule is required. Server error: 'Field Rules in Mitigation Rules is required.'"
3657
+ }
3658
+ },
3659
+ "nat_policy": {
3660
+ "metadata.name": {
3661
+ "widget_type": "textbox",
3662
+ "label": "Name",
3663
+ "required": true,
3664
+ "form_section": "metadata"
3665
+ },
3666
+ "metadata.labels": {
3667
+ "widget_type": "key-value-pairs",
3668
+ "label": "Labels",
3669
+ "form_section": "metadata"
3670
+ },
3671
+ "metadata.description": {
3672
+ "widget_type": "textbox",
3673
+ "label": "Description",
3674
+ "form_section": "metadata"
3675
+ },
3676
+ "spec.applies_to": {
3677
+ "widget_type": "listbox",
3678
+ "label": "Applies To",
3679
+ "required": true,
3680
+ "default": "Site",
3681
+ "form_section": "applies-to"
3682
+ },
3683
+ "spec.site": {
3684
+ "widget_type": "table",
3685
+ "label": "Site",
3686
+ "form_section": "applies-to"
3687
+ },
3688
+ "spec.rule": {
3689
+ "widget_type": "configurable",
3690
+ "label": "Rule",
3691
+ "form_section": "rule"
3692
+ },
3693
+ "spec.applies_to_choice": {
3694
+ "required": true,
3695
+ "label": "Applies To Choice",
3696
+ "form_section": "basic-configuration",
3697
+ "description": "Server-required: Field should be not nil",
3698
+ "widget_type": "configurable"
3699
+ }
3700
+ },
3701
+ "network_connector": {
3702
+ "metadata.name": {
3703
+ "widget_type": "textbox",
3704
+ "label": "Name",
3705
+ "required": true,
3706
+ "form_section": "metadata"
3707
+ },
3708
+ "metadata.labels": {
3709
+ "widget_type": "key-value-pairs",
3710
+ "label": "Labels",
3711
+ "form_section": "metadata"
3712
+ },
3713
+ "metadata.description": {
3714
+ "widget_type": "textbox",
3715
+ "label": "Description",
3716
+ "form_section": "metadata"
3717
+ },
3718
+ "spec.select_network_connector_type": {
3719
+ "widget_type": "listbox",
3720
+ "label": "Select Network Connector Type",
3721
+ "required": true,
3722
+ "default": "SNAT, Site Local Inside to Site Local Outside",
3723
+ "form_section": "network-connector-configuration"
3724
+ },
3725
+ "spec.routing_mode": {
3726
+ "widget_type": "listbox",
3727
+ "label": "Routing Mode",
3728
+ "required": true,
3729
+ "default": "Default Gateway",
3730
+ "form_section": "network-connector-configuration"
3731
+ },
3732
+ "spec.snat_source_ip_selection": {
3733
+ "widget_type": "listbox",
3734
+ "label": "SNAT Source IP Selection",
3735
+ "required": true,
3736
+ "default": "Interface IP",
3737
+ "form_section": "network-connector-configuration"
3738
+ },
3739
+ "spec.select_forward_proxy": {
3740
+ "widget_type": "listbox",
3741
+ "label": "Select Forward Proxy",
3742
+ "required": true,
3743
+ "default": "Disable Forward Proxy",
3744
+ "form_section": "proxy-configuration"
3745
+ },
3746
+ "spec.connector_choice": {
3747
+ "required": true,
3748
+ "label": "Connector Choice",
3749
+ "form_section": "basic-configuration",
3750
+ "description": "Server-required: Field should be not nil",
3751
+ "widget_type": "configurable"
3752
+ }
3753
+ },
3754
+ "network_firewall": {
3755
+ "metadata.name": {
3756
+ "widget_type": "textbox",
3757
+ "label": "Name",
3758
+ "required": true,
3759
+ "form_section": "metadata"
3760
+ },
3761
+ "metadata.labels": {
3762
+ "widget_type": "key-value-pairs",
3763
+ "label": "Labels",
3764
+ "form_section": "metadata"
3765
+ },
3766
+ "metadata.description": {
3767
+ "widget_type": "textbox",
3768
+ "label": "Description",
3769
+ "form_section": "metadata"
3770
+ },
3771
+ "spec.select_forward_policy_configuration": {
3772
+ "widget_type": "listbox",
3773
+ "label": "Select Forward Policy Configuration",
3774
+ "required": true,
3775
+ "default": "Disable Forward Proxy Policy",
3776
+ "form_section": "forward-proxy-policy"
3777
+ },
3778
+ "spec.select_firewall_policy_configuration": {
3779
+ "widget_type": "listbox",
3780
+ "label": "Select Firewall Policy Configuration",
3781
+ "required": true,
3782
+ "default": "Disable Firewall Policy",
3783
+ "form_section": "firewall-policy"
3784
+ },
3785
+ "spec.select_fast_acl_configuration": {
3786
+ "widget_type": "listbox",
3787
+ "label": "Select Fast ACL Configuration",
3788
+ "required": true,
3789
+ "default": "Disable Fast ACL",
3790
+ "form_section": "fast-acl"
3791
+ }
3792
+ },
3793
+ "network_interface": {
3794
+ "metadata.name": {
3795
+ "widget_type": "textbox",
3796
+ "label": "Name",
3797
+ "required": true,
3798
+ "form_section": "metadata"
3799
+ },
3800
+ "metadata.labels": {
3801
+ "widget_type": "key-value-pairs",
3802
+ "label": "Labels",
3803
+ "form_section": "metadata"
3804
+ },
3805
+ "metadata.description": {
3806
+ "widget_type": "textbox",
3807
+ "label": "Description",
3808
+ "form_section": "metadata"
3809
+ },
3810
+ "spec.interface_config_type": {
3811
+ "widget_type": "listbox",
3812
+ "label": "Interface Config Type",
3813
+ "required": true,
3814
+ "default": "Ethernet Interface",
3815
+ "form_section": "interface-type"
3816
+ },
3817
+ "spec.ethernet_interface": {
3818
+ "widget_type": "configurable",
3819
+ "label": "Ethernet Interface",
3820
+ "required": true,
3821
+ "form_section": "interface-type"
3822
+ },
3823
+ "spec.interface_choice": {
3824
+ "required": true,
3825
+ "label": "Interface Choice",
3826
+ "form_section": "basic-configuration",
3827
+ "description": "Server-required: Field should be not nil",
3828
+ "widget_type": "configurable"
3829
+ }
3830
+ },
3831
+ "nfv_service": {
3832
+ "metadata.name": {
3833
+ "widget_type": "textbox",
3834
+ "label": "Name",
3835
+ "required": true,
3836
+ "form_section": "metadata"
3837
+ },
3838
+ "metadata.labels": {
3839
+ "widget_type": "key-value-pairs",
3840
+ "label": "Labels",
3841
+ "form_section": "metadata"
3842
+ },
3843
+ "metadata.description": {
3844
+ "widget_type": "textbox",
3845
+ "label": "Description",
3846
+ "form_section": "metadata"
3847
+ },
3848
+ "spec.external_service_provider": {
3849
+ "widget_type": "listbox",
3850
+ "label": "External Service Provider",
3851
+ "required": true,
3852
+ "default": "Virtual BIG-IP on AWS",
3853
+ "form_section": "spec"
3854
+ },
3855
+ "spec.provider_configuration": {
3856
+ "widget_type": "configurable",
3857
+ "label": "Provider Configuration",
3858
+ "required": true,
3859
+ "form_section": "spec"
3860
+ },
3861
+ "spec.https_based_management_of_nodes": {
3862
+ "widget_type": "listbox",
3863
+ "label": "HTTPS Based Management of Nodes",
3864
+ "required": true,
3865
+ "default": "Disable HTTPS Based Management",
3866
+ "form_section": "spec"
3867
+ },
3868
+ "spec.ssh_based_management_of_nodes": {
3869
+ "widget_type": "listbox",
3870
+ "label": "SSH based management of nodes",
3871
+ "required": true,
3872
+ "default": "Disable SSH access",
3873
+ "form_section": "spec"
3874
+ },
3875
+ "spec.service_provider_choice": {
3876
+ "required": true,
3877
+ "label": "Service Provider Choice",
3878
+ "form_section": "basic-configuration",
3879
+ "description": "Server-required: Field should be not nil",
3880
+ "widget_type": "configurable"
3881
+ }
3882
+ },
3883
+ "openapi_file": {
3884
+ "metadata.name": {
3885
+ "widget_type": "textbox",
3886
+ "label": "Name",
3887
+ "required": true,
3888
+ "form_section": "metadata"
3889
+ },
3890
+ "metadata.description": {
3891
+ "widget_type": "textarea",
3892
+ "label": "Description",
3893
+ "form_section": "metadata"
3894
+ },
3895
+ "spec.upload_file": {
3896
+ "widget_type": "file-upload-button",
3897
+ "label": "Upload File",
3898
+ "form_section": "openapi-upload"
3899
+ }
3900
+ },
3901
+ "policer": {
3902
+ "metadata.name": {
3903
+ "widget_type": "textbox",
3904
+ "label": "Name",
3905
+ "required": true,
3906
+ "form_section": "metadata"
3907
+ },
3908
+ "metadata.labels": {
3909
+ "widget_type": "key-value-pairs",
3910
+ "label": "Labels",
3911
+ "form_section": "metadata"
3912
+ },
3913
+ "metadata.description": {
3914
+ "widget_type": "textbox",
3915
+ "label": "Description",
3916
+ "form_section": "metadata"
3917
+ },
3918
+ "spec.policer_mode": {
3919
+ "widget_type": "listbox",
3920
+ "label": "Policer Mode",
3921
+ "default": "Not Shared",
3922
+ "form_section": "policer-mode"
3923
+ },
3924
+ "spec.committed_information_rate": {
3925
+ "widget_type": "spinbutton",
3926
+ "label": "Committed Information Rate",
3927
+ "required": true,
3928
+ "default": 0,
3929
+ "form_section": "cir"
3930
+ },
3931
+ "spec.burst_size": {
3932
+ "widget_type": "spinbutton",
3933
+ "label": "Burst Size",
3934
+ "required": true,
3935
+ "default": 0,
3936
+ "form_section": "burst-size"
3937
+ },
3938
+ "spec.policer_type": {
3939
+ "widget_type": "listbox",
3940
+ "label": "Policer Type",
3941
+ "default": "Single-Rate Two-Color Policer",
3942
+ "form_section": "policer-type"
3943
+ },
3944
+ "spec.policer_rules": {
3945
+ "required": true,
3946
+ "label": "Policer Rules",
3947
+ "widget_type": "nested-resource-list",
3948
+ "add_action": "Add Item",
3949
+ "form_section": "policer",
3950
+ "description": "'We found 2 errors' — needs policer rules + burst_size"
3951
+ }
3952
+ },
3953
+ "protocol_policer": {
3954
+ "metadata.name": {
3955
+ "widget_type": "textbox",
3956
+ "label": "Name",
3957
+ "required": true,
3958
+ "form_section": "metadata"
3959
+ },
3960
+ "metadata.labels": {
3961
+ "widget_type": "key-value-pairs",
3962
+ "label": "Labels",
3963
+ "form_section": "metadata"
3964
+ },
3965
+ "metadata.description": {
3966
+ "widget_type": "textbox",
3967
+ "label": "Description",
3968
+ "form_section": "metadata"
3969
+ },
3970
+ "spec.protocol_policer": {
3971
+ "widget_type": "nested-resource-list",
3972
+ "label": "Protocol Policer",
3973
+ "form_section": "protocol-policer",
3974
+ "required": true,
3975
+ "add_action": "Add Item",
3976
+ "sub_select_label": "Policer",
3977
+ "sub_resource_type": "policer",
3978
+ "description": "At least one protocol policer entry required. The nested Add Item sub-form requires selecting an existing Policer (feedback loop: \"Field Policer is required\") — a policer object must exist first."
3979
+ }
3980
+ },
3981
+ "proxy": {
3982
+ "metadata.name": {
3983
+ "widget_type": "textbox",
3984
+ "label": "Name",
3985
+ "required": true,
3986
+ "form_section": "metadata"
3987
+ },
3988
+ "metadata.labels": {
3989
+ "widget_type": "key-value-pairs",
3990
+ "label": "Labels",
3991
+ "form_section": "metadata"
3992
+ },
3993
+ "metadata.description": {
3994
+ "widget_type": "textbox",
3995
+ "label": "Description",
3996
+ "form_section": "metadata"
3997
+ },
3998
+ "spec.http_connect_proxy_or_dynamic_reverse_proxy": {
3999
+ "widget_type": "listbox",
4000
+ "label": "HTTP Connect Proxy or Dynamic Reverse Proxy",
4001
+ "required": true,
4002
+ "default": "HTTP Connect Proxy",
4003
+ "form_section": "proxy-type"
4004
+ },
4005
+ "spec.http_connect": {
4006
+ "widget_type": "listbox",
4007
+ "label": "HTTP Connect",
4008
+ "required": true,
4009
+ "default": "HTTP Connect",
4010
+ "form_section": "proxy-type"
4011
+ },
4012
+ "spec.select_sites_for_proxy": {
4013
+ "widget_type": "listbox",
4014
+ "label": "Select Sites for Proxy",
4015
+ "required": true,
4016
+ "default": "Site or Virtual Site",
4017
+ "form_section": "sites-or-virtual-sites"
4018
+ },
4019
+ "spec.site_or_virtual_site": {
4020
+ "widget_type": "configurable",
4021
+ "label": "Site or Virtual Site",
4022
+ "required": true,
4023
+ "form_section": "sites-or-virtual-sites"
4024
+ },
4025
+ "spec.select_upstream_network": {
4026
+ "widget_type": "listbox",
4027
+ "label": "Select Upstream Network",
4028
+ "required": true,
4029
+ "default": "Site Local Network (Outside)",
4030
+ "form_section": "upstream-network"
4031
+ },
4032
+ "spec.tls_interception_choice": {
4033
+ "widget_type": "listbox",
4034
+ "label": "TLS Interception choice",
4035
+ "required": true,
4036
+ "default": "No TLS Interception",
4037
+ "form_section": "proxy-policy"
4038
+ },
4039
+ "spec.manage_proxy_policy": {
4040
+ "widget_type": "listbox",
4041
+ "label": "Manage Proxy Policy",
4042
+ "required": true,
4043
+ "default": "Disable Proxy Policy",
4044
+ "form_section": "proxy-policy"
4045
+ },
4046
+ "spec.proxy_choice": {
4047
+ "required": true,
4048
+ "label": "Proxy Choice",
4049
+ "form_section": "basic-configuration",
4050
+ "description": "Server-required: Field should be not nil",
4051
+ "widget_type": "configurable"
4052
+ }
4053
+ },
4054
+ "public_ip": {
4055
+ "metadata.name": {
4056
+ "widget_type": "textbox",
4057
+ "label": "Name",
4058
+ "required": true,
4059
+ "form_section": "metadata"
4060
+ },
4061
+ "metadata.labels": {
4062
+ "widget_type": "key-value-pairs",
4063
+ "label": "Labels",
4064
+ "form_section": "metadata"
4065
+ },
4066
+ "metadata.description": {
4067
+ "widget_type": "textbox",
4068
+ "label": "Description",
4069
+ "form_section": "metadata"
4070
+ }
4071
+ },
4072
+ "rate_limiter": {
4073
+ "metadata.name": {
4074
+ "widget_type": "textbox",
4075
+ "label": "Name",
4076
+ "required": true,
4077
+ "form_section": "metadata"
4078
+ },
4079
+ "metadata.labels": {
4080
+ "widget_type": "key-value-pairs",
4081
+ "label": "Labels",
4082
+ "form_section": "metadata"
4083
+ },
4084
+ "metadata.description": {
4085
+ "widget_type": "textbox",
4086
+ "label": "Description",
4087
+ "form_section": "metadata"
4088
+ },
4089
+ "spec.rate_limit_values": {
4090
+ "widget_type": "configurable",
4091
+ "label": "Rate Limit Values",
4092
+ "form_section": "rate-limit-values"
4093
+ },
4094
+ "spec.user_identification_policy": {
4095
+ "widget_type": "listbox",
4096
+ "label": "User Identification Policy",
4097
+ "default": "",
4098
+ "form_section": "user-identification-policy"
4099
+ }
4100
+ },
4101
+ "role": {
4102
+ "metadata.name": {
4103
+ "widget_type": "textbox",
4104
+ "label": "Role Name",
4105
+ "required": true,
4106
+ "form_section": "metadata",
4107
+ "description": "Form uses aria-label \"Role Name\" (not standard \"Name\")"
4108
+ },
4109
+ "spec.role_name": {
4110
+ "widget_type": "textbox",
4111
+ "label": "Role Name",
4112
+ "required": true,
4113
+ "form_section": "role-form"
4114
+ },
4115
+ "spec.api_groups": {
4116
+ "widget_type": "table",
4117
+ "label": "API Groups",
4118
+ "form_section": "allowed-api-groups"
4119
+ }
4120
+ },
4121
+ "securemesh_site": {
4122
+ "metadata.name": {
4123
+ "widget_type": "textbox",
4124
+ "label": "Name",
4125
+ "required": true,
4126
+ "form_section": "metadata"
4127
+ },
4128
+ "metadata.namespace": {
4129
+ "widget_type": "textbox",
4130
+ "label": "Namespace",
4131
+ "form_section": "metadata"
4132
+ },
4133
+ "metadata.labels": {
4134
+ "widget_type": "key-value-pairs",
4135
+ "label": "Labels",
4136
+ "form_section": "metadata"
4137
+ },
4138
+ "metadata.annotations": {
4139
+ "widget_type": "configurable",
4140
+ "label": "Annotations",
4141
+ "form_section": "metadata"
4142
+ },
4143
+ "metadata.description": {
4144
+ "widget_type": "textbox",
4145
+ "label": "Description",
4146
+ "form_section": "metadata"
4147
+ },
4148
+ "metadata.disable": {
4149
+ "widget_type": "checkbox",
4150
+ "label": "Disable",
4151
+ "form_section": "metadata"
4152
+ },
4153
+ "spec.generic_server_certified_hardware": {
4154
+ "widget_type": "listbox",
4155
+ "label": "Generic Server Certified Hardware",
4156
+ "required": true,
4157
+ "default": "isv-8000-series-voltmesh",
4158
+ "form_section": "basic-configuration"
4159
+ },
4160
+ "spec.master_nodes": {
4161
+ "widget_type": "table",
4162
+ "label": "Master Nodes",
4163
+ "required": true,
4164
+ "form_section": "basic-configuration"
4165
+ },
4166
+ "spec.worker_nodes": {
4167
+ "widget_type": "table",
4168
+ "label": "Worker Nodes",
4169
+ "form_section": "basic-configuration"
4170
+ },
4171
+ "spec.geographical_address": {
4172
+ "widget_type": "textbox",
4173
+ "label": "Geographical Address",
4174
+ "form_section": "basic-configuration"
4175
+ },
4176
+ "spec.latitude": {
4177
+ "widget_type": "textbox",
4178
+ "label": "Latitude",
4179
+ "default": "0",
4180
+ "form_section": "basic-configuration"
4181
+ },
4182
+ "spec.longitude": {
4183
+ "widget_type": "textbox",
4184
+ "label": "Longitude",
4185
+ "default": "0",
4186
+ "form_section": "basic-configuration"
4187
+ },
4188
+ "spec.bond_configuration": {
4189
+ "widget_type": "listbox",
4190
+ "label": "Bond Configuration",
4191
+ "required": true,
4192
+ "default": "No Bond Devices",
4193
+ "form_section": "bond-configuration"
4194
+ },
4195
+ "spec.configure_networking": {
4196
+ "widget_type": "listbox",
4197
+ "label": "Configure Networking",
4198
+ "required": true,
4199
+ "default": "Default Network Configuration",
4200
+ "form_section": "network-configuration"
4201
+ },
4202
+ "spec.logs_streaming": {
4203
+ "widget_type": "listbox",
4204
+ "label": "Logs Streaming",
4205
+ "required": true,
4206
+ "default": "Disable Logs Streaming",
4207
+ "form_section": "advanced-configuration"
4208
+ },
4209
+ "spec.f5xc_software_version": {
4210
+ "widget_type": "listbox",
4211
+ "label": "F5XC Software Version",
4212
+ "required": true,
4213
+ "default": "Latest SW Version",
4214
+ "form_section": "advanced-configuration"
4215
+ },
4216
+ "spec.operating_system_version": {
4217
+ "widget_type": "listbox",
4218
+ "label": "Operating System Version",
4219
+ "required": true,
4220
+ "default": "Latest OS Version",
4221
+ "form_section": "advanced-configuration"
4222
+ },
4223
+ "spec.node_by_node_upgrade": {
4224
+ "widget_type": "listbox",
4225
+ "label": "Node by Node Upgrade",
4226
+ "required": true,
4227
+ "default": "Enable",
4228
+ "form_section": "advanced-configuration"
4229
+ },
4230
+ "spec.upgrade_wait_time": {
4231
+ "widget_type": "spinbutton",
4232
+ "label": "Upgrade Wait Time",
4233
+ "required": true,
4234
+ "default": 300,
4235
+ "form_section": "advanced-configuration"
4236
+ },
4237
+ "spec.node_batch_size": {
4238
+ "widget_type": "listbox",
4239
+ "label": "Node Batch Size",
4240
+ "required": true,
4241
+ "default": "Node Batch Size Count",
4242
+ "form_section": "advanced-configuration"
4243
+ },
4244
+ "spec.node_batch_size_count": {
4245
+ "widget_type": "spinbutton",
4246
+ "label": "Node Batch Size Count",
4247
+ "required": true,
4248
+ "default": 1,
4249
+ "form_section": "advanced-configuration"
4250
+ },
4251
+ "spec.blocked_services": {
4252
+ "widget_type": "listbox",
4253
+ "label": "Blocked Services",
4254
+ "required": true,
4255
+ "default": "Default Blocked Service Configuration",
4256
+ "form_section": "advanced-configuration"
4257
+ },
4258
+ "spec.offline_survivability_mode": {
4259
+ "widget_type": "listbox",
4260
+ "label": "Offline Survivability Mode",
4261
+ "required": true,
4262
+ "default": "Disabled",
4263
+ "form_section": "advanced-configuration"
4264
+ },
4265
+ "spec.performance_mode": {
4266
+ "widget_type": "listbox",
4267
+ "label": "Performance Mode",
4268
+ "required": true,
4269
+ "default": "L7 Enhanced",
4270
+ "form_section": "advanced-configuration"
4271
+ },
4272
+ "spec.master_node_configuration": {
4273
+ "required": true,
4274
+ "label": "Master Node Configuration",
4275
+ "form_section": "basic-configuration",
4276
+ "description": "Server-required: Must be 1 or 3",
4277
+ "widget_type": "configurable"
4278
+ }
4279
+ },
4280
+ "securemesh_site_v2": {
4281
+ "metadata.name": {
4282
+ "widget_type": "textbox",
4283
+ "label": "Name",
4284
+ "required": true,
4285
+ "form_section": "metadata"
4286
+ },
4287
+ "metadata.labels": {
4288
+ "widget_type": "key-value-pairs",
4289
+ "label": "Labels",
4290
+ "form_section": "metadata"
4291
+ },
4292
+ "metadata.description": {
4293
+ "widget_type": "textbox",
4294
+ "label": "Description",
4295
+ "form_section": "metadata"
4296
+ },
4297
+ "spec.provider_name": {
4298
+ "widget_type": "listbox",
4299
+ "label": "Provider Name",
4300
+ "required": true,
4301
+ "default": "VMWare",
4302
+ "form_section": "provider"
4303
+ },
4304
+ "spec.orchestration_mode": {
4305
+ "widget_type": "listbox",
4306
+ "label": "Orchestration Mode",
4307
+ "default": "Not Managed By F5XC",
4308
+ "form_section": "provider"
4309
+ },
4310
+ "spec.nodes": {
4311
+ "widget_type": "info-text",
4312
+ "label": "Nodes",
4313
+ "form_section": "provider"
4314
+ },
4315
+ "spec.high_availability": {
4316
+ "widget_type": "listbox",
4317
+ "label": "High Availability",
4318
+ "default": "Disable",
4319
+ "form_section": "provider"
4320
+ },
4321
+ "spec.provider_choice": {
4322
+ "required": true,
4323
+ "label": "Provider Choice",
4324
+ "form_section": "basic-configuration",
4325
+ "description": "Server-required: Field should be not nil",
4326
+ "widget_type": "configurable"
4327
+ }
4328
+ },
4329
+ "segment": {
4330
+ "metadata.name": {
4331
+ "widget_type": "textbox",
4332
+ "label": "Name",
4333
+ "required": true,
4334
+ "form_section": "metadata"
4335
+ },
4336
+ "metadata.labels": {
4337
+ "widget_type": "key-value-pairs",
4338
+ "label": "Labels",
4339
+ "form_section": "metadata"
4340
+ },
4341
+ "metadata.description": {
4342
+ "widget_type": "textbox",
4343
+ "label": "Description",
4344
+ "form_section": "metadata"
4345
+ },
4346
+ "spec.connect_to_internet": {
4347
+ "widget_type": "listbox",
4348
+ "label": "Connect to Internet",
4349
+ "default": "Deny traffic from this segment to Internet",
4350
+ "form_section": "connect-to-internet"
4351
+ }
4352
+ },
4353
+ "segment_connection": {
4354
+ "metadata.name": {
4355
+ "widget_type": "textbox",
4356
+ "label": "Name",
4357
+ "form_section": "metadata"
4358
+ },
4359
+ "metadata.description": {
4360
+ "widget_type": "textbox",
4361
+ "label": "Description",
4362
+ "form_section": "metadata"
4363
+ },
4364
+ "metadata.labels": {
4365
+ "widget_type": "key-value-pairs",
4366
+ "label": "Labels",
4367
+ "form_section": "metadata"
4368
+ },
4369
+ "spec.segment_connectors": {
4370
+ "widget_type": "table",
4371
+ "label": "Segment Connectors",
4372
+ "form_section": "segment-connectors"
4373
+ }
4374
+ },
4375
+ "service_credential": {
4376
+ "spec.credential_email": {
4377
+ "widget_type": "textbox",
4378
+ "label": "Credential Email",
4379
+ "required": true,
4380
+ "form_section": "credential-form"
4381
+ },
4382
+ "spec.credential_type": {
4383
+ "widget_type": "listbox",
4384
+ "label": "Credential Type",
4385
+ "required": true,
4386
+ "default": "API Certificate",
4387
+ "form_section": "credential-form"
4388
+ },
4389
+ "spec.password": {
4390
+ "widget_type": "textbox",
4391
+ "label": "Password",
4392
+ "required": true,
4393
+ "form_section": "credential-form"
4394
+ },
4395
+ "spec.confirm_password": {
4396
+ "widget_type": "textbox",
4397
+ "label": "Confirm Password",
4398
+ "required": true,
4399
+ "form_section": "credential-form"
4400
+ },
4401
+ "spec.expiry_date": {
4402
+ "widget_type": "textbox",
4403
+ "label": "Expiry Date",
4404
+ "required": true,
4405
+ "form_section": "credential-form"
4406
+ },
4407
+ "spec.groups": {
4408
+ "widget_type": "table",
4409
+ "label": "Groups",
4410
+ "form_section": "group-assignment"
4411
+ },
4412
+ "spec.roles_and_namespaces": {
4413
+ "widget_type": "table",
4414
+ "label": "Roles and Namespaces",
4415
+ "form_section": "role-namespace-assignment"
4416
+ }
4417
+ },
4418
+ "service_policy_rule": {
4419
+ "spec.waf_action": {
4420
+ "required": true,
4421
+ "label": "Waf Action",
4422
+ "form_section": "basic-configuration",
4423
+ "description": "Server-required: Field should be not nil",
4424
+ "widget_type": "configurable"
4425
+ }
4426
+ },
4427
+ "shared_advertise_policy": {
4428
+ "metadata.name": {
4429
+ "widget_type": "textbox",
4430
+ "label": "Name",
4431
+ "required": true,
4432
+ "form_section": "metadata"
4433
+ },
4434
+ "metadata.labels": {
4435
+ "widget_type": "key-value-pairs",
4436
+ "label": "Labels",
4437
+ "form_section": "metadata"
4438
+ },
4439
+ "metadata.description": {
4440
+ "widget_type": "textbox",
4441
+ "label": "Description",
4442
+ "form_section": "metadata"
4443
+ },
4444
+ "spec.virtual-site_or_site_or_network": {
4445
+ "widget_type": "listbox",
4446
+ "label": "Virtual-Site or Site or Network",
4447
+ "required": true,
4448
+ "default": "Virtual Site",
4449
+ "form_section": "advertise-policy"
4450
+ },
4451
+ "spec.reference": {
4452
+ "widget_type": "configurable",
4453
+ "label": "Reference",
4454
+ "required": true,
4455
+ "form_section": "spec",
4456
+ "description": "'Field Reference is required'"
4457
+ },
4458
+ "spec.network_type": {
4459
+ "widget_type": "listbox",
4460
+ "label": "Network Type",
4461
+ "form_section": "advertise-policy"
4462
+ },
4463
+ "spec.internet_vip_choice": {
4464
+ "widget_type": "listbox",
4465
+ "label": "Internet VIP Choice",
4466
+ "required": true,
4467
+ "default": "Disable advertise on internet vip",
4468
+ "form_section": "advertise-policy"
4469
+ },
4470
+ "spec.tcp_udp_port": {
4471
+ "widget_type": "listbox",
4472
+ "label": "TCP/UDP Port",
4473
+ "required": true,
4474
+ "default": "TCP/UDP Port",
4475
+ "form_section": "advertise-policy"
4476
+ },
4477
+ "spec.tcp_udp_port_value": {
4478
+ "widget_type": "spinbutton",
4479
+ "label": "TCP/UDP Port (value)",
4480
+ "required": true,
4481
+ "default": 80,
4482
+ "form_section": "advertise-policy"
4483
+ }
4484
+ },
4485
+ "subnet": {
4486
+ "metadata.name": {
4487
+ "widget_type": "textbox",
4488
+ "label": "Name",
4489
+ "required": true,
4490
+ "form_section": "metadata"
4491
+ },
4492
+ "metadata.labels": {
4493
+ "widget_type": "key-value-pairs",
4494
+ "label": "Labels",
4495
+ "form_section": "metadata"
4496
+ },
4497
+ "metadata.description": {
4498
+ "widget_type": "textbox",
4499
+ "label": "Description",
4500
+ "form_section": "metadata"
4501
+ },
4502
+ "spec.site_subnet_parameters": {
4503
+ "widget_type": "configurable",
4504
+ "label": "Site Subnet Parameters",
4505
+ "required": true,
4506
+ "form_section": "site-subnet-parameters"
4507
+ },
4508
+ "spec.network_connection_type": {
4509
+ "widget_type": "listbox",
4510
+ "label": "Network Connection Type",
4511
+ "default": "Not Connected to Other Network",
4512
+ "form_section": "network-connection-type"
4513
+ },
4514
+ "spec.site_subnet_params": {
4515
+ "required": true,
4516
+ "label": "Site Subnet Params",
4517
+ "form_section": "basic-configuration",
4518
+ "description": "Server-required: Minimum items of 1",
4519
+ "widget_type": "configurable"
4520
+ }
4521
+ },
4522
+ "third_party_application": {
4523
+ "metadata.name": {
4524
+ "widget_type": "textbox",
4525
+ "label": "Name",
4526
+ "required": true,
4527
+ "form_section": "metadata"
4528
+ },
4529
+ "metadata.labels": {
4530
+ "widget_type": "key-value-pairs",
4531
+ "label": "Labels",
4532
+ "form_section": "metadata"
4533
+ },
4534
+ "metadata.description": {
4535
+ "widget_type": "textbox",
4536
+ "label": "Description",
4537
+ "form_section": "metadata"
4538
+ },
4539
+ "spec.application_type": {
4540
+ "widget_type": "listbox",
4541
+ "label": "Application Type",
4542
+ "required": true,
4543
+ "form_section": "application-configuration"
4544
+ },
4545
+ "spec.application_configuration": {
4546
+ "widget_type": "configurable",
4547
+ "label": "Application Configuration",
4548
+ "required": true,
4549
+ "form_section": "application-configuration"
4550
+ }
4551
+ },
4552
+ "ticket_tracking_system": {
4553
+ "metadata.name": {
4554
+ "widget_type": "textbox",
4555
+ "label": "Name",
4556
+ "required": true,
4557
+ "form_section": "metadata"
4558
+ },
4559
+ "metadata.labels": {
4560
+ "widget_type": "key-value-pairs",
4561
+ "label": "Labels",
4562
+ "form_section": "metadata"
4563
+ },
4564
+ "metadata.description": {
4565
+ "widget_type": "textbox",
4566
+ "label": "Description",
4567
+ "form_section": "metadata"
4568
+ },
4569
+ "spec.provider": {
4570
+ "widget_type": "listbox",
4571
+ "label": "Provider",
4572
+ "required": true,
4573
+ "default": "Jira",
4574
+ "form_section": "ticket-tracking-system"
4575
+ },
4576
+ "spec.api_token": {
4577
+ "widget_type": "textbox",
4578
+ "label": "API Token",
4579
+ "required": true,
4580
+ "form_section": "ticket-tracking-system"
4581
+ },
4582
+ "spec.account_email": {
4583
+ "widget_type": "textbox",
4584
+ "label": "Account Email",
4585
+ "required": true,
4586
+ "form_section": "ticket-tracking-system"
4587
+ },
4588
+ "spec.organization_domain": {
4589
+ "widget_type": "textbox",
4590
+ "label": "Organization Domain",
4591
+ "required": true,
4592
+ "form_section": "ticket-tracking-system"
4593
+ }
4594
+ },
4595
+ "tunnel": {
4596
+ "metadata.name": {
4597
+ "widget_type": "textbox",
4598
+ "label": "Name",
4599
+ "required": true,
4600
+ "form_section": "metadata"
4601
+ },
4602
+ "metadata.labels": {
4603
+ "widget_type": "key-value-pairs",
4604
+ "label": "Labels",
4605
+ "form_section": "metadata"
4606
+ },
4607
+ "metadata.description": {
4608
+ "widget_type": "textbox",
4609
+ "label": "Description",
4610
+ "form_section": "metadata"
4611
+ },
4612
+ "spec.tunnel_type": {
4613
+ "widget_type": "listbox",
4614
+ "label": "Tunnel Type",
4615
+ "required": true,
4616
+ "form_section": "tunnel-type"
4617
+ },
4618
+ "spec.local_ip_type": {
4619
+ "widget_type": "listbox",
4620
+ "label": "Type",
4621
+ "default": "Local Interface",
4622
+ "form_section": "local-ip-address"
4623
+ },
4624
+ "spec.local_interface": {
4625
+ "widget_type": "listbox",
4626
+ "label": "Local Interface",
4627
+ "form_section": "local-ip-address"
4628
+ },
4629
+ "spec.remote_ip_type": {
4630
+ "widget_type": "listbox",
4631
+ "label": "Type",
4632
+ "default": "Remote IP address",
4633
+ "form_section": "remote-ip-address"
4634
+ },
4635
+ "spec.version": {
4636
+ "widget_type": "listbox",
4637
+ "label": "Version",
4638
+ "default": "IPv4 Address",
4639
+ "form_section": "remote-ip-address"
4640
+ },
4641
+ "spec.ipv4_address": {
4642
+ "widget_type": "textbox",
4643
+ "label": "IPv4 Address",
4644
+ "form_section": "remote-ip-address"
4645
+ },
4646
+ "spec.tunnel_params_type": {
4647
+ "widget_type": "listbox",
4648
+ "label": "Type",
4649
+ "default": "IPSEC parameters",
4650
+ "form_section": "tunnel-parameters"
4651
+ },
4652
+ "spec.ipsec_psk": {
4653
+ "widget_type": "configurable",
4654
+ "label": "Ipsec PSK",
4655
+ "form_section": "tunnel-parameters"
4656
+ },
4657
+ "spec.local_ip": {
4658
+ "required": true,
4659
+ "label": "Local Ip",
4660
+ "form_section": "basic-configuration",
4661
+ "description": "Server-required: Field should be not nil",
4662
+ "widget_type": "configurable"
4663
+ }
4664
+ },
4665
+ "usb_policy": {
4666
+ "metadata.name": {
4667
+ "widget_type": "textbox",
4668
+ "label": "Name",
4669
+ "required": true,
4670
+ "form_section": "metadata"
4671
+ },
4672
+ "metadata.labels": {
4673
+ "widget_type": "key-value-pairs",
4674
+ "label": "Labels",
4675
+ "form_section": "metadata"
4676
+ },
4677
+ "metadata.description": {
4678
+ "widget_type": "textbox",
4679
+ "label": "Description",
4680
+ "form_section": "metadata"
4681
+ },
4682
+ "spec.allowed_usb_devices": {
4683
+ "widget_type": "configurable",
4684
+ "label": "Allowed USB devices",
4685
+ "required": true,
4686
+ "form_section": "allowed-usb-devices"
4687
+ },
4688
+ "spec.allowed_devices": {
4689
+ "required": true,
4690
+ "label": "Allowed Devices",
4691
+ "form_section": "basic-configuration",
4692
+ "description": "Server-required: Minimum items of 1",
4693
+ "widget_type": "configurable"
4694
+ }
4695
+ },
4696
+ "user_identification": {
4697
+ "metadata.name": {
4698
+ "widget_type": "textbox",
4699
+ "label": "Name",
4700
+ "required": true,
4701
+ "form_section": "metadata"
4702
+ },
4703
+ "metadata.labels": {
4704
+ "widget_type": "key-value-pairs",
4705
+ "label": "Labels",
4706
+ "form_section": "metadata"
4707
+ },
4708
+ "metadata.description": {
4709
+ "widget_type": "textbox",
4710
+ "label": "Description",
4711
+ "form_section": "metadata"
4712
+ },
4713
+ "spec.user_identification_rules": {
4714
+ "widget_type": "configurable",
4715
+ "label": "User Identification Rules",
4716
+ "form_section": "user-identification-rules"
4717
+ },
4718
+ "spec.rules": {
4719
+ "required": true,
4720
+ "label": "Rules",
4721
+ "form_section": "basic-configuration",
4722
+ "description": "Server-required: Minimum items of 1",
4723
+ "widget_type": "configurable"
4724
+ }
4725
+ },
4726
+ "virtual_k8s": {
4727
+ "metadata.name": {
4728
+ "widget_type": "textbox",
4729
+ "label": "Name",
4730
+ "required": true,
4731
+ "form_section": "metadata"
4732
+ },
4733
+ "metadata.labels": {
4734
+ "widget_type": "key-value-pairs",
4735
+ "label": "Labels",
4736
+ "form_section": "metadata"
4737
+ },
4738
+ "metadata.description": {
4739
+ "widget_type": "textbox",
4740
+ "label": "Description",
4741
+ "form_section": "metadata"
4742
+ },
4743
+ "spec.virtual_sites": {
4744
+ "widget_type": "table",
4745
+ "label": "Virtual Sites",
4746
+ "form_section": "virtual-sites"
4747
+ },
4748
+ "spec.choose_service_isolation": {
4749
+ "widget_type": "listbox",
4750
+ "label": "Choose Service Isolation",
4751
+ "default": "Disabled",
4752
+ "form_section": "service-isolation"
4753
+ },
4754
+ "spec.default_workload_flavor": {
4755
+ "widget_type": "listbox",
4756
+ "label": "Default Workload Flavor",
4757
+ "form_section": "default-workload-flavor"
4758
+ }
4759
+ },
4760
+ "virtual_network": {
4761
+ "metadata.name": {
4762
+ "widget_type": "textbox",
4763
+ "label": "Name",
4764
+ "required": true,
4765
+ "form_section": "metadata"
4766
+ },
4767
+ "metadata.labels": {
4768
+ "widget_type": "key-value-pairs",
4769
+ "label": "Labels",
4770
+ "form_section": "metadata"
4771
+ },
4772
+ "metadata.description": {
4773
+ "widget_type": "textbox",
4774
+ "label": "Description",
4775
+ "form_section": "metadata"
4776
+ },
4777
+ "spec.select_type_of_network": {
4778
+ "widget_type": "listbox",
4779
+ "label": "Select Type of Network",
4780
+ "required": true,
4781
+ "default": "Global Network",
4782
+ "form_section": "virtual-network-type"
4783
+ },
4784
+ "spec.static_routes": {
4785
+ "widget_type": "table",
4786
+ "label": "Static Routes",
4787
+ "form_section": "static-routes"
4788
+ },
4789
+ "spec.static_ipv6_routes": {
4790
+ "widget_type": "table",
4791
+ "label": "Static IPv6 Routes",
4792
+ "form_section": "static-ipv6-routes"
4793
+ }
4794
+ },
4795
+ "workload_flavor": {
4796
+ "metadata.name": {
4797
+ "widget_type": "textbox",
4798
+ "label": "Name",
4799
+ "required": true,
4800
+ "form_section": "metadata"
4801
+ },
4802
+ "metadata.labels": {
4803
+ "widget_type": "key-value-pairs",
4804
+ "label": "Labels",
4805
+ "form_section": "metadata"
4806
+ },
4807
+ "metadata.description": {
4808
+ "widget_type": "textbox",
4809
+ "label": "Description",
4810
+ "form_section": "metadata"
4811
+ },
4812
+ "spec.memory_mib": {
4813
+ "widget_type": "textbox",
4814
+ "label": "Memory (MiB)",
4815
+ "default": "0",
4816
+ "form_section": "memory"
4817
+ },
4818
+ "spec.vcpus": {
4819
+ "widget_type": "textbox",
4820
+ "label": "vCPUs",
4821
+ "default": "0",
4822
+ "form_section": "vcpus"
4823
+ },
4824
+ "spec.ephemeral_storage_mib": {
4825
+ "widget_type": "textbox",
4826
+ "label": "Ephemeral Storage (MiB)",
4827
+ "default": "0",
4828
+ "form_section": "ephemeral-storage"
4829
+ }
4830
+ },
4831
+ "network_policy_rule": {
4832
+ "spec.protocol": {
4833
+ "required": true,
4834
+ "label": "Protocol",
4835
+ "form_section": "basic-configuration",
4836
+ "description": "Server-required: Must be ALL/TCP/UDP/ICMP",
4837
+ "widget_type": "configurable"
4838
+ }
4839
+ }
4840
+ }
4841
+ };