// Auto-generated by scripts/generate-console-field-metadata.ts - DO NOT EDIT // Source of truth: api-specs-enriched/config/console_field_metadata.yaml import type { ConsoleFieldMetadataData } from "./console-field-metadata-types"; export const CONSOLE_FIELD_METADATA: ConsoleFieldMetadataData = { version: "1.0.0", resources: { http_loadbalancer: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", validation: { pattern: "^[a-z][a-z0-9-]*$", max_length: 64, }, }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", required: false, add_action: "Add Label", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", required: false, form_section: "metadata", }, "spec.domains": { widget_type: "table", label: "Domains", required: true, add_action: "Add Item", description: "One or more domains this load balancer serves", form_section: "domains-and-lb-type", }, "spec.https_auto_cert": { widget_type: "listbox", label: "Load Balancer Type", required: true, default: "HTTPS with Automatic Certificate", options: ["HTTP", "HTTPS with Automatic Certificate", "HTTPS with Custom Certificate"], form_section: "domains-and-lb-type", notes: "Selects between spec.http, spec.https, and spec.https_auto_cert", mutually_exclusive_with: ["spec.http", "spec.https"], }, "spec.http": { widget_type: "listbox", label: "Load Balancer Type", form_section: "domains-and-lb-type", hidden: true, notes: "Active when LB Type is HTTP; mutually exclusive with https variants", mutually_exclusive_with: ["spec.https_auto_cert", "spec.https"], }, "spec.https": { widget_type: "listbox", label: "Load Balancer Type", form_section: "domains-and-lb-type", hidden: true, notes: "Active when LB Type is HTTPS with Custom Certificate", mutually_exclusive_with: ["spec.https_auto_cert", "spec.http"], }, "spec.default_route_pools": { widget_type: "nested-resource-list", label: "Origin Pools", required: false, add_action: "Add Item", nested_resource: "origin_pool", form_section: "origins", }, "spec.default_pool": { widget_type: "resource-selector", label: "Default Pool", required: false, form_section: "origins", notes: "Alternative to default_route_pools for single pool", }, "spec.default_pool_list": { widget_type: "nested-resource-list", label: "Default Pool List", required: false, form_section: "origins", }, "spec.origin_server_subset_rule_list": { widget_type: "configurable", label: "Origin Server Subset Rules", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "origins", show_advanced_fields: true, }, "spec.routes": { widget_type: "configurable", label: "Routes", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "routes", }, "spec.disable_caching": { widget_type: "listbox", label: "Caching", required: false, default: "Disable", options: ["Disable", "Enable"], form_section: "cdn", notes: "Empty object sentinel — presence means caching is disabled", }, "spec.app_firewall": { widget_type: "resource-selector", label: "WAF", resource_type: "app_firewall", required: false, form_section: "waf", notes: "Enable WAF by selecting an App Firewall resource", mutually_exclusive_with: ["spec.disable_waf"], }, "spec.disable_waf": { widget_type: "listbox", label: "WAF", default: "Disable", form_section: "waf", notes: "Empty object sentinel — presence means WAF is disabled", mutually_exclusive_with: ["spec.app_firewall"], }, "spec.waf_exclusion": { widget_type: "listbox", label: "WAF Exclusion", required: false, default: "Inline Rules", options: ["Inline Rules", "Custom Rules"], form_section: "waf", depends_on: "spec.app_firewall", }, "spec.data_guard_rules": { widget_type: "configurable", label: "Data Guard Rules", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "waf", }, "spec.csrf_policy": { widget_type: "configurable", label: "CSRF Protection", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "waf", }, "spec.graphql_rules": { widget_type: "configurable", label: "GraphQL Inspection", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "waf", }, "spec.protected_cookies": { widget_type: "configurable", label: "Cookie Protection", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "waf", }, "spec.bot_defense": { widget_type: "listbox", label: "Bot Defense", required: false, default: "Disable", options: ["Disable", "Enable"], form_section: "bot-protection", mutually_exclusive_with: ["spec.disable_bot_defense"], }, "spec.bot_defense_advanced": { widget_type: "configurable", label: "Bot Defense Advanced", required: false, form_section: "bot-protection", show_advanced_fields: true, depends_on: "spec.bot_defense", }, "spec.disable_bot_defense": { widget_type: "listbox", label: "Bot Defense", default: "Disable", form_section: "bot-protection", notes: "Empty object sentinel — presence means bot defense is disabled", mutually_exclusive_with: ["spec.bot_defense", "spec.bot_defense_advanced"], }, "spec.api_specification": { widget_type: "configurable", label: "API Definition", required: false, form_section: "api-protection", notes: "Upload or reference an API spec for schema enforcement", mutually_exclusive_with: ["spec.disable_api_definition"], }, "spec.disable_api_definition": { widget_type: "listbox", label: "API Definition", default: "Disable", form_section: "api-protection", notes: "Empty object sentinel — presence means API definition is disabled", mutually_exclusive_with: ["spec.api_specification"], }, "spec.api_protection_rules": { widget_type: "configurable", label: "API Protection Rules", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "api-protection", depends_on: "spec.api_specification", }, "spec.jwt_validation": { widget_type: "configurable", label: "JWT Validation", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "api-protection", }, "spec.enable_api_discovery": { widget_type: "listbox", label: "API Discovery", required: false, default: "Disable", options: ["Disable", "Enable"], form_section: "api-protection", mutually_exclusive_with: ["spec.disable_api_discovery"], }, "spec.disable_api_discovery": { widget_type: "listbox", label: "API Discovery", default: "Disable", form_section: "api-protection", notes: "Empty object sentinel — presence means API discovery is disabled", mutually_exclusive_with: ["spec.enable_api_discovery"], }, "spec.sensitive_data_policy": { widget_type: "listbox", label: "Sensitive Data Discovery", required: false, default: "Default", options: ["Default", "Custom"], form_section: "api-protection", mutually_exclusive_with: ["spec.default_sensitive_data_policy"], }, "spec.default_sensitive_data_policy": { widget_type: "listbox", label: "Sensitive Data Discovery", default: "Default", form_section: "api-protection", notes: "Empty object sentinel — uses default sensitive data policy", mutually_exclusive_with: ["spec.sensitive_data_policy"], }, "spec.api_rate_limit": { widget_type: "configurable", label: "API Rate Limit", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "api-protection", }, "spec.api_testing": { widget_type: "listbox", label: "API Testing", required: false, default: "Disable", options: ["Disable", "Enable"], form_section: "api-protection", mutually_exclusive_with: ["spec.disable_api_testing"], }, "spec.disable_api_testing": { widget_type: "listbox", label: "API Testing", default: "Disable", form_section: "api-protection", notes: "Empty object sentinel — presence means API testing is disabled", mutually_exclusive_with: ["spec.api_testing"], }, "spec.sensitive_data_disclosure_rules": { widget_type: "configurable", label: "Sensitive Data Exposure Rules", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "api-protection", }, "spec.l7_ddos_protection": { widget_type: "configurable", label: "DDoS Protection", required: false, form_section: "dos-settings", notes: "Contains mitigation_action, rps_threshold, and client_side_challenge settings", }, "spec.l7_ddos_action_block": { widget_type: "listbox", label: "Mitigation Action", default: "Block", form_section: "dos-settings", notes: "Empty object sentinel — block mitigation action", mutually_exclusive_with: ["spec.l7_ddos_action_default", "spec.l7_ddos_action_js_challenge"], }, "spec.l7_ddos_action_default": { widget_type: "listbox", label: "Mitigation Action", default: "None", form_section: "dos-settings", notes: "Empty object sentinel — no mitigation action", mutually_exclusive_with: ["spec.l7_ddos_action_block", "spec.l7_ddos_action_js_challenge"], }, "spec.l7_ddos_action_js_challenge": { widget_type: "listbox", label: "Mitigation Action", default: "JavaScript Challenge", form_section: "dos-settings", mutually_exclusive_with: ["spec.l7_ddos_action_block", "spec.l7_ddos_action_default"], }, "spec.ddos_mitigation_rules": { widget_type: "configurable", label: "DDoS Mitigation Rules", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "dos-settings", }, "spec.slow_ddos_mitigation": { widget_type: "listbox", label: "Slow DDoS Mitigation", required: false, default: "Default", options: ["Default", "Custom"], form_section: "dos-settings", }, "spec.captcha_challenge": { widget_type: "configurable", label: "Captcha Challenge", required: false, form_section: "dos-settings", mutually_exclusive_with: ["spec.js_challenge", "spec.no_challenge", "spec.policy_based_challenge"], }, "spec.js_challenge": { widget_type: "configurable", label: "JavaScript Challenge", required: false, form_section: "dos-settings", mutually_exclusive_with: ["spec.captcha_challenge", "spec.no_challenge", "spec.policy_based_challenge"], }, "spec.no_challenge": { widget_type: "listbox", label: "Client-Side Challenge", default: "None", form_section: "dos-settings", notes: "Empty object sentinel — no client-side challenge", mutually_exclusive_with: ["spec.captcha_challenge", "spec.js_challenge", "spec.policy_based_challenge"], }, "spec.policy_based_challenge": { widget_type: "configurable", label: "Policy-Based Challenge", required: false, form_section: "dos-settings", mutually_exclusive_with: ["spec.captcha_challenge", "spec.js_challenge", "spec.no_challenge"], }, "spec.enable_challenge": { widget_type: "configurable", label: "Challenge Settings", required: false, form_section: "dos-settings", }, "spec.service_policies_from_namespace": { widget_type: "listbox", label: "Service Policies", required: false, default: "Apply Namespace Service Policies", form_section: "common-security-controls", notes: "Empty object sentinel — applies namespace-level service policies", mutually_exclusive_with: ["spec.active_service_policies", "spec.no_service_policies"], }, "spec.active_service_policies": { widget_type: "configurable", label: "Service Policies", required: false, form_section: "common-security-controls", notes: "Apply specified service policies", mutually_exclusive_with: ["spec.service_policies_from_namespace", "spec.no_service_policies"], }, "spec.no_service_policies": { widget_type: "listbox", label: "Service Policies", form_section: "common-security-controls", notes: "Empty object sentinel — do not apply service policies", mutually_exclusive_with: ["spec.service_policies_from_namespace", "spec.active_service_policies"], }, "spec.enable_ip_reputation": { widget_type: "listbox", label: "IP Reputation", required: false, default: "Disable", options: ["Disable", "Enable"], form_section: "common-security-controls", mutually_exclusive_with: ["spec.disable_ip_reputation"], }, "spec.disable_ip_reputation": { widget_type: "listbox", label: "IP Reputation", default: "Disable", form_section: "common-security-controls", notes: "Empty object sentinel — IP reputation disabled", mutually_exclusive_with: ["spec.enable_ip_reputation"], }, "spec.enable_threat_mesh": { widget_type: "listbox", label: "Threat Mesh", required: false, default: "Disable", options: ["Disable", "Enable"], form_section: "common-security-controls", mutually_exclusive_with: ["spec.disable_threat_mesh"], }, "spec.disable_threat_mesh": { widget_type: "listbox", label: "Threat Mesh", default: "Disable", form_section: "common-security-controls", notes: "Empty object sentinel — threat mesh disabled", mutually_exclusive_with: ["spec.enable_threat_mesh"], }, "spec.user_id_client_ip": { widget_type: "listbox", label: "User Identifier", required: false, default: "Client IP Address", form_section: "common-security-controls", notes: "Empty object sentinel — use client IP as user identifier", mutually_exclusive_with: ["spec.user_identification"], }, "spec.user_identification": { widget_type: "resource-selector", label: "User Identifier", required: false, form_section: "common-security-controls", notes: "Custom user identification policy (TLS fingerprint or custom)", mutually_exclusive_with: ["spec.user_id_client_ip"], }, "spec.enable_malicious_user_detection": { widget_type: "listbox", label: "Malicious User Detection", required: false, default: "Disable", options: ["Disable", "Enable"], form_section: "common-security-controls", mutually_exclusive_with: ["spec.disable_malicious_user_detection"], }, "spec.disable_malicious_user_detection": { widget_type: "listbox", label: "Malicious User Detection", default: "Disable", form_section: "common-security-controls", notes: "Empty object sentinel — malicious user detection disabled", mutually_exclusive_with: ["spec.enable_malicious_user_detection"], }, "spec.rate_limit": { widget_type: "configurable", label: "Rate Limiting", required: false, default_state: "Not configured", form_section: "common-security-controls", notes: "Enable and configure rate limiting rules", mutually_exclusive_with: ["spec.disable_rate_limit"], }, "spec.disable_rate_limit": { widget_type: "listbox", label: "Rate Limiting", default: "Disable", form_section: "common-security-controls", notes: "Empty object sentinel — rate limiting disabled", mutually_exclusive_with: ["spec.rate_limit"], }, "spec.trusted_clients": { widget_type: "configurable", label: "Trusted Client Rules", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "common-security-controls", }, "spec.blocked_clients": { widget_type: "configurable", label: "Client Blocking Rules", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "common-security-controls", }, "spec.cors_policy": { widget_type: "configurable", label: "CORS Policy", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "common-security-controls", }, "spec.advertise_on_public": { widget_type: "listbox", label: "VIP Advertisement", required: false, default: "Internet", options: ["Internet", "Internet with VIP on RE", "Custom"], form_section: "other-settings", mutually_exclusive_with: [ "spec.advertise_on_public_default_vip", "spec.advertise_custom", "spec.do_not_advertise", ], }, "spec.advertise_on_public_default_vip": { widget_type: "listbox", label: "VIP Advertisement", form_section: "other-settings", notes: "Empty object sentinel — advertise on public with default VIP", mutually_exclusive_with: ["spec.advertise_on_public", "spec.advertise_custom", "spec.do_not_advertise"], }, "spec.advertise_custom": { widget_type: "configurable", label: "VIP Advertisement", form_section: "other-settings", notes: "Custom advertisement configuration", mutually_exclusive_with: [ "spec.advertise_on_public", "spec.advertise_on_public_default_vip", "spec.do_not_advertise", ], }, "spec.do_not_advertise": { widget_type: "listbox", label: "VIP Advertisement", form_section: "other-settings", notes: "Empty object sentinel — do not advertise", mutually_exclusive_with: [ "spec.advertise_on_public", "spec.advertise_on_public_default_vip", "spec.advertise_custom", ], }, "spec.round_robin": { widget_type: "listbox", label: "LB Algorithm", required: false, default: "Round Robin", form_section: "other-settings", notes: "Empty object sentinel — round-robin load balancing", mutually_exclusive_with: [ "spec.least_active", "spec.random", "spec.ring_hash", "spec.source_ip_stickiness", "spec.cookie_stickiness", ], }, "spec.least_active": { widget_type: "listbox", label: "LB Algorithm", form_section: "other-settings", notes: "Empty object sentinel — least active request", mutually_exclusive_with: [ "spec.round_robin", "spec.random", "spec.ring_hash", "spec.source_ip_stickiness", "spec.cookie_stickiness", ], }, "spec.random": { widget_type: "listbox", label: "LB Algorithm", form_section: "other-settings", notes: "Empty object sentinel — random selection", mutually_exclusive_with: [ "spec.round_robin", "spec.least_active", "spec.ring_hash", "spec.source_ip_stickiness", "spec.cookie_stickiness", ], }, "spec.ring_hash": { widget_type: "configurable", label: "LB Algorithm", form_section: "other-settings", notes: "Ring hash with configurable hash policy", mutually_exclusive_with: [ "spec.round_robin", "spec.least_active", "spec.random", "spec.source_ip_stickiness", "spec.cookie_stickiness", ], }, "spec.source_ip_stickiness": { widget_type: "listbox", label: "LB Algorithm", form_section: "other-settings", notes: "Empty object sentinel — source IP stickiness", mutually_exclusive_with: [ "spec.round_robin", "spec.least_active", "spec.random", "spec.ring_hash", "spec.cookie_stickiness", ], }, "spec.cookie_stickiness": { widget_type: "configurable", label: "LB Algorithm", form_section: "other-settings", notes: "Cookie-based stickiness with configurable cookie", mutually_exclusive_with: [ "spec.round_robin", "spec.least_active", "spec.random", "spec.ring_hash", "spec.source_ip_stickiness", ], }, "spec.disable_trust_client_ip_headers": { widget_type: "listbox", label: "Trusted Client IP Headers", required: false, default: "Disable", form_section: "other-settings", notes: "Empty object sentinel — trusted client IP headers disabled", mutually_exclusive_with: ["spec.enable_trust_client_ip_headers"], }, "spec.enable_trust_client_ip_headers": { widget_type: "configurable", label: "Trusted Client IP Headers", required: false, form_section: "other-settings", notes: "Configure which headers to trust for client IP", mutually_exclusive_with: ["spec.disable_trust_client_ip_headers"], }, "spec.add_location": { widget_type: "checkbox", label: "Add Location", required: false, default: true, form_section: "other-settings", }, "spec.more_option": { widget_type: "expandable", label: "More Options", required: false, form_section: "other-settings", notes: "Expands to reveal advanced configuration options", }, "spec.multi_lb_app": { widget_type: "listbox", label: "Multi-LB Application", form_section: "other-settings", notes: "Empty object sentinel — multi load balancer application mode", mutually_exclusive_with: ["spec.single_lb_app"], }, "spec.single_lb_app": { widget_type: "configurable", label: "Single-LB Application", form_section: "other-settings", notes: "Single load balancer application settings", mutually_exclusive_with: ["spec.multi_lb_app"], }, "spec.system_default_timeouts": { widget_type: "listbox", label: "Timeouts", form_section: "other-settings", default: "Default", notes: "Empty object sentinel — use system default timeout values", }, "spec.malware_protection_settings": { widget_type: "configurable", label: "Malware Protection", form_section: "malware-protection", disabled: true, disabled_reason: "Upgrade required", mutually_exclusive_with: ["spec.disable_malware_protection"], }, "spec.disable_malware_protection": { widget_type: "listbox", label: "Malware Protection", form_section: "malware-protection", disabled: true, disabled_reason: "Upgrade required", mutually_exclusive_with: ["spec.malware_protection_settings"], }, "spec.client_side_defense": { widget_type: "configurable", label: "Client-Side Defense", form_section: "client-side-defense", disabled: true, disabled_reason: "Upgrade required", mutually_exclusive_with: ["spec.disable_client_side_defense"], }, "spec.disable_client_side_defense": { widget_type: "listbox", label: "Client-Side Defense", form_section: "client-side-defense", disabled: true, disabled_reason: "Upgrade required", mutually_exclusive_with: ["spec.client_side_defense"], }, }, origin_pool: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", validation: { pattern: "^[a-z][a-z0-9-]*$", max_length: 64, }, }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", required: false, add_action: "Add Label", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", required: false, form_section: "metadata", }, "spec.origin_servers": { widget_type: "nested-resource-list", label: "Origin Servers", required: true, add_action: "Add Item", form_section: "origin-servers", sub_field_label: "DNS Name", description: 'Default type: Public DNS Name. The sub-form requires "DNS Name" (FQDN of the origin).', item_types: { public_name: { label: "Public DNS Name", fields: ["dns_name", "refresh_interval"], }, public_ip: { label: "Public IP", fields: ["ip"], }, private_ip: { label: "Private IP", fields: ["ip", "site_locator", "inside_network", "outside_network", "segment", "snat_pool"], }, private_name: { label: "Private DNS Name", fields: [ "dns_name", "refresh_interval", "site_locator", "inside_network", "outside_network", "segment", "snat_pool", ], }, k8s_service: { label: "K8s Service", fields: [ "service_name", "site_locator", "inside_network", "outside_network", "protocol", "snat_pool", "vk8s_networks", ], }, consul_service: { label: "Consul Service", fields: ["service_name", "site_locator", "inside_network", "outside_network", "snat_pool"], }, custom_endpoint_object: { label: "Custom Endpoint", fields: ["endpoint"], }, vn_private_ip: { label: "Virtual Network Private IP", fields: ["ip", "virtual_network"], }, vn_private_name: { label: "Virtual Network Private Name", fields: ["dns_name", "private_network"], }, }, }, "spec.port": { widget_type: "spinbutton", label: "Port", required: true, default: 443, form_section: "origin-servers", }, "spec.healthcheck": { widget_type: "resource-selector", label: "Health Checks", resource_type: "healthcheck", required: false, form_section: "health-checks", }, "spec.use_tls": { widget_type: "configurable", label: "TLS", form_section: "tls", nested_properties: 13, notes: "Contains tls_config, mTLS, server verification, SNI, session caching", }, "spec.advanced_options": { widget_type: "configurable", label: "Other Settings", form_section: "other-settings", nested_properties: 21, notes: "Circuit breaker, outlier detection, connection timeouts, proxy protocol, subsets", }, }, app_firewall: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", validation: { pattern: "^[a-z][a-z0-9-]*$", max_length: 64, }, }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", required: false, add_action: "Add Label", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", required: false, form_section: "metadata", }, "spec.enforcement_mode": { widget_type: "listbox", label: "Enforcement Mode", required: true, default: "Blocking", options: ["Monitoring", "Blocking"], form_section: "enforcement-mode", }, "spec.detection_settings": { widget_type: "configurable", label: "Detection Settings", required: false, default_state: "Not configured", configure_action: "Configure", form_section: "security-policy-settings", }, }, tcp_loadbalancer: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, domains: { widget_type: "table", label: "Domains", required: true, add_item_first: true, form_section: "basic-configuration", 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.", }, listen_port: { widget_type: "spinbutton", label: "Listen Port (value)", required: true, form_section: "basic-configuration", }, no_sni: { widget_type: "listbox", label: "No SNI", form_section: "basic-configuration", mutually_exclusive_with: ["sni"], }, origin_pools_weights: { widget_type: "nested-resource-list", label: "Origin Pools", add_action: "Add Item", form_section: "basic-configuration", }, advertise_on_public: { widget_type: "listbox", label: "Advertise On Public", default: "Advertise On Public", form_section: "basic-configuration", }, tcp: { widget_type: "listbox", label: "TCP", default: "TCP", form_section: "load-balancing-control", mutually_exclusive_with: ["tcp_proxy", "sni_based"], }, round_robin: { widget_type: "listbox", label: "Round Robin", default: "Round Robin", form_section: "load-balancing-control", }, service_policies_from_namespace: { widget_type: "listbox", label: "Apply Namespace Service Policies", form_section: "service-policies", }, "spec.port_choice": { required: true, label: "Listen Port", form_section: "basic-configuration", default: "Listen Port", options: ["Listen Port", "Custom Port"], description: "vsui listbox choice (Listen Port | Custom Port). Verified from docs/form-discovery/tcp_loadbalancer.yaml.", widget_type: "listbox", }, }, healthcheck: { http_health_check: { widget_type: "configurable", label: "HTTP HealthCheck", form_section: "health-check-parameters", mutually_exclusive_with: ["tcp_health_check"], }, timeout: { widget_type: "spinbutton", label: "Timeout", default: 3, form_section: "health-check-parameters", }, interval: { widget_type: "spinbutton", label: "Interval", default: 15, form_section: "health-check-parameters", }, unhealthy_threshold: { widget_type: "spinbutton", label: "Unhealthy Threshold", default: 1, form_section: "health-check-parameters", }, healthy_threshold: { widget_type: "spinbutton", label: "Healthy Threshold", default: 3, form_section: "health-check-parameters", }, "spec.health_check": { required: true, label: "Health Check", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, service_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.any_server": { widget_type: "listbox", label: "Any Server", default: "Any Server", form_section: "servers", mutually_exclusive_with: ["spec.server_name", "spec.server_name_matcher", "spec.server_selector"], }, "spec.rule_list": { widget_type: "configurable", label: "Custom Rule List", form_section: "rules", mutually_exclusive_with: [ "spec.allow_all_requests", "spec.deny_all_requests", "spec.allow_list", "spec.deny_list", ], notes: "Opens nested rule editor with match conditions and actions", }, "spec.rule_choice": { required: true, label: "Rule Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", console_preselected: true, }, }, virtual_host: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.domains": { widget_type: "table", label: "Domains", required: true, add_action: "Add Item", form_section: "basic", }, "spec.routes": { widget_type: "nested-resource-list", label: "Routes", add_action: "Add Item", form_section: "routes", }, "spec.proxy": { widget_type: "configurable", label: "Proxy", form_section: "proxy", notes: "Proxy settings including connection and routing behavior", required: true, description: "Server-required: Must be SMA_PROXY or UDP_PROXY", }, "spec.tls_parameters": { widget_type: "configurable", label: "TLS Parameters", form_section: "tls", notes: "Downstream TLS configuration", }, "spec.cors_policy": { widget_type: "configurable", label: "CORS Policy", form_section: "security", }, "spec.csrf_policy": { widget_type: "configurable", label: "CSRF Policy", form_section: "security", }, "spec.waf_type": { widget_type: "configurable", label: "WAF Type", form_section: "security", }, "spec.buffer_policy": { widget_type: "configurable", label: "Buffer Policy", form_section: "advanced", }, "spec.compression_params": { widget_type: "configurable", label: "Compression", form_section: "advanced", }, "spec.retry_policy": { widget_type: "configurable", label: "Retry Policy", form_section: "advanced", }, }, namespace: { "metadata.name": { widget_type: "textbox", label: "Namespace Name", required: true, form_section: "metadata", notes: "System-level resource — no namespace scope", description: 'Live form uses aria-label "Namespace Name" (not standard "Name")', }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, }, cdn_loadbalancer: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.domains": { widget_type: "table", label: "Domains", required: true, add_action: "Add Item", form_section: "basic", }, "spec.https_auto_cert": { widget_type: "listbox", label: "Load Balancer Type", required: true, default: "HTTPS with Automatic Certificate", form_section: "basic", }, "spec.app_firewall": { widget_type: "resource-selector", label: "WAF", form_section: "waf", }, }, aws_vpc_site: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.aws_region": { widget_type: "listbox", label: "AWS Region", required: true, form_section: "basic", }, "spec.aws_cred": { widget_type: "resource-selector", label: "AWS Credentials", required: true, form_section: "basic", }, "spec.instance_type": { widget_type: "listbox", label: "Instance Type", form_section: "basic", }, "spec.deployment": { required: true, label: "Deployment", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, azure_vnet_site: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.azure_region": { widget_type: "listbox", label: "Azure Region", required: true, form_section: "basic", }, "spec.azure_cred": { widget_type: "resource-selector", label: "Azure Credentials", required: true, form_section: "basic", }, "spec.machine_type": { widget_type: "listbox", label: "Machine Type", form_section: "basic", }, "spec.deployment": { required: true, label: "Deployment", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, gcp_vpc_site: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.cloud_credentials": { widget_type: "resource-selector", label: "GCP Credentials", required: true, form_section: "basic", }, "spec.gcp_region": { widget_type: "listbox", label: "GCP Region", form_section: "basic", }, "spec.deployment": { required: true, label: "Deployment", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, dns_zone: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.primary": { widget_type: "configurable", label: "Primary DNS Zone", form_section: "zone-type", }, "spec.domain": { widget_type: "textbox", label: "Domain", required: true, form_section: "basic", }, }, dns_load_balancer: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.record_type": { widget_type: "listbox", label: "Record Type", required: true, form_section: "basic", }, "spec.dns_lb_pool": { widget_type: "resource-selector", label: "DNS LB Pool", form_section: "basic", }, "spec.load_balancing_rules": { widget_type: "nested-resource-list", label: "Load Balancing Rules", required: true, add_action: "Add Item", sub_select_label: "Pool", sub_resource_type: "dns_lb_pool", form_section: "load-balancing-rules", description: "At least one Load Balancing Rule. Each rule selects a Pool (references an existing dns_lb_pool — dependency; create one first).", }, }, global_log_receiver: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.filter": { widget_type: "configurable", label: "Log Filter", form_section: "basic", }, "spec.receiver": { widget_type: "configurable", label: "Receiver Configuration", required: true, form_section: "basic", }, "spec.log_type": { required: true, label: "Log Type", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, k8s_cluster: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.cluster_wide_app_list": { widget_type: "configurable", label: "Cluster-Wide Apps", form_section: "basic", }, }, v1_http_monitor: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.url": { widget_type: "textbox", label: "URL", required: true, form_section: "basic", }, "spec.interval": { widget_type: "spinbutton", label: "Interval", form_section: "basic", }, }, v1_dns_monitor: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.domain": { widget_type: "textbox", label: "Domain", required: true, form_section: "basic", }, "spec.interval": { widget_type: "spinbutton", label: "Interval", form_section: "basic", }, }, aws_tgw_site: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.aws_parameters": { widget_type: "configurable", label: "AWS Parameters", required: true, form_section: "basic", }, }, voltstack_site: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.master_nodes": { widget_type: "configurable", label: "Master Nodes", form_section: "basic", }, "spec.volterra_certified_hw": { required: true, label: "Volterra Certified Hw", form_section: "basic-configuration", description: "Server-required: Minimum length of 1", widget_type: "configurable", }, }, udp_loadbalancer: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.domains": { widget_type: "table", label: "Domains", add_action: "Add Item", form_section: "basic", }, "spec.listen_port": { widget_type: "spinbutton", label: "Listen Port", form_section: "basic", }, }, forward_proxy_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.any_proxy": { widget_type: "listbox", label: "Proxy", default: "Any Proxy", form_section: "basic", }, }, network_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.endpoint": { widget_type: "configurable", label: "Endpoint(s)", form_section: "basic", required: true, description: "Server-required: Field should be not nil", }, }, rate_limiter_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.rules": { widget_type: "configurable", label: "Rate Limit Rules", form_section: "basic", }, }, waf_exclusion_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.waf_exclusion_rules": { widget_type: "configurable", label: "WAF Exclusion Rules", form_section: "basic", }, }, api_discovery: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.discovered_api_settings": { widget_type: "configurable", label: "Discovery Settings", form_section: "basic", }, }, sensitive_data_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.sensitive_data_detection_rules": { widget_type: "configurable", label: "Detection Rules", form_section: "basic", }, }, data_type: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.rules": { widget_type: "configurable", label: "Data Type Rules", form_section: "basic", required: true, description: "Server-required: Minimum items of 1", }, }, virtual_site: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.site_selector": { widget_type: "label-selector", label: "Site Selector Expression", form_section: "selector", required: true, add_action: "Add Label", description: 'CDK-portal label-selector: Add Label → type key prefix (e.g. "ves") → select from portal → operator → value. Verified live via label_select tool.', }, "spec.site_type": { widget_type: "listbox", label: "Site Type", form_section: "basic", required: true, description: "Required: Site Type (RE = Regional Edge, CE = Customer Edge). Select from the listbox.", options: ["RE", "CE"], default: "RE", }, }, alert_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.receivers": { widget_type: "resource-selector", label: "Alert Receivers", required: true, form_section: "basic", resource_type: "alert_receiver", description: "Server-required: at least one Alert Receiver reference. Depends on an existing alert_receiver object (create one first).", }, "spec.routes": { widget_type: "nested-resource-list", label: "Policy Rules", required: true, add_action: "Add Item", form_section: "basic", description: "Server-required: at least one alert policy rule (Field Policy Rules in Spec is required).", }, }, secret_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.rules": { widget_type: "configurable", label: "Policy Rules", form_section: "basic", }, }, alert_receiver: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.receiver": { widget_type: "configurable", label: "Receiver Configuration", required: true, form_section: "basic", }, }, dns_lb_pool: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.members": { widget_type: "nested-resource-list", label: "Pool Members", form_section: "basic", required: true, add_action: "Add Item", sub_field_label: "Public IP", description: "Pool Members is a nested-resource-list (Add Item, NOT Configure — verified from live form). Default A record member needs a Public IP.", }, }, site_mesh_group: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.type": { widget_type: "listbox", label: "Mesh Type", form_section: "basic", }, "spec.bfd_choice": { required: true, label: "Bfd Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, ike_gateway: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.remote_address": { widget_type: "textbox", label: "Remote Address", form_section: "basic", }, }, route: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.simple_static_route": { widget_type: "configurable", label: "Static Route", form_section: "basic", }, }, address_allocator: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.address_allocator_mode": { widget_type: "listbox", label: "Address Allocator Mode", required: true, form_section: "address-allocation-scheme", }, "spec.allocation_unit": { widget_type: "spinbutton", label: "Allocation Unit", required: true, default: 0, form_section: "address-allocation-scheme", }, "spec.local_interface_address_type": { widget_type: "listbox", label: "Local Interface Address Type", form_section: "address-allocation-scheme", }, "spec.local_interface_address_offset": { widget_type: "spinbutton", label: "Local Interface Address Offset", default: 0, form_section: "address-allocation-scheme", }, "spec.address_pool": { widget_type: "table", label: "Address Pool", required: true, form_section: "address-pool", }, "spec.address_allocation_scheme": { required: true, label: "Address Allocation Scheme", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, advertise_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.virtual-site_or_site_or_network": { widget_type: "listbox", label: "Virtual-Site or Site or Network", required: true, default: "Virtual Site", form_section: "advertise-policy", }, "spec.reference": { widget_type: "listbox", label: "Reference", required: true, form_section: "advertise-policy", }, "spec.network_type": { widget_type: "listbox", label: "Network Type", form_section: "advertise-policy", }, "spec.internet_vip_choice": { widget_type: "listbox", label: "Internet VIP Choice", required: true, default: "Disable advertise on internet vip", form_section: "advertise-policy", }, "spec.tcp_udp_port": { widget_type: "listbox", label: "TCP/UDP Port", required: true, default: "TCP/UDP Port", form_section: "advertise-policy", }, "spec.tcp_udp_port_value": { widget_type: "spinbutton", label: "TCP/UDP Port (value)", required: true, default: 80, form_section: "advertise-policy", }, "spec.port_choice": { required: true, label: "Port Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, api_credential: { "metadata.name": { widget_type: "textbox", label: "Credential Name", required: true, form_section: "metadata", description: 'Form uses aria-label "Credential Name" (not standard "Name")', }, "spec.credential_name": { widget_type: "textbox", label: "Credential Name", required: true, form_section: "credential-form", }, "spec.credential_type": { widget_type: "listbox", label: "Credential Type", required: true, default: "API Certificate", form_section: "credential-form", }, "spec.password": { widget_type: "textbox", label: "Password", required: true, form_section: "credential-form", }, "spec.confirm_password": { widget_type: "textbox", label: "Confirm Password", required: true, form_section: "credential-form", }, "spec.expiry_date": { widget_type: "textbox", label: "Expiry Date", required: true, form_section: "credential-form", }, }, api_definition: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.swagger_specs": { widget_type: "table", label: "Swagger Specs", form_section: "openapi-specification-files", }, "spec.api_inventory_inclusion_list": { widget_type: "configurable", label: "API Inventory Inclusion List", form_section: "api-endpoints-management", }, }, app_api_group: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.scope": { widget_type: "listbox", label: "Scope", required: true, default: "HTTP Load Balancer", form_section: "api-endpoints", }, "spec.http_loadbalancer": { widget_type: "listbox", label: "HTTP Load Balancer", required: true, form_section: "api-endpoints", resource_type: "http_loadbalancer", 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.)', }, }, app_setting: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.apptype_customizations": { widget_type: "table", label: "AppType Customizations", form_section: "customize-apptype", }, "spec.app_type_settings": { required: true, label: "App Type Settings", form_section: "basic-configuration", description: "Server-required: Minimum items of 1", widget_type: "configurable", }, }, app_type: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.ai_ml_feature_type": { widget_type: "table", label: "AI/ML Feature Type", form_section: "features", 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).", }, "spec.learn_from_traffic_with_redirect_response": { widget_type: "listbox", label: "Learn from Traffic with Redirect Response", default: "Disable", form_section: "api-discovery-settings", }, "spec.purge_duration_for_inactive_discovered_apis_from_traffic_d": { widget_type: "spinbutton", label: "Purge Duration for Inactive Discovered APIs from Traffic (d)", default: 2, form_section: "api-discovery-settings", }, "spec.app_type_settings": { label: "App Type Settings", widget_type: "nested-resource-list", add_action: "Add Item", form_section: "app-type-settings", 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.", }, "spec.feature_type": { required: true, label: "AI/ML Feature Type", widget_type: "listbox", resource_type: "ai_feature_type", form_section: "features", description: "Required Select-item listbox in the Features section (ships with one row). Verified from live form screenshot.", }, }, authorization_server: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.jwks_uri": { widget_type: "textbox", label: "JWKS URI", required: true, form_section: "spec", description: "Feedback loop: 'Field JWKS URI in Spec must be a valid absolute URI'", }, }, bgp: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.where": { widget_type: "listbox", label: "Where", required: true, default: "Site", form_section: "where", }, "spec.reference": { widget_type: "listbox", label: "Reference", required: true, form_section: "where", }, "spec.asn": { widget_type: "spinbutton", label: "ASN", required: true, default: 0, form_section: "parameters", }, "spec.router_id": { widget_type: "listbox", label: "Router ID", required: true, default: "From Interface Address", form_section: "parameters", }, "spec.peers": { widget_type: "table", label: "Peers", form_section: "peers", }, "spec.bgp_parameters": { required: true, label: "Bgp Parameters", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, bgp_asn_set: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.as_numbers": { widget_type: "table", label: "AS Numbers", form_section: "spec", required: true, 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.", add_action: "Add Item", default: null, }, }, cdn_cache_rule: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.rule_name": { widget_type: "textbox", label: "Rule Name", required: true, form_section: "cache-rule", }, "spec.expressions": { widget_type: "table", label: "Expressions", required: true, add_item_first: true, form_section: "cache-rule", description: "Expressions table starts empty — needs Add Item before filling the inline cell.", }, "spec.cache_actions": { widget_type: "listbox", label: "Cache Actions", required: true, default: "Bypass Cache", form_section: "cache-rule", }, }, certificate: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.certificate": { widget_type: "file-import-button", label: "Certificate", form_section: "certificate", }, "spec.ocsp_stapling": { widget_type: "listbox", label: "OCSP Stapling", default: "Disable", form_section: "ocsp-stapling", }, "spec.intermediate_certificate_chain": { widget_type: "listbox", label: "Intermediate Certificate Chain", default: "", form_section: "intermediate-certificate-chain", }, "spec.certificate_url": { required: true, label: "Certificate Url", form_section: "basic-configuration", description: "Server-required: Minimum bytes of 1", widget_type: "configurable", }, }, cloud_connect: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.provider": { widget_type: "listbox", label: "Provider", required: true, default: "AWS", form_section: "provider", }, "spec.site_reference": { widget_type: "listbox", label: "Site Reference", required: true, form_section: "provider", }, "spec.credential_reference": { widget_type: "listbox", label: "Credential Reference", required: true, form_section: "provider", }, "spec.spoke_vpcs": { widget_type: "configurable", label: "Spoke VPCs", required: true, form_section: "provider", }, "spec.segment": { widget_type: "listbox", label: "Segment", required: true, form_section: "segment", }, "spec.cloud": { required: true, label: "Cloud", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, cloud_credentials: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.select_cloud_credential_type": { widget_type: "listbox", label: "Select Cloud Credential Type", required: true, default: "AWS Programmatic Access Credentials", form_section: "cloud-credentials", }, "spec.access_key_id": { widget_type: "textbox", label: "Access Key ID", required: true, form_section: "cloud-credentials", }, "spec.secret_access_key": { widget_type: "configurable", label: "Secret Access Key", required: true, form_section: "cloud-credentials", }, "spec.cloud": { required: true, label: "Cloud", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, cloud_elastic_ip: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.site_reference": { widget_type: "listbox", label: "Site Reference", required: true, form_section: "site-reference", }, "spec.elastic_ip_count_per_node": { widget_type: "spinbutton", label: "Elastic IP Count Per Node", default: 0, form_section: "elastic-ip-count", }, "spec.count": { required: true, label: "Count", form_section: "basic-configuration", description: "Server-required: Must be >= 1", widget_type: "configurable", }, }, cloud_link: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.type": { widget_type: "listbox", label: "Type", required: true, default: "Amazon Web Services(AWS)", form_section: "cloud-option", }, "spec.bring_your_own_connections": { widget_type: "table", label: "Bring Your Own Connections", required: true, form_section: "cloud-option", }, "spec.account_credential": { widget_type: "listbox", label: "Account Credential", required: true, form_section: "cloud-option", }, "spec.direct_connect_gateway_asn": { widget_type: "listbox", label: "Direct Connect Gateway ASN", required: true, default: "Custom ASN", form_section: "cloud-option", }, "spec.custom_asn": { widget_type: "spinbutton", label: "Custom ASN", required: true, default: 0, form_section: "cloud-option", }, "spec.private_connectivity_via_regional_edge_re": { widget_type: "listbox", label: "Private Connectivity via Regional Edge (RE)", required: true, default: "Disable", form_section: "private-connectivity", }, "spec.cloud_provider": { required: true, label: "Cloud Provider", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, cluster: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.endpoints": { widget_type: "table", label: "Endpoints", form_section: "origin-servers", }, "spec.loadbalancer_algorithm": { widget_type: "listbox", label: "LoadBalancer Algorithm", default: "Load Balancer Override", form_section: "origin-pool-parameters", }, "spec.health_checks": { widget_type: "table", label: "Health Checks", form_section: "origin-pool-parameters", }, "spec.select_upstream_connection_pool_reuse_state": { widget_type: "listbox", label: "Select upstream connection pool reuse state", required: true, default: "Enable Connection Pool Reuse", form_section: "origin-pool-parameters", }, "spec.endpoint_selection": { widget_type: "listbox", label: "Endpoint Selection", default: "Local Endpoints Preferred", form_section: "origin-pool-parameters", }, "spec.tls_parameters": { widget_type: "configurable", label: "TLS Parameters", form_section: "origin-pool-parameters", }, "spec.maximum_requests_per_connection": { widget_type: "listbox", label: "Maximum Requests Per Connection", form_section: "origin-pool-parameters", }, }, code_base_integration: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.code_base": { widget_type: "listbox", label: "Code Base", required: true, form_section: "integration-data", resource_type: "code_base", description: 'A vsui "Select item" listbox (not a configurable). Selects an existing code-base integration. Verified from live form screenshot.', }, }, container_registry: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.server_fqdn": { widget_type: "textbox", label: "Server FQDN", required: true, form_section: "server-fqdn", }, "spec.user_name": { widget_type: "textbox", label: "User Name", required: true, form_section: "user-name", }, "spec.password": { widget_type: "configurable", label: "Password", required: true, form_section: "password", secret: true, 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.", }, "spec.email": { widget_type: "textbox", label: "Email", form_section: "email", }, }, crl: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.crl_server_address": { widget_type: "textbox", label: "CRL Server address", required: true, form_section: "crl-server-address", }, "spec.crl_server_port": { widget_type: "spinbutton", label: "CRL Server Port", default: 80, form_section: "crl-server-address", }, "spec.crl_refresh_interval_h": { widget_type: "spinbutton", label: "CRL Refresh interval (h)", default: 24, form_section: "refresh-interval", }, "spec.crl_download_timeout_s": { widget_type: "spinbutton", label: "CRL download timeout (s)", default: 10, form_section: "crl-download-timeout", }, "spec.crl_access_information": { widget_type: "listbox", label: "CRL Access information", default: "Use HTTP to download the CRL", form_section: "crl-access-information", }, "spec.crl_file_path": { widget_type: "textbox", label: "CRL File path", form_section: "crl-access-information", }, "spec.refresh_interval": { required: true, label: "Refresh Interval", form_section: "basic-configuration", description: "Server-required: Must be >= 6", widget_type: "configurable", }, }, dc_cluster_group: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.mesh_type": { widget_type: "listbox", label: "Mesh Type", default: "Data Plane Mesh", form_section: "mesh-type", }, }, discovery: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.virtual-site_or_site_or_network": { widget_type: "listbox", label: "Virtual-Site or Site or Network", required: true, default: "Virtual Site", form_section: "where", }, "spec.reference": { widget_type: "listbox", label: "Reference", required: true, form_section: "where", }, "spec.network_type": { widget_type: "listbox", label: "Network Type", form_section: "where", }, "spec.select_kubernetes_credentials": { widget_type: "listbox", label: "Select Kubernetes Credentials", required: true, default: "Kubeconfig", form_section: "discovery-configuration", }, "spec.kubeconfig": { widget_type: "configurable", label: "Kubeconfig", required: true, form_section: "discovery-configuration", }, "spec.kubernetes_pod_network_reachability": { widget_type: "listbox", label: "Kubernetes POD network reachability", required: true, default: "Kubernetes POD is isolated", form_section: "discovery-configuration", }, "spec.select_vip_publishing_or_dns_delegation": { widget_type: "listbox", label: "Select VIP Publishing or DNS Delegation", required: true, default: "Disable VIP Publishing and DNS Delegation", form_section: "discovery-configuration", }, "spec.mapping_preference": { widget_type: "listbox", label: "Mapping Preference", required: true, default: "Custom", form_section: "discovery-configuration", }, "spec.regex_matching": { widget_type: "table", label: "Regex Matching", required: true, form_section: "discovery-configuration", }, "spec.select_discovery_cluster_identifier": { widget_type: "listbox", label: "Select Discovery Cluster Identifier", required: true, default: "No cluster identifier", form_section: "discovery-cluster-identifier", }, "spec.discovery_choice": { required: true, label: "Discovery Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, dns_domain: { "metadata.domain_name": { widget_type: "textbox", label: "Domain Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.domain_method": { widget_type: "listbox", label: "Domain Method", required: true, default: "Managed by Distributed Cloud", form_section: "domain-configuration", }, "spec.dnssec_mode": { widget_type: "listbox", label: "DNSSEC Mode", form_section: "dnssec-mode", }, }, dns_lb_health_check: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "metadata.disable": { widget_type: "checkbox", label: "Disable", form_section: "metadata", }, "spec.health_check_type": { widget_type: "listbox", label: "Health Check Type", required: true, default: "HTTP Health Check", form_section: "health-check-type", }, "spec.send_string": { widget_type: "textbox", label: "Send String", default: "HEAD / HTTP/1.0\r\n\r\n", form_section: "health-check-type", }, "spec.receive_string": { widget_type: "textbox", label: "Receive String", default: "HTTP/1.", form_section: "health-check-type", }, "spec.health_check_port": { widget_type: "listbox", label: "Health Check Port", required: true, default: "0", form_section: "health-check-type", }, "spec.health_check_secondary_port": { widget_type: "listbox", label: "Health Check Secondary Port", default: "0", form_section: "health-check-type", }, "spec.virtual_host": { widget_type: "listbox", label: "Virtual Host", required: true, default: "Disable Virtual Host", form_section: "health-check-type", }, }, endpoint: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.endpoint_specifier": { widget_type: "listbox", label: "Endpoint Specifier", default: "Endpoint IP Address", form_section: "origin-server", }, "spec.endpoint_ip_address": { widget_type: "textbox", label: "Endpoint IP Address", form_section: "origin-server", }, "spec.protocol": { widget_type: "listbox", label: "Protocol", default: "TCP", form_section: "origin-server", required: true, description: "Server-required: Must be TCP or UDP", }, "spec.port": { widget_type: "spinbutton", label: "Port", default: 0, form_section: "origin-server", }, "spec.virtual-site_or_site_or_network": { widget_type: "listbox", label: "Virtual-Site or Site or Network", required: true, default: "Virtual Site", form_section: "origin-server", }, "spec.reference": { widget_type: "listbox", label: "Reference", required: true, resource_type: "virtual_site", form_section: "spec", description: "vsui autocomplete dropdown (VSUI-AUTOCOMPLETE-DROPDOWN) selecting a virtual-site, site, or network. Dependency resource.", }, "spec.network_type": { widget_type: "listbox", label: "Network Type", form_section: "origin-server", }, "spec.select_snat_pool_choice": { widget_type: "listbox", label: "Select SNAT Pool Choice", form_section: "snat-pool", }, }, enhanced_firewall_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.select_enhanced_firewall_policy_rule_type": { widget_type: "listbox", label: "Select Enhanced Firewall Policy Rule Type", required: true, default: "Allow all connections", form_section: "rule", }, "spec.source_segments": { widget_type: "listbox", label: "Source Segments", default: "Any", form_section: "segment-selector", }, "spec.destination_segments": { widget_type: "listbox", label: "Destination Segments", default: "Any", form_section: "segment-selector", }, }, external_connector: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.ce_site_reference": { widget_type: "listbox", label: "CE Site Reference", required: true, form_section: "ce-site-reference", }, "spec.connection_type": { widget_type: "listbox", label: "Connection Type", required: true, default: "IPSec", form_section: "connection-details", }, }, fast_acl: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.select_site_type_for_acl": { widget_type: "listbox", label: "Select Site Type For acl", required: true, default: "Site Type Regional Edge", form_section: "fast-acl-type", }, "spec.site_type_regional_edge": { widget_type: "configurable", label: "Site Type Regional Edge", required: true, form_section: "fast-acl-type", }, "spec.default_protocol_policer": { widget_type: "listbox", label: "Default Protocol Policer", form_section: "fast-acl-protocol-policer", }, "spec.site_choice": { required: true, label: "Site Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, fleet: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.fleet_label_value": { widget_type: "textbox", label: "Fleet Label Value", required: true, form_section: "fleet-configuration", }, "spec.outside_site_local_virtual_network": { widget_type: "listbox", label: "Outside (Site Local) Virtual Network", form_section: "fleet-configuration", }, "spec.site_local_inside_virtual_network": { widget_type: "listbox", label: "Site Local Inside Virtual Network", form_section: "fleet-configuration", }, "spec.software_version": { widget_type: "textbox", label: "Software Version", form_section: "fleet-configuration", }, "spec.operating_system_version": { widget_type: "textbox", label: "Operating System Version", form_section: "fleet-configuration", }, "spec.select_bond_configuration": { widget_type: "listbox", label: "Select Bond Configuration", required: true, default: "No Bond Devices", form_section: "network-interfaces", }, "spec.select_interface_config": { widget_type: "listbox", label: "Select Interface Config", required: true, default: "Default Interface Config", form_section: "network-interfaces", }, "spec.network_connectors": { widget_type: "table", label: "Network Connectors", form_section: "network-connectors", }, "spec.network_firewall": { widget_type: "listbox", label: "Network Firewall", form_section: "network-firewall", }, "spec.select_storage_interface_configuration": { widget_type: "listbox", label: "Select Storage Interface Configuration", required: true, default: "No Storage Interfaces", form_section: "storage-configuration", }, "spec.select_storage_device_configuration": { widget_type: "listbox", label: "Select Storage Device Configuration", required: true, default: "No Storage Devices", form_section: "storage-configuration", }, "spec.select_configuration_for_storage_classes": { widget_type: "listbox", label: "Select Configuration for Storage Classes", required: true, default: "Default Storage Class", form_section: "storage-configuration", }, "spec.select_storage_static_routes": { widget_type: "listbox", label: "Select Storage Static Routes", required: true, default: "No Storage Static Routes", form_section: "advanced-configuration", }, "spec.node_by_node_upgrade": { widget_type: "listbox", label: "Node by Node Upgrade", required: true, default: "Enable", form_section: "advanced-configuration", }, "spec.upgrade_wait_time": { widget_type: "spinbutton", label: "Upgrade Wait Time", required: true, default: 300, form_section: "advanced-configuration", }, "spec.node_batch_size": { widget_type: "listbox", label: "Node Batch Size", required: true, default: "Node Batch Size Count", form_section: "advanced-configuration", }, "spec.node_batch_size_count": { widget_type: "spinbutton", label: "Node Batch Size Count", required: true, default: 1, form_section: "advanced-configuration", }, "spec.disable_node_local_services": { widget_type: "table", label: "Disable Node Local Services", form_section: "advanced-configuration", }, "spec.sr-iov_interfaces": { widget_type: "listbox", label: "SR-IOV interfaces", required: true, default: "Disable SR-IOV interfaces", form_section: "advanced-configuration", }, }, geo_location_set: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.geolocation_label_selector": { widget_type: "listbox", label: "Geolocation Label Selector", required: true, default: "Global Geolocation", form_section: "geolocation-label-selector", }, }, ip_prefix_set: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.ipv4_prefix": { widget_type: "table", label: "IPv4 Prefix", form_section: "ipv4-prefixes", }, "spec.ipv6_prefix": { widget_type: "table", label: "IPv6 Prefix", form_section: "ipv6-prefixes", }, "spec.prefix": { required: true, label: "Prefix", widget_type: "nested-resource-list", add_action: "Add Item", form_section: "prefix", description: "IP prefixes — Add Item creates an inline row (NO Apply button). Fill IPv4 Prefix directly.", sub_field_label: "IPv4 Prefix", no_apply: true, }, }, log_receiver: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.log_receiver": { widget_type: "listbox", label: "Log Receiver", required: true, default: "Syslog Server", form_section: "log-receiver", }, "spec.syslog_transport_mode": { widget_type: "listbox", label: "Syslog Transport Mode", required: true, default: "Mode UDP", form_section: "log-receiver", }, "spec.server_name": { widget_type: "textbox", label: "Server name", required: true, form_section: "log-receiver", }, "spec.port_number": { widget_type: "spinbutton", label: "Port Number", required: true, default: 514, form_section: "log-receiver", }, "spec.log_receiver_choice": { required: true, label: "Log Receiver Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, malicious_user_mitigation: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.rules": { widget_type: "table", label: "Rules", form_section: "rules", }, "spec.mitigation_rules": { required: true, label: "Rules", form_section: "rules", widget_type: "nested-resource-list", add_action: "Add Item", description: "At least one mitigation rule is required. Server error: 'Field Rules in Mitigation Rules is required.'", }, }, nat_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.applies_to": { widget_type: "listbox", label: "Applies To", required: true, default: "Site", form_section: "applies-to", }, "spec.site": { widget_type: "table", label: "Site", form_section: "applies-to", }, "spec.rule": { widget_type: "configurable", label: "Rule", form_section: "rule", }, "spec.applies_to_choice": { required: true, label: "Applies To Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, network_connector: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.select_network_connector_type": { widget_type: "listbox", label: "Select Network Connector Type", required: true, default: "SNAT, Site Local Inside to Site Local Outside", form_section: "network-connector-configuration", }, "spec.routing_mode": { widget_type: "listbox", label: "Routing Mode", required: true, default: "Default Gateway", form_section: "network-connector-configuration", }, "spec.snat_source_ip_selection": { widget_type: "listbox", label: "SNAT Source IP Selection", required: true, default: "Interface IP", form_section: "network-connector-configuration", }, "spec.select_forward_proxy": { widget_type: "listbox", label: "Select Forward Proxy", required: true, default: "Disable Forward Proxy", form_section: "proxy-configuration", }, "spec.connector_choice": { required: true, label: "Connector Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, network_firewall: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.select_forward_policy_configuration": { widget_type: "listbox", label: "Select Forward Policy Configuration", required: true, default: "Disable Forward Proxy Policy", form_section: "forward-proxy-policy", }, "spec.select_firewall_policy_configuration": { widget_type: "listbox", label: "Select Firewall Policy Configuration", required: true, default: "Disable Firewall Policy", form_section: "firewall-policy", }, "spec.select_fast_acl_configuration": { widget_type: "listbox", label: "Select Fast ACL Configuration", required: true, default: "Disable Fast ACL", form_section: "fast-acl", }, }, network_interface: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.interface_config_type": { widget_type: "listbox", label: "Interface Config Type", required: true, default: "Ethernet Interface", form_section: "interface-type", }, "spec.ethernet_interface": { widget_type: "configurable", label: "Ethernet Interface", required: true, form_section: "interface-type", }, }, nfv_service: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.external_service_provider": { widget_type: "listbox", label: "External Service Provider", required: true, default: "Virtual BIG-IP on AWS", form_section: "spec", }, "spec.provider_configuration": { widget_type: "configurable", label: "Provider Configuration", required: true, form_section: "spec", }, "spec.https_based_management_of_nodes": { widget_type: "listbox", label: "HTTPS Based Management of Nodes", required: true, default: "Disable HTTPS Based Management", form_section: "spec", }, "spec.ssh_based_management_of_nodes": { widget_type: "listbox", label: "SSH based management of nodes", required: true, default: "Disable SSH access", form_section: "spec", }, "spec.service_provider_choice": { required: true, label: "Service Provider Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, openapi_file: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.description": { widget_type: "textarea", label: "Description", form_section: "metadata", }, "spec.upload_file": { widget_type: "file-upload-button", label: "Upload File", form_section: "openapi-upload", }, }, policer: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.policer_mode": { widget_type: "listbox", label: "Policer Mode", default: "Not Shared", form_section: "policer-mode", }, "spec.committed_information_rate": { widget_type: "spinbutton", label: "Committed Information Rate", required: true, default: 0, form_section: "cir", }, "spec.burst_size": { widget_type: "spinbutton", label: "Burst Size", required: true, default: 0, form_section: "burst-size", }, "spec.policer_type": { widget_type: "listbox", label: "Policer Type", default: "Single-Rate Two-Color Policer", form_section: "policer-type", }, "spec.policer_rules": { required: true, label: "Policer Rules", widget_type: "nested-resource-list", add_action: "Add Item", form_section: "policer", description: "'We found 2 errors' — needs policer rules + burst_size", }, }, protocol_policer: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.protocol_policer": { widget_type: "nested-resource-list", label: "Protocol Policer", form_section: "protocol-policer", required: true, add_action: "Add Item", sub_select_label: "Policer", sub_resource_type: "policer", 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.', }, }, proxy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.http_connect_proxy_or_dynamic_reverse_proxy": { widget_type: "listbox", label: "HTTP Connect Proxy or Dynamic Reverse Proxy", required: true, default: "HTTP Connect Proxy", form_section: "proxy-type", }, "spec.http_connect": { widget_type: "listbox", label: "HTTP Connect", required: true, default: "HTTP Connect", form_section: "proxy-type", }, "spec.select_sites_for_proxy": { widget_type: "listbox", label: "Select Sites for Proxy", required: true, default: "Site or Virtual Site", form_section: "sites-or-virtual-sites", }, "spec.site_or_virtual_site": { widget_type: "configurable", label: "Site or Virtual Site", required: true, form_section: "sites-or-virtual-sites", }, "spec.select_upstream_network": { widget_type: "listbox", label: "Select Upstream Network", required: true, default: "Site Local Network (Outside)", form_section: "upstream-network", }, "spec.tls_interception_choice": { widget_type: "listbox", label: "TLS Interception choice", required: true, default: "No TLS Interception", form_section: "proxy-policy", }, "spec.manage_proxy_policy": { widget_type: "listbox", label: "Manage Proxy Policy", required: true, default: "Disable Proxy Policy", form_section: "proxy-policy", }, "spec.proxy_choice": { required: true, label: "Proxy Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, public_ip: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, }, rate_limiter: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.rate_limit_values": { widget_type: "configurable", label: "Rate Limit Values", form_section: "rate-limit-values", }, "spec.user_identification_policy": { widget_type: "listbox", label: "User Identification Policy", default: "", form_section: "user-identification-policy", }, }, role: { "metadata.name": { widget_type: "textbox", label: "Role Name", required: true, form_section: "metadata", description: 'Form uses aria-label "Role Name" (not standard "Name")', }, "spec.role_name": { widget_type: "textbox", label: "Role Name", required: true, form_section: "role-form", }, "spec.api_groups": { widget_type: "table", label: "API Groups", form_section: "allowed-api-groups", }, }, securemesh_site: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.namespace": { widget_type: "textbox", label: "Namespace", form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.annotations": { widget_type: "configurable", label: "Annotations", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "metadata.disable": { widget_type: "checkbox", label: "Disable", form_section: "metadata", }, "spec.generic_server_certified_hardware": { widget_type: "listbox", label: "Generic Server Certified Hardware", required: true, default: "isv-8000-series-voltmesh", form_section: "basic-configuration", }, "spec.master_nodes": { widget_type: "table", label: "Master Nodes", required: true, form_section: "basic-configuration", }, "spec.worker_nodes": { widget_type: "table", label: "Worker Nodes", form_section: "basic-configuration", }, "spec.geographical_address": { widget_type: "textbox", label: "Geographical Address", form_section: "basic-configuration", }, "spec.latitude": { widget_type: "textbox", label: "Latitude", default: "0", form_section: "basic-configuration", }, "spec.longitude": { widget_type: "textbox", label: "Longitude", default: "0", form_section: "basic-configuration", }, "spec.bond_configuration": { widget_type: "listbox", label: "Bond Configuration", required: true, default: "No Bond Devices", form_section: "bond-configuration", }, "spec.configure_networking": { widget_type: "listbox", label: "Configure Networking", required: true, default: "Default Network Configuration", form_section: "network-configuration", }, "spec.logs_streaming": { widget_type: "listbox", label: "Logs Streaming", required: true, default: "Disable Logs Streaming", form_section: "advanced-configuration", }, "spec.f5xc_software_version": { widget_type: "listbox", label: "F5XC Software Version", required: true, default: "Latest SW Version", form_section: "advanced-configuration", }, "spec.operating_system_version": { widget_type: "listbox", label: "Operating System Version", required: true, default: "Latest OS Version", form_section: "advanced-configuration", }, "spec.node_by_node_upgrade": { widget_type: "listbox", label: "Node by Node Upgrade", required: true, default: "Enable", form_section: "advanced-configuration", }, "spec.upgrade_wait_time": { widget_type: "spinbutton", label: "Upgrade Wait Time", required: true, default: 300, form_section: "advanced-configuration", }, "spec.node_batch_size": { widget_type: "listbox", label: "Node Batch Size", required: true, default: "Node Batch Size Count", form_section: "advanced-configuration", }, "spec.node_batch_size_count": { widget_type: "spinbutton", label: "Node Batch Size Count", required: true, default: 1, form_section: "advanced-configuration", }, "spec.blocked_services": { widget_type: "listbox", label: "Blocked Services", required: true, default: "Default Blocked Service Configuration", form_section: "advanced-configuration", }, "spec.offline_survivability_mode": { widget_type: "listbox", label: "Offline Survivability Mode", required: true, default: "Disabled", form_section: "advanced-configuration", }, "spec.performance_mode": { widget_type: "listbox", label: "Performance Mode", required: true, default: "L7 Enhanced", form_section: "advanced-configuration", }, "spec.master_node_configuration": { required: true, label: "Master Node Configuration", form_section: "basic-configuration", description: "Server-required: Must be 1 or 3", widget_type: "configurable", }, }, securemesh_site_v2: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.provider_name": { widget_type: "listbox", label: "Provider Name", required: true, default: "VMWare", form_section: "provider", }, "spec.orchestration_mode": { widget_type: "listbox", label: "Orchestration Mode", default: "Not Managed By F5XC", form_section: "provider", }, "spec.nodes": { widget_type: "info-text", label: "Nodes", form_section: "provider", }, "spec.high_availability": { widget_type: "listbox", label: "High Availability", default: "Disable", form_section: "provider", }, "spec.provider_choice": { required: true, label: "Provider Choice", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, segment: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.connect_to_internet": { widget_type: "listbox", label: "Connect to Internet", default: "Deny traffic from this segment to Internet", form_section: "connect-to-internet", }, }, segment_connection: { "metadata.name": { widget_type: "textbox", label: "Name", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "spec.segment_connectors": { widget_type: "table", label: "Segment Connectors", form_section: "segment-connectors", }, }, service_credential: { "spec.credential_email": { widget_type: "textbox", label: "Credential Email", required: true, form_section: "credential-form", }, "spec.credential_type": { widget_type: "listbox", label: "Credential Type", required: true, default: "API Certificate", form_section: "credential-form", }, "spec.password": { widget_type: "textbox", label: "Password", required: true, form_section: "credential-form", }, "spec.confirm_password": { widget_type: "textbox", label: "Confirm Password", required: true, form_section: "credential-form", }, "spec.expiry_date": { widget_type: "textbox", label: "Expiry Date", required: true, form_section: "credential-form", }, "spec.groups": { widget_type: "table", label: "Groups", form_section: "group-assignment", }, "spec.roles_and_namespaces": { widget_type: "table", label: "Roles and Namespaces", form_section: "role-namespace-assignment", }, }, service_policy_rule: { "spec.waf_action": { required: true, label: "Waf Action", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, shared_advertise_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.virtual-site_or_site_or_network": { widget_type: "listbox", label: "Virtual-Site or Site or Network", required: true, default: "Virtual Site", form_section: "advertise-policy", }, "spec.reference": { widget_type: "configurable", label: "Reference", required: true, form_section: "spec", description: "'Field Reference is required'", }, "spec.network_type": { widget_type: "listbox", label: "Network Type", form_section: "advertise-policy", }, "spec.internet_vip_choice": { widget_type: "listbox", label: "Internet VIP Choice", required: true, default: "Disable advertise on internet vip", form_section: "advertise-policy", }, "spec.tcp_udp_port": { widget_type: "listbox", label: "TCP/UDP Port", required: true, default: "TCP/UDP Port", form_section: "advertise-policy", }, "spec.tcp_udp_port_value": { widget_type: "spinbutton", label: "TCP/UDP Port (value)", required: true, default: 80, form_section: "advertise-policy", }, }, subnet: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.site_subnet_parameters": { widget_type: "configurable", label: "Site Subnet Parameters", required: true, form_section: "site-subnet-parameters", }, "spec.network_connection_type": { widget_type: "listbox", label: "Network Connection Type", default: "Not Connected to Other Network", form_section: "network-connection-type", }, "spec.site_subnet_params": { required: true, label: "Site Subnet Parameters", form_section: "basic-configuration", description: "Server-required: Minimum items of 1", widget_type: "configurable", }, }, third_party_application: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.application_type": { widget_type: "listbox", label: "Application Type", required: true, form_section: "application-configuration", }, "spec.application_configuration": { widget_type: "configurable", label: "Application Configuration", required: true, form_section: "application-configuration", }, }, ticket_tracking_system: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.provider": { widget_type: "listbox", label: "Provider", required: true, default: "Jira", form_section: "ticket-tracking-system", }, "spec.api_token": { widget_type: "textbox", label: "API Token", required: true, form_section: "ticket-tracking-system", }, "spec.account_email": { widget_type: "textbox", label: "Account Email", required: true, form_section: "ticket-tracking-system", }, "spec.organization_domain": { widget_type: "textbox", label: "Organization Domain", required: true, form_section: "ticket-tracking-system", }, }, tunnel: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.tunnel_type": { widget_type: "listbox", label: "Tunnel Type", required: true, form_section: "tunnel-type", }, "spec.local_ip_type": { widget_type: "listbox", label: "Type", default: "Local Interface", form_section: "local-ip-address", }, "spec.local_interface": { widget_type: "listbox", label: "Local Interface", form_section: "local-ip-address", }, "spec.remote_ip_type": { widget_type: "listbox", label: "Type", default: "Remote IP address", form_section: "remote-ip-address", }, "spec.version": { widget_type: "listbox", label: "Version", default: "IPv4 Address", form_section: "remote-ip-address", }, "spec.ipv4_address": { widget_type: "textbox", label: "IPv4 Address", form_section: "remote-ip-address", }, "spec.tunnel_params_type": { widget_type: "listbox", label: "Type", default: "IPSEC parameters", form_section: "tunnel-parameters", }, "spec.ipsec_psk": { widget_type: "configurable", label: "Ipsec PSK", form_section: "tunnel-parameters", }, "spec.local_ip": { required: true, label: "Local Ip", form_section: "basic-configuration", description: "Server-required: Field should be not nil", widget_type: "configurable", }, }, usb_policy: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.allowed_usb_devices": { widget_type: "configurable", label: "Allowed USB devices", required: true, form_section: "allowed-usb-devices", }, "spec.allowed_devices": { required: true, label: "Allowed USB devices", form_section: "basic-configuration", description: "Server-required: Minimum items of 1", widget_type: "configurable", }, }, user_identification: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.user_identification_rules": { widget_type: "configurable", label: "User Identification Rules", form_section: "user-identification-rules", }, "spec.rules": { required: true, label: "Rules", form_section: "basic-configuration", description: "Server-required: Minimum items of 1", widget_type: "configurable", }, }, virtual_k8s: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.virtual_sites": { widget_type: "table", label: "Virtual Sites", form_section: "virtual-sites", }, "spec.choose_service_isolation": { widget_type: "listbox", label: "Choose Service Isolation", default: "Disabled", form_section: "service-isolation", }, "spec.default_workload_flavor": { widget_type: "listbox", label: "Default Workload Flavor", form_section: "default-workload-flavor", }, }, virtual_network: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.select_type_of_network": { widget_type: "listbox", label: "Select Type of Network", required: true, default: "Global Network", form_section: "virtual-network-type", }, "spec.static_routes": { widget_type: "table", label: "Static Routes", form_section: "static-routes", }, "spec.static_ipv6_routes": { widget_type: "table", label: "Static IPv6 Routes", form_section: "static-ipv6-routes", }, }, workload_flavor: { "metadata.name": { widget_type: "textbox", label: "Name", required: true, form_section: "metadata", }, "metadata.labels": { widget_type: "key-value-pairs", label: "Labels", form_section: "metadata", }, "metadata.description": { widget_type: "textbox", label: "Description", form_section: "metadata", }, "spec.memory_mib": { widget_type: "textbox", label: "Memory (MiB)", default: "0", form_section: "memory", }, "spec.vcpus": { widget_type: "textbox", label: "vCPUs", default: "0", form_section: "vcpus", }, "spec.ephemeral_storage_mib": { widget_type: "textbox", label: "Ephemeral Storage (MiB)", default: "0", form_section: "ephemeral-storage", }, }, network_policy_rule: { "spec.protocol": { required: true, label: "Protocol", form_section: "basic-configuration", description: "Server-required: Must be ALL/TCP/UDP/ICMP", widget_type: "configurable", }, }, }, };